AI・機械学習
上級

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

トークナイザーが保持するユニークなトークン(サブワード)の総数。語彙サイズはモデルのEmbeddingパラメータ数、多言語対応力、テキスト圧縮率を左右する重要な設計パラメータ。

0 回閲覧
0 いいね

トークナイザー語彙サイズとは

トークナイザー語彙サイズ(Vocabulary Size)は、LLMのトークナイザーが認識・出力できるユニークなトークン(サブワード断片)の総数です。この数値はモデルのテキスト処理効率、多言語対応力、メモリ消費に直接影響する重要なハイパーパラメータです。

主要モデルの語彙サイズ一覧

モデル語彙サイズ方式発表年
GPT-250,257Byte-level BPE2019
GPT-350,257Byte-level BPE2020
T532,000SentencePiece Unigram2019
LLaMA 232,000SentencePiece BPE2023
Mistral 7B32,768SentencePiece BPE2023
GPT-4100,277tiktoken cl100k2023
LLaMA 3128,256tiktoken BPE2024
Gemma 2256,000SentencePiece BPE2024
GPT-4o200,019tiktoken o200k2024
Qwen 2.5151,665Byte-level BPE2024

2019〜2020年のモデルは3〜5万語彙が主流でしたが、2024年以降は10〜25万語彙へと拡大する傾向にあります。

語彙サイズが影響する要素

テキスト圧縮率(Fertility)

語彙サイズが大きいほど、1トークンで表現できる文字数が増えます。これを「圧縮率」または「Fertility」と呼びます。

モデル「自作パソコンを組み立てる」のトークン数圧縮率
GPT-2(50K語彙)12トークン0.83字/tok
GPT-4(100K語彙)8トークン1.25字/tok
GPT-4o(200K語彙)5トークン2.0字/tok

日本語では語彙拡大の効果が顕著で、GPT-4oはGPT-2の約2.4倍のトークン効率を実現しています。

Embeddingパラメータ数

語彙の各トークンはEmbeddingベクトル(通常4,096〜8,192次元)に変換されます。語彙サイズ × 隠れ次元 = Embeddingレイヤーのパラメータ数です。

32,000語彙 × 4,096次元 = 131M パラメータ(約500MB)
128,000語彙 × 4,096次元 = 524M パラメータ(約2GB)
256,000語彙 × 4,096次元 = 1,048M パラメータ(約4GB)

語彙を4倍にするとEmbeddingだけで4倍のメモリを消費します。7Bモデルで256K語彙にすると、Embeddingだけでパラメータの約15%を占有します。

多言語対応力

語彙サイズが小さいモデルは英語中心の語彙配分になりがちで、日本語・中国語・アラビア語などの非ラテン文字が不効率に分割されます。GPT-2の50K語彙では英語1単語 = 1〜2トークンですが、日本語の漢字1文字 = 2〜3トークンになることがあります。

語彙サイズ拡大の主なモチベーションの一つが、この多言語間の不公平の解消です。

語彙サイズの設計トレードオフ

大きい語彙のメリット

  • テキスト圧縮率が高い(コンテキストウィンドウを有効活用)
  • 多言語でのトークン効率が改善
  • APIコスト削減(トークン課金のため)
  • 少ないトークンで同じ意味を表現可能

大きい語彙のデメリット

  • Embedding/LM Headのパラメータ増大
  • 低頻度トークンの学習が不十分になりやすい
  • GPU VRAMの消費増加
  • 推論時のsoftmax計算コスト増加(語彙全体の確率分布を計算)

小さい語彙のメリット

  • メモリ効率が良い
  • 全トークンが十分に学習される
  • softmax計算が高速

小さい語彙のデメリット

  • テキスト圧縮率が低い
  • 非英語テキストの処理が非効率
  • コンテキストウィンドウの実効容量が減少

最適な語彙サイズの選び方

ユースケース推奨語彙サイズ理由
英語特化モデル32,000〜50,000英語は小語彙でも十分な圧縮率
多言語モデル100,000〜256,000CJK等の効率的な表現に必要
コード特化モデル50,000〜100,000プログラミング言語のキーワード・記号をカバー
軽量モデル(〜3B)32,000Embeddingの比率を抑制
大規模モデル(70B+)128,000〜256,000Embeddingの相対比率が小さいため拡大が合理的

FAQ

Q1: 語彙サイズは後から変更できますか?

原則として事前学習時に決定され、後から変更するとEmbeddingレイヤーの再学習が必要になります。ファインチューニングで特殊トークンを少数追加することは可能ですが、大幅な語彙変更は事実上の再学習を意味します。

Q2: 同じ語彙サイズでも性能差はありますか?

あります。学習コーパスの言語分布、BPE vs Unigram の選択、バイトフォールバックの有無などで、同じ語彙サイズでも圧縮率は大きく異なります。語彙の「質」も重要な要素です。

Q3: なぜ2のべき乗に近い数値が多いのですか?

GPUのメモリアラインメントと行列演算の効率を考慮して、2のべき乗(32,768 = 2^15)またはそれに近い値が選ばれることが多いです。ただしGPT-4の100,277やLLaMA 3の128,256のように、厳密に2のべき乗でないケースも増えています。