トークンとは何か?
トークンの定義、役割、数え方、そして数に影響する要因を学びます。
1. トークン化
第 1 講では、LLM を全自動で文章の続きを作る仕組みとして説明しました。天気を尋ねる例も使いました。
実は、前回の説明は処理を簡略化したものです。
「今日の広州の天気はどうですか?」を LLM に送ると、まずトークナイザー(Tokenizer)というツールを通ります。このツールはテキストをトークン(Token)に分割し、それぞれをトークン ID に対応付けます。この処理をエンコードとも呼びます。
モデルによってトークナイザーは異なりますが、大まかな働きは同じです。例えば ChatGPT-5x のトークナイザーは、句読点を含む入力を分割してから数値に対応付けます。分割方法や ID はトークナイザーによって異なる場合があります。以下の日本語の例では o200k_base を使います。
「今日の広州の天気はどうですか?」は 12 個のトークンに分かれ、それぞれに ID が割り当てられます。モデルの計算結果はトークン ID として出力され、トークナイザーがそれをトークンにデコードしてユーザーに表示します。この例の出力 ID は「今日」に対応します。
- トークン:今日
- トークン ID:45396
- トークン:の
- トークン ID:3385
- トークン:広
- トークン ID:68112
- トークン:州
- トークン ID:13465
- トークン:の
- トークン ID:3385
- トークン:天
- トークン ID:867
- トークン:気
- トークン ID:25717
- トークン:は
- トークン ID:5205
- トークン:どう
- トークン ID:85545
- トークン:です
- トークン ID:15121
- トークン:か
- トークン ID:7128
- トークン:?
- トークン ID:4802
[45396, 3385, 68112, 13465, 3385, 867, 25717, 5205, 85545, 15121, 7128, 4802][45396]- トークン ID
- 45396
- トークン
- 今日
つまり、第 1 講で LLM が計算後に返した結果は、必ずしも一文字ではなく、単語になることもあります。
2. この概念を知ると何に役立つのか?
第一に、モデルが読んだ量と生成した量を測れます。
大規模言語モデルに渡す指示は入力トークンに、モデルが生成する内容は出力トークンに対応します。
トークン単位で課金するモデル API は、入力や出力などの使用量に基づいて料金を計算します。DeepSeek の公式 API ドキュメントの料金表には、2026 年 11 月時点で、閑散時間帯の出力は 100 万トークン当たり 4 人民元と記載されています。つまり、閑散時間帯に V4 flash で 100 万トークンを出力すると 4 人民元かかります。
キャッシュにヒットしなかった入力についても、閑散時間帯の料金が載っています。では、料金はどのように計算するのでしょうか。
先ほどの天気の例で、ユーザーが「今日の広州の天気はどうですか?」と尋ね、モデルが「今日の広州は晴れで、気温は28 ℃です。」と答えたとします。計算を簡単にするため、入力を 10 トークン、出力を 20 トークンと仮定します。
- 入力料金 = 10 ÷ 1,000,000 × 1 = 0.00001 人民元
- 出力料金 = 20 ÷ 1,000,000 × 4 = 0.00008 人民元
- 合計料金 = 0.00001 + 0.00008 = 0.00009 人民元
連続した会話ではなく、同様の質問を独立して 1 万回送ると、約 0.9 人民元です。
第二に、モデルが一度に処理できる内容量を測れます。
現在の大規模言語モデルには、コンテキストウィンドウ(context window)があります。例えば DeepSeek V4 は 1M トークン、つまり 100 万トークンです。V3.1 は 128K トークン、つまり 12 万 8 千トークンです。
簡単に言うと、一度に処理できるテキストの量です。モデルの作業机の広さだと考えてください。机の上に同時に置ける文字資料の量を、通常はトークンで測ります。
古いモデルほど、一度に処理できるテキストは少なくなります。V3.1 に 100 万文字の小説を一度で書かせることは、基本的にできません。
ある意味では、コンテキストウィンドウが大きいほど、モデルの「能力」は高いと言えます。