推論トークンの仕組み
通常のリクエストには、明確に2つの側面があります。それは、送信するトークンと、モデルが生成する出力トークンです。推論に対応したモデルは、生成した出力を別の機能段階に分けることがあります。
- 入力を読み取る。
- タスクに取り組むための推論トークンを生成する。
- 最終回答を生成する。
この3段階の捉え方は便利ですが、普遍的なものではありません。モデルによっては、1つの中断のない非公開スクラッチパッドを先に完成させるのではなく、ツール呼び出しの間や、表示される出力の断片同士の間で推論することがあります。
ここでいう推論とは、生成されたトークンが何に使われているかを表します。これは、他のモデル計算が停止することや、通常のモデルがまったく推論しないことを意味しません。すべてのモデルは、次のトークンを選択するために数値計算を行います。ここでの特別な点は、モデルがユーザー向けのトークンの前や途中で、中間処理に生成トークンを使うことです。
学習によって、このような動作が促されることがあります。たとえば、強化学習では正しい最終回答に報酬を与えることで、結果の確認、方針の変更、以前のステップの再検討といった生成パターンをモデルが身につけることがあります。したがって、推論トークンが増えることは、推論時の処理量が増えることを意味しますが、学習量が増えることや、モデルに保存された知識が変化することを意味するものではありません。
非公開の推論と表示される要約は異なる
「推論トークン」は包括的な用語であり、すべてのプロバイダーに共通する標準仕様ではありません。
OpenAIは推論トークン数を報告しますが、APIを通じて生の推論を公開していません。Googleは思考の要約と、推論状態を表す不透明な署名を返すことができます。Anthropicのインターフェースや制御方法はモデルによって異なり、要約された思考を公開するモデルもあれば、固定トークン予算の代わりに適応的な処理量を使うモデルもあります。
これにより、次の3つは区別する必要があります。
- 生の推論トークン:生成された中間処理。
- 推論の要約:ユーザーや開発者向けに生成された、より短い説明。
- 最終回答:リクエストを完了させるための応答。
要約は、すべての生の推論トークンを記録したものではありません。また、生のトレースが非表示であることは、トークンが無料だった、または存在しなかったことを意味しません。リクエストで何が使われたかを知るには、画面に表示された単語数を数えるのではなく、APIの使用量メタデータを確認してください。
トークン使用量の例
使用量レポートに次のように表示されているとします。
- 入力トークン:75
- 出力トークン合計:1,186
- 出力に含まれる推論トークン:1,024
生成された出力のうち、推論以外の部分は次のとおりです。
1,186 − 1,024 = 162トークン
このリクエストは、1,186トークンの回答に加えて、さらに1,024トークンの推論を使ったわけではありません。1,024個の推論トークンは、すでに1,186トークンの出力合計に含まれています。
この違いから、表示されるテキストが短い回答でも、表示内容から想像するより出力数が大幅に多くなる場合があることが分かります。フィールド名はAPIによって異なりますが、レスポンスの使用量詳細に含まれる推論または思考のトークン数を探してください。
推論トークンが重要な理由
コスト
主要なプロバイダーは通常、推論トークンや思考トークンを生成された出力として課金します。そのため、最終回答が短くても、表示される長さから見積もるよりコストが高くなることがあります。現在の料金と計算ルールはプロバイダーごとに異なるため、実際のコスト計算には各プロバイダーの料金・使用量に関するドキュメントを利用してください。
出力とコンテキストの上限
推論には余裕が必要です。プロバイダーは一般に、推論トークンを出力上限、コンテキスト予算、またはその両方に対して計上します。推論中に生成上限を使い切ると、有用な表示回答を生成する前にリクエストが終了することがあります。
そのため、最大出力の設定を常に「回答の最大長」とみなせるわけではありません。中間推論と最終回答の両方を収められるようにする必要がある場合があります。正確なルールはAPIによって異なります。
応答時間
推論トークンは生成処理です。一般に、その数が増えるほど、リクエスト完了までに必要な逐次生成が増え、レイテンシーが高くなる可能性があります。したがって、処理量の設定やトークン予算は、単なるスタイル設定ではなく、品質・時間・コストのトレードオフを調整するための制御です。
タスクの品質
追加の推論は、多段階の数学、コードのデバッグ、計画、制約の確認、ツールを使ったワークフローなど、中間処理が結果に寄与するタスクで特に有用です。単純な抽出や書式設定では、得られる効果が小さい場合があります。
多ければ自動的に良いとは限りません。モデルが多くのトークンを非生産的な方針に費やしても、間違うことはあります。推論トークン数を品質スコアとみなすのではなく、重視するタスクに照らして最終結果を評価してください。
よくある誤解
「推論トークンはモデルの非公開の思考である」
この表現は便利ですが、文字どおりに受け取ると正確ではありません。推論トークンは、モデルが生成する中間的なシーケンスです。文章による問題解決に似ていることはありますが、その存在だけで、人間のような思考、理解、自己認識があることを示すものではありません。
「推論を見られるなら、生のトークンを見ている」
必ずしもそうではありません。製品によっては、要約やフィルタリングされた説明を表示しています。プロバイダーのドキュメントでは、こうした表示と、計算に使われる完全な内部トレースが区別されています。
「500トークンの回答は、出力トークンを500個使う」
出力として計上される他の生成トークンがない場合に限り、そう言えます。推論が有効になっていると、使用量の合計には回答だけでなく、非表示の推論も含まれることがあります。
「予算を見れば、モデルが使うトークン数を正確に分かる」
これはプロバイダーとモデルによって異なります。設定は厳密な上限、目標値、または処理量のレベルである場合があります。モデルによっては、タスクに応じて推論量を調整します。返された使用量を測定値として扱い、リクエスト設定は制御値として扱ってください。
次に読む項目
まず「出力トークンとは?」を読んで、推論トークンが含まれることの多い、より広い計算上のカテゴリを理解してください。その後、1つのリクエストにおける3つのカテゴリすべてを比較する必要がある場合は、「入力・出力・推論トークンの違い」を利用してください。