大きな画面での利用をおすすめします — アニメーションと操作がより快適になります。
入力

トークン化

トークン化は文字列をモデル入力の整数 ID に変えます。本課はブラウザで実際の GPT-2(r50k)バイトレベル BPE を実行し、事前分割、バイトからの順位付き併合、ID 検索を行います。

部分語は積み木です。全単語を保存しなくても、基礎バイトがそろえば新語、誤字、絵文字を既存片へ分けられます。ただし符号化可能は理解の保証でなく、長い分割には文脈コストがあります。

事前分割と rank

正規表現で、おおむね語、数字列、句読点列などの piece に分けます。GPT-2 の通常の先頭空白は次の語と同じ片に入り、 the と the は異なり、表示は空白を Ġ とします。空白列の詳細は正規表現次第で、全空白を一律に扱うわけではありません。

併合は piece 境界を越えません。各片の UTF-8 バイトを基礎記号とし、約 50,000 の規則を調べます。小さい rank が高優先で、既存の表で決まり、今の語頻度ではありません。

各アニメーション段階は最小 rank の隣接対を一回併合して再探索し、規則がなければ止めて各片を ID にします。rank による貪欲法で、左から順ではありません。有効な学習表では新記号を使う規則が以前の記号に依存するため rank は逆行しません。同じ規則の複数箇所にも固定の位置規則が必要です。実装によって同じ対の非重複箇所を一括処理する場合があり、結果は実ライブラリと照合します。

ステップ実行

既定の tokenization は一 piece、十二 ASCII バイトです。

t o k e n i z a t i o n

十回の優先順は:

(o, n)      → on
(a, t)      → at
(e, n)      → en
(i, on)     → ion
(at, ion)   → ation
(o, k)      → ok
(i, z)      → iz
(iz, ation) → ization
(ok, en)    → oken
(t, oken)   → token

接尾辞と語幹を交互に作り、ation は token より先に完成します。最後の [token, ization] には併合規則がなく停止。十二文字の一語が 二 token です。

GPT-2 の 50,257 項語彙で token → 30001、ization → 1634、入力は [30001,1634]。その後 ID から学習済み埋め込みを引き、文字の形を直接処理するのではありません。ization は他語にも再利用できますが、出現は文脈と規則次第です。

細いセルは一バイト、併合で広くなり、左ログに規則と全体 rank を記録します。幅は片を読む補助で、埋め込み次元や意味の重要度ではありません。

部分語を使う理由

フォールバックなしの固定単語語彙は未知語を生み、文字単位は通常長い列になり、文字集合の定義も必要です。部分語は頻出組合せと基礎単位を折衷します。バイト BPE は全 256 バイトを持つので有効な UTF-8 を覆えますが、特殊 token や入力検査の規則は別にあります。

造語 fizzlepuff は f + izzle + puff、🦄 は UTF-8 バイトからの複数片となり、未知語記号は不要です。一 token が完全な Unicode 文字でない場合もあり、全列で復号します。他モデルは別の分詞方式も使うため、全現代モデルがこの BPE ではありません。

頻出英語は一 token、稀語、誤字、アクセント文字、絵文字は複数になりえます。文字数を token 数と同一視できません。文脈上限や多くの API は token を使いますが、使用量・課金は実モデルの規則で確認します。本課は GPT-2 のみで、他モデルの価格や個数を保証しません。

これは規則の適用です。BPE 学習はコーパスからの構築を示します。語彙数には基礎バイトと特殊記号も含み、全項が併合規則ではありません。

境界ケース

  • 新語・絵文字:既知バイトへ分けられても、短さや理解は保証しません。
  • 空白: the と the は別です。fix the AI は fix、Ġthe、ĠAI の piece 境界を保ち、跨いで併合しません。
  • 大小文字:Hello と hello は異なり、小文字化しません。
  • rank 優先:語の途中でも最低 rank を先に適用します。
  • 一バイト:既に基礎 token で併合不要です。

よくある間違い

  • 一語一 token と考える。既定が二項で、長さだけでも数は決まりません。
  • 全候補 rank を見ず最左の一致を先に併合する。別の結果になりえます。
  • 表示片と ID を混同する。token は表示文字、30001 はこの語彙の索引で埋め込みを引きます。
  • ID が共通と思う。他トークナイザの 30001 は別内容になり、統一表はありません。
  • 空白・大小文字を無視する。バイト列、token 数、モデル入力を変ええます。

モデルの範囲

実際の GPT-2 r50k と 50,257 項を使い、併合と ID をライブラリに合わせます。他モデルは語彙、特殊記号、事前分割、アルゴリズムが異なり、個別確認が必要です。バイト起点・優先併合・整数化の説明は、任意モデルの個数計算の代わりにはなりません。