LLMのトークンはなぜ文字と単語を使わないのか教えてくれ

9レス / 最終更新 2026/07/20 12:18

1 ID:2V6ZJ6GGBX42E9XN
LLMがテキストを処理するときの最小単位が「トークン」って聞いたんだけど、
そもそもなぜ文字や単語をそのまま使わずに、わざわざトークンという概念を導入してるの?

(解決したら閉じます)
2 ID:1VYWAVZT8FK8WDXJ ⚐ 1
>>1
トークンはヒト言語のための単位じゃなくて、文字列をモデルが処理できる離散的な記号に変換したものを指す。
1は「1トークン」を、グラム/リットルみたいな普遍的な単位だと誤解してるんじゃないかな。
正確には、辞書から取り出された1個の記号=1トークンだから、同じ文章でも、モデルやトークナイザーが違えばトークン数が変わるっていうこと。

コンピューターはそのままで「猫」という意味を扱えないから、最終的に文章を数字の列に変換する必要がある。
例えば「猫が走る」を次のような整数列にする。

[5821, 114, 9387]
このとき、番号(5821等)に対応する要素がトークンで、モデルは大まかに「これまでのトークン"列"を見て、次に来るトークンの確率を計算する」
っていう処理を繰り返す。
だから、文章をどの大きさで区切るかを決めないといけないんだけど、それはだいたい3つあり、
文字単位: 走 る
単語単位: 走る
サブワード単位: 走 る / 走る みたいに、頻度に応じて変える。
(最近のモデルはこのサブワード方式を採用してることが多い)
3 ID:1VYWAVZT8FK8WDXJ ⚐ 1
文字単位だけでもLLMは作れるけど、効率上の問題が有るからやってないだけで、
例えば英語の文章を文字単位にすると、internationalization(国際化)は20個の処理単位になって、
サブワードならinternational,izationのように数個にできる。(この処理する位置の数を、系列長と呼ぶ)
系列長が増えると、計算量が増えるし、遠く離れた情報同士を結びつけにくくなったり、色んな問題が起きる。

「ありがとう」が何百万回もデータに出てくるなら、毎回1文字ずつ処理するより、まとまった記号として扱う方が効率的っていうことね。
なんなら文字の定義も普遍的ではなく、人間には一文字に見えても、コンピューター内部で複数のUnicodeコードから構成されてることがある。
国旗の絵文字とか。一文字という概念自体が機械的に明確じゃないです。

そこでトークンという妥協案が生まれた~っていう流れ。
文字単位と単語単位の中間を取れば(サブワード型トークナイザー)、
頻出する単語と文字列は一つのトークンにして、珍しい単語は複数の小さなトークンに分割できる。

グラム/リットルのような普遍的な単位ではないっていうのは、このことから。
(1トークンが表す情報量は一定ではなく、モデルによって異なるから)
尚入力は1,000トークン、1秒間に50トークン生成、みたいな計数単位としての表現は成立する。
4 ID:2V6ZJ6GGBX42E9XN ⚐ 0
>>3
サンクス。
モデル選ぶ時に、1Tトークンで訓練、とかあるけど、あれはそのモデルのトークナイザーで1兆トークンっていうことだよね?
1兆トークンの内訳は大体どうなってるのか、1兆トークンと2兆トークンでどれくらい開発コストって高くなってるの?
あと、訓練トークン数が多いほど良いのか、そうでないのかもよく分からんので教えてほしい。
5 ID:1KN94PTBRT42Y21Y ⚐ 1
>>4
そうだけど、
1Tトークンで訓練 → モデルの事前学習で使ったトークナイザーに通した結果、
合計1兆個のトークン位置を処理した って意味だけど、1兆"種類"のトークンでは無いです。
語彙が12万8000種なら、12万8000種の記号が合計1兆回出現した、という数え方で、
Llama3は語彙数12万8000で最大モデルは約15.6兆個のトークンを処理してます。
延べ数だということが重要で、同じ文章を2回学習すれば2回分として数えられるから、1兆トークン分の個性的な文章があった、とは限らない。
先の説明から分かるように、トークナイザーが違うと同じ文章のトークン数も変わるから、モデルAで2兆トークン、モデルBで1.5兆トークン → AはBより33%多く文章を学んだ という訳では無いです。
6 ID:1KN94PTBRT42Y21Y ⚐ 1
「1兆トークンの内訳は大体どうなってるのか」
→ モデルによって異なるし、厳密な内訳を公開してない企業も多いからなんとも言えないけど、
Llama3の場合は一般知識が50%、数学・推論が25%、コードが17%、多言語が8%っていうのが大まかな比率だったはず。もちろんこの分類は普遍的なものではないし、別のモデルならもっとコードが、論文が、ニュースが、と比率が全く違います。数学・推論といっても数学問題だけとは限らず、科学技術文書やコードと説明が混在するページもこれに分類されます。
7 ID:1KN94PTBRT42Y21Y ⚐ 1
「1兆トークンと2兆トークンでどれくらい開発コストって高くなってるの?」
→ 同じモデルを同じ条件で訓練するなら計算コストは粗2倍。ただしこれは本番の事前学習計算だけなので、開発全体には、人件費、失敗した訓練、予備実験、データを用意するための作業・実験が増えれば"プロジェクト全体"の予算は2倍ではない。
8 ID:1KN94PTBRT42Y21Y ⚐ 1
「訓練トークン数が多いほど良いのか」
→ 良質なデータを追加するなら基本的には増やした方が良い。但し効果は逓減するから、後半ほど改善幅が小さくなる傾向があります。同じ訓練予算なら、大きなモデルを短く訓練するか、小さなモデルを長く訓練するかを選ぶ必要もあるから、「常に大きいモデルにすべき」「常に小さいモデルにすべき」というのはない。
訓練は一度だけど、推論はその後何億回も行われるから、巨大なモデルを短く訓練するより、小さいモデルを大量のトークンで徹底的に訓練する方が、訓練費は高くてもその後の推論費を安く出来ることがあるから、将来まで含めたら合理的なことも有る。
9 ID:2V6ZJ6GGBX42E9XN sage ⚐ 0
めっちゃ分かりやすかったわ。ありがとう。