メイン コンテンツにスキップ

基礎

AIのトークンとは?

トークンは言語モデルが実際に読み書きする単位であり、単語や文字ではありません。トークン化の仕組み、入力と出力の数え方、そしてモデル自身のトークナイザーだけが正確な数を示せる理由を解説します。

すべての解説 · 最終確認日:

トークンは単語でも文字でもない

トークナイザーは、学習時に獲得した固定の語彙から取り出した断片にテキストを分割します。短くありふれた単語はちょうど一トークンになることが多く、長い単語や珍しい単語は二つか三つに分かれることがあります。一つの珍しい記号だけで一トークン以上を占めることもあります。句読点、空白、改行もトークンであり、無料ではありません。

そのため、トークン数、単語数、文字数はそれぞれ独立に動きます。単語数が同じ二つの文でもトークン数は異なることがあり、より短くありふれた単語で文を書き換えると、テキストとしての長さを変えずにトークン数を減らせることがあります。

トークン化は言語とモデルによって異なる

どのモデルも、学習に使ったテキストから構築された独自のトークナイザーと固定語彙を持っています。その学習テキストでよく見られた表現は、より少なく長いトークンに圧縮される傾向があり、珍しい表現はより多く短い断片に分かれる傾向があります。

ここから二つのことが直接導かれます。まず、書かれている言語によって同じ文でもトークン数が大きく異なることがあります。どの語彙も二つの言語を同じように表現できるわけではないからです。次に、モデルごとに語彙が異なるため、同じ文でも二つの異なるモデルでトークン数が変わることがあります。あるモデルのトークナイザーによる数え方は、別のモデルにとって信頼できる推定値にはなりません。

リクエストは入力トークンと出力トークンを消費する

すべてのリクエストには二つのトークンの区分があり、通常は別々に数えられ、別々に課金されます。入力トークンはモデルへ送られるすべて――指示、表示されている会話、添付された文書、ツールの結果です。出力トークンはモデルが応答として生成するすべてです。

複数ターンの会話において、入力トークンは一度きりの費用ではありません。新しいリクエストのたびにそれまでの会話が再送されるため、以前のメッセージや添付された資料は、最初に追加されたターンだけでなく、毎ターン改めて入力として数えられます。

トークンはコンテキストウィンドウを測る単位である

コンテキストウィンドウは、一回のリクエストの入力と出力が共有する、トークンで表された予算です。「コンテキストウィンドウとは?」ではこの予算が実際にどう振る舞うかを説明しています。ここで重要なのは単位だけです――ウィンドウは単語や文字、メッセージ数ではなくトークンで測られ、入力と出力は同じ総量から消費します。

固定の数字を使わずにコストを見積もる

トークンに基づくコストは掛け算です。使用したトークン数に、モデルごとに設定された単価を掛けたものです。プロバイダーはそれぞれの都合でこの単価を設定・変更し、より高性能なモデルは一般に小型モデルよりトークン単価が高く、出力トークンは入力トークンより高く課金されることが多いです。だからといってここに具体的な数字を載せる意味はありません――このページに印刷された単価は数か月で誤りになります。

現在の料金表がどうであれ変わらないのはコストの形です。より短く的を絞ったプロンプトと応答は使用トークンが少なく、長い会話の毎ターンで大きな添付ファイルを再送することは、誰も意図しないままトークン消費が増えていくよくある原因の一つです。

正確な数にはモデル自身のトークナイザーが必要

単語当たりのトークン数についての経験則は、あるトークナイザーで処理された一つの言語についての近似にすぎず、別の言語や別の文字体系、別のモデルには当てはまりません。書式も数を変えます。コードやJSON、句読点の多いテキストは、同じ内容を普通の文章で書いた場合より効率が悪くトークン化される傾向があります。

正確な数が重要な場合――リクエストがコンテキストの上限に近い場合や、コストを正確に予測する必要がある場合――唯一信頼できる方法は、送信前に実際のテキストをその特定のモデル自身のトークナイザーやカウント用エンドポイントに通すことです。単語数や文字数に基づく見積もりは、数字の形をした推測にすぎません。

よくある質問

トークンは単語と同じものですか?
いいえ。短くありふれた単語は一トークンになることが多いですが、長い単語や珍しい単語は複数のトークンに分かれることがあり、句読点や空白、改行もそれ自体がトークンとして数えられます。トークン数と単語数は、せいぜい大まかにしか対応しません。
なぜ同じ文でもツールによってトークン数が違うのですか?
各ツールは通常、特定モデルのトークナイザーによる数え方を報告しており、モデルごとにその学習テキストから構築された独自の語彙を持っています。あるモデルのトークナイザーにとって正確な数え方は、別のモデルにとっては推定値にすぎません。
コードやJSONのような書式はプレーンテキストより多くのトークンを使いますか?
多くの場合はい。インデントや句読点、繰り返される記号はそれ自体がトークンなので、強く構造化された形式は、同じ情報を単純な文で書いた場合よりも明らかに多くのトークンを使うことがあります。
送信前にリクエストの正確なトークン数を知るにはどうすればよいですか?
正確なテキストを、その特定モデル自身のトークナイザーや、モデルが提供するカウント用エンドポイントに通してください。単語数や文字数に基づく見積もりはあくまで近似であり、言語や文字体系、書式の違いによって誤差が大きくなります。

読むより試してみる

ClawAIは応答が生成された後、リクエストが実際に使用した入力トークンと出力トークンを数え、事前の見積もりではなく、その回答にかかったコストと消費した利用枠を表示します。