トークン化
トークン化は文字列をモデル入力の整数 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 をライブラリに合わせます。他モデルは語彙、特殊記号、事前分割、アルゴリズムが異なり、個別確認が必要です。バイト起点・優先併合・整数化の説明は、任意モデルの個数計算の代わりにはなりません。
続けて学ぶ
同じ手法につながるレッスンや、次の概念への入口です。
鍵マークのあるレッスンの操作には有料アクセスが必要です。解説はすべて無料で読めます。
誤りや気になる点を見つけましたか? フィードバックを送る。