LLMトークナイザーアーキテクチャ(エルエルエムトークナイザーアーキテクチャ)
LLM(大規模言語モデル)がテキストを処理する際に、入力文字列を数値トークン列に変換するトークナイザーの設計思想・構成要素・アルゴリズム選択を体系的にまとめた技術概念。BPE・WordPiece・Unigram LM・SentencePieceなど複数の分割アルゴリズムと、語彙テーブル・特殊トークン・正規化ルールで構成される。
LLMトークナイザーアーキテクチャとは
LLMトークナイザーアーキテクチャとは、大規模言語モデル(LLM)が自然言語テキストを内部で扱える数値表現(トークン列)に変換するための設計体系である。GPT-4oのcl100k_baseやLlama 3のtiktoken互換トークナイザー、Gemma 2のSentencePiece Unigramなど、各モデルファミリーは独自のトークナイザー設計を採用しており、モデル性能・推論速度・多言語対応力に直結する重要コンポーネントである。
概要
トークナイザーは、LLMの入力パイプラインにおける最初の処理段階であり、生テキストをモデルが理解可能なトークンID列に変換する。2026年現在、主流のトークナイザーアーキテクチャは以下の要素で構成される:
- 分割アルゴリズム: BPE(Byte Pair Encoding)、WordPiece、Unigram LM、SentencePiece
- 語彙テーブル(Vocabulary): 32,000〜256,000トークンの辞書
- 特殊トークン:
<|endoftext|>、<s>、</s>、[PAD]、<|im_start|>など - 正規化ルール: Unicode正規化(NFKC)、大文字小文字変換、空白処理
- バイトフォールバック: 未知文字をUTF-8バイト単位で処理する仕組み
トークナイザーの設計は、モデルの語彙効率(1トークンあたりの情報量)と計算コスト(シーケンス長)のトレードオフを規定する。語彙サイズが大きいほど1トークンの情報密度は高くなるが、埋め込み層のパラメータ数が増大し、メモリ消費量が増加する。
主要トークナイザーアルゴリズムの比較
| アルゴリズム | 採用モデル | 語彙サイズ | 特徴 | 多言語性能 |
|---|---|---|---|---|
| BPE | GPT-4o, Llama 3, Mistral | 100,000〜128,000 | 頻度ベースのマージ、バイトレベル対応 | 高い |
| WordPiece | BERT, DistilBERT | 30,522 | サブワード確率最大化、##プレフィックス | 中程度 |
| Unigram LM | Gemma 2, T5, mBART | 32,000〜256,000 | 確率的分割、複数候補から最尤選択 | 非常に高い |
| SentencePiece BPE | Llama 2, Baichuan | 32,000 | 言語非依存、空白をメタ文字▁で表現 | 高い |
| tiktoken (BPE) | GPT-4o, Claude 3.5 | 100,256〜200,019 | Rust実装の高速BPE、正規表現前分割 | 高い |
トークナイザーの内部構成
トークナイザーアーキテクチャは、大きく3つのレイヤーで構成される。
プリトークナイズレイヤー
テキストが分割アルゴリズムに渡される前の前処理を担う。GPT系のtiktokenでは正規表現パターン '(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\r\n\p{L}\p{N}]?\p{L}+|\p{N}{1,3}| ?[^\s\p{L}\p{N}]+[\r\n]*|\s*[\r\n]+|\s+(?!\S)|\s+ によってテキストを単語・数字・記号のチャンクに事前分割する。SentencePieceでは空白文字を▁(U+2581)に置換し、言語に依存しない一様な処理を実現する。
トークン分割レイヤー
プリトークナイズされたチャンクを、語彙テーブルに基づいてサブワード単位に分割する。BPEの場合、学習時に構築されたマージルール(例:t + h → th、th + e → the)を順序通りに適用する。Unigram LMでは、考えられる全分割パターンのうち対数尤度が最大となる分割をViterbiアルゴリズムで選択する。
トークンID変換レイヤー
分割されたサブワード文字列を、語彙テーブル内の整数IDにマッピングする。GPT-4oのcl100k_baseでは100,256個のトークンIDが定義されており、特殊トークン(<|endoftext|> = 100257、<|im_start|> = 100264など)が追加されている。未知のバイト列は、バイトフォールバック機構によりUTF-8の各バイトに対応するトークン(例:0xE3 → トークンID 163)に分解される。
主要モデルのトークナイザー仕様
| モデル | トークナイザー名 | アルゴリズム | 語彙サイズ | 最大コンテキスト | 日本語効率 |
|---|---|---|---|---|---|
| GPT-4o | o200k_base | BPE (tiktoken) | 200,019 | 128,000トークン | 1文字≒1.2トークン |
| Claude 3.5 Sonnet | 非公開 | BPE系 | 約100,000 | 200,000トークン | 1文字≒1.3トークン |
| Llama 3.1 | llama3-tokenizer | BPE (tiktoken互換) | 128,256 | 128,000トークン | 1文字≒1.5トークン |
| Gemma 2 | gemma-tokenizer | SentencePiece Unigram | 256,128 | 8,192トークン | 1文字≒1.1トークン |
| Qwen 2.5 | qwen2-tokenizer | BPE | 151,643 | 131,072トークン | 1文字≒0.9トークン |
| Mistral Large | mistral-tokenizer | BPE (SentencePiece) | 32,768 | 128,000トークン | 1文字≒1.8トークン |
トークナイザーが性能に与える影響
トークナイザーの設計はLLMの性能に以下の影響を及ぼす:
- 推論コスト: 同じテキストでもトークン数が少ないほどKVキャッシュ使用量と計算量が削減される。GPT-4oのo200k_baseは旧cl100k_baseと比較して平均15%のトークン数削減を実現した
- 多言語公平性: 日本語・中国語・韓国語などの非ラテン文字言語では、語彙テーブルにCJK文字が十分含まれていないとトークン効率が著しく低下する。Qwen 2.5は中日韓文字を重点的に語彙に含め、日本語で1文字≒0.9トークンという高効率を達成している
- コード処理: プログラミング言語のキーワード・演算子・インデントが適切にトークン化されるかが、コード生成タスクの精度に影響する。GPT-4oでは
def、return、importなどのPythonキーワードが単一トークンとして扱われる - 数値処理: 数字を1桁ずつ分割するか、複数桁をまとめるかで算術タスクの精度が変わる。Llama 3は3桁までの数字をまとめてトークン化する設計を採用した
トークナイザーの学習と構築
BPEトークナイザーの学習プロセスは以下の手順で進む:
- 初期語彙の設定: UTF-8の全256バイト値を初期語彙とする(バイトレベルBPEの場合)
- コーパス統計の収集: 大規模テキストコーパス(通常数TB規模)から全バイグラムの出現頻度を集計
- マージルールの学習: 最頻出のバイグラムペアを新トークンとしてマージし、語彙に追加。これを目標語彙サイズに達するまで反復(GPT-4oの場合200,019回)
- 特殊トークンの追加: 文末トークン、チャットテンプレートトークン、ツール呼び出しトークンなどを手動で追加
- 正規化ルールの定義: Unicode正規化方式、空白処理規則、大文字小文字処理を設定
学習に使用するコーパスの言語比率がそのまま各言語のトークン効率に反映されるため、多言語モデルでは意図的に低リソース言語のテキストをオーバーサンプリングする手法が一般的である。
よくある質問(FAQ)
Q1: トークナイザーを変更するとモデルの再学習が必要ですか? A: はい、必要です。トークナイザーの語彙テーブルが変わると埋め込み層の次元数が変化するため、モデル全体の再学習(または少なくとも埋め込み層の再初期化と追加学習)が必要になります。Llama 2からLlama 3への移行では、語彙サイズが32,000から128,256に拡大され、ゼロからの事前学習が行われました。
Q2: 日本語テキストのトークン効率が悪い場合、どう改善できますか? A: 日本語トークン効率の改善には3つのアプローチがあります。(1) 語彙テーブルに日本語文字・熟語を追加する(Qwen方式)、(2) SentencePiece Unigramで多言語コーパスから学習する(Gemma方式)、(3) 語彙サイズ自体を拡大して多言語カバレッジを確保する(GPT-4o方式・200K語彙)。実務ではQwen 2.5やGemma 2のように日本語効率が高いモデルを選定するのが最も手軽です。
Q3: BPEとWordPieceの違いは何ですか? A: BPEは出現頻度ベースでバイグラムを貪欲にマージする手法で、WordPieceは各マージが語彙全体の対数尤度をどれだけ改善するかを基準にマージを選択する手法です。BPEはGPT系・Llama系で広く採用され、WordPieceはBERT系モデルで使われています。BPEの方が実装がシンプルで高速なため、2026年現在の大規模LLMではBPEが主流です。
Q4: トークナイザーの語彙サイズはどのくらいが最適ですか? A: 最適な語彙サイズはモデルの用途と対象言語に依存しますが、2026年の大規模LLMでは100,000〜256,000が主流です。語彙サイズを2倍にすると埋め込み層のパラメータ数も2倍になりますが、シーケンス長が短縮されるためTransformerの計算量はO(n²)で削減されます。Gemma 2の256,128語彙は多言語性能で優れ、Mistralの32,768語彙はモデルサイズ効率で優れるというトレードオフがあります。
まとめ
- トークナイザーアーキテクチャはLLMの入力処理の基盤であり、分割アルゴリズム・語彙テーブル・特殊トークン・正規化ルールで構成される
- 2026年現在、BPE(GPT-4o、Llama 3)とSentencePiece Unigram(Gemma 2、T5)が二大主流
- 語彙サイズは32,000〜256,000の範囲で、多言語対応と計算効率のトレードオフで決定される
- 日本語トークン効率はモデルにより0.9〜1.8トークン/文字と大きく異なり、Qwen 2.5やGemma 2が高効率
- トークナイザーの変更はモデル再学習を伴うため、モデル設計初期の重要な意思決定ポイントである