AI・機械学習
中級

トークナイザー語彙(トークナイザーゴイ)

LLMのトークナイザーが保持するサブワード・文字・特殊トークンの集合(語彙テーブル)。各トークンに一意のIDが割り当てられ、テキストとトークンID列の相互変換に使用される。語彙サイズはモデルのトークン効率・メモリ消費・多言語対応力を決定する重要なハイパーパラメーター。

0 回閲覧
0 いいね

トークナイザー語彙とは

トークナイザー語彙(Tokenizer Vocabulary)は、LLMがテキストを処理する際に使用するサブワード(部分文字列)の辞書である。各サブワードには0から始まる一意の整数ID(トークンID)が割り当てられ、テキストの入力(エンコード)と出力(デコード)の両方でこの語彙テーブルが参照される。語彙の設計はモデル性能に直接影響する基盤技術である。

語彙の構成要素

トークナイザー語彙は以下の要素で構成される。

要素説明例
通常トークン学習データから抽出されたサブワード"the", "ing", "##tion", "東京"
特殊トークンモデルの制御用に予約されたトークン[CLS], [SEP], [PAD], [MASK], [UNK]
バイトトークンUTF-8バイトを表すフォールバックトークン<0x00>〜<0xFF>(256個)
未使用トークン将来の拡張用に確保された空きスロット[unused0]〜[unused99]

GPT系列の語彙はバイトトークンを含むByte-level BPEで構成され、BERT系列は特殊トークンとWordPieceサブワードで構成される。

語彙サイズの進化

LLMの語彙サイズは年々拡大する傾向にある。

モデルリリース年語彙サイズトークナイザー
GPT-2201950,257BPE
BERT base201830,522WordPiece
T5201932,000Unigram
GPT-3202050,257BPE
LLaMA 2202332,000BPE
Mistral 7B202332,000BPE
GPT-42023100,256BPE
LLaMA 32024128,256BPE
Gemma 22024256,000BPE
Qwen 2.52024151,643BPE

語彙拡大のトレンドは、多言語対応とトークン効率の改善が主な動機である。

語彙サイズとトークン効率の関係

語彙サイズがトークン効率(テキスト圧縮率)に与える影響は以下の通りである。

語彙サイズ英語圧縮率日本語圧縮率embedding層パラメータメリットデメリット
32,000約4.0 chars/token約1.5 chars/token小さいメモリ効率が高い日本語のトークン効率が低い
100,000約4.5 chars/token約2.0 chars/token中程度バランスが良い-
256,000約5.0 chars/token約2.5 chars/token大きい多言語で高効率embedding層が大きい

トークン効率が高いと、同じコンテキスト長(例: 128Kトークン)でより多くのテキストを処理できるため、実質的なコンテキストウィンドウが拡大する。

語彙の多言語バランス

多言語LLMでは、語彙の言語バランスが性能を左右する。

  • 英語偏重の問題: GPT-2/3は英語中心の学習データで語彙を構築したため、日本語1文字が平均2-3トークンに分割される
  • 均等割当の問題: 全言語に均等に語彙を割り当てると、英語のトークン効率が低下する
  • 適応的割当: 学習データの言語分布に比例して語彙を割り当てる方式が主流(例: mT5は101言語のデータ量に応じて250,000語彙を配分)

日本語特化モデル(ELYZA、Rinna、PLaMo等)は、日本語テキストの比率を高めた学習データで語彙を構築し、日本語のトークン効率を改善している。

語彙の拡張とマージ

既存モデルの語彙を後から拡張する手法も研究されている。

手法概要利点課題
語彙追加+継続学習新トークンを追加しembeddingを追加学習既存性能を維持しつつ拡張可能追加学習コストが必要
語彙マージ異なるモデルの語彙を統合多言語対応の高速化embedding空間の整合性維持が困難
アダプター挿入語彙変換層を挿入元モデルを変更不要推論速度の低下

LLaMA 2→LLaMA 3で語彙が32,000→128,256に拡大された際は、新語彙でゼロからトークナイザーを学習し直す方式が採用された。

特殊トークンの設計

特殊トークンの設計はモデルの機能性に直接影響する。

トークン用途採用モデル
[CLS]文分類タスクの集約トークンBERT系列
[SEP]文間の区切りBERT系列
<|endoftext|>テキスト終端GPT系列
<|im_start|> / <|im_end|>チャットメッセージの開始/終了ChatGPT, Qwen
[INST] / [/INST]命令の開始/終了LLaMA 2 Chat
<human> / <assistant>ロール指定各種Chatモデル

FAQ

Q1: 語彙サイズが大きいほど良いモデルになりますか?

必ずしもそうではありません。語彙サイズの拡大はトークン効率を向上させますが、embedding層のパラメータ数が語彙サイズに比例して増加するため、小規模モデル(7B以下)では計算リソースの無駄が生じます。一般的に、モデルサイズに対して語彙が大きすぎると、embedding層のパラメータが全体に占める割合が増え、Transformerの表現力に回せるパラメータが相対的に減少します。

Q2: 同じモデルファミリーで語彙を変更できますか?

語彙を変更するとembedding層の重みが無効になるため、事前学習をやり直す必要があります。ファインチューニングだけでは対応できません。これがLLaMA 2からLLaMA 3への移行時に事前学習がゼロからやり直された理由の1つです。語彙は事前学習の最初期に決定される設計パラメーターであり、後から変更するコストは極めて高いです。

Q3: トークン数とコストの関係はどうなっていますか?

クラウドLLM APIの料金はトークン数に比例するため、語彙サイズの大きいモデルは同じテキストをより少ないトークンで表現でき、結果的にAPIコストが下がる場合があります。例えばGPT-4(100K語彙)はGPT-3(50K語彙)より同じテキストを約15-20%少ないトークンで表現できます。特に日本語テキストでは語彙サイズの差がコストに大きく影響します。