チャプター 17 · 推論 · 9 min
答える前に考える
Thinkingトークン、拡張推論、思考予算。o1/o3クラスのモデルが回答前に隠れた思考の連鎖を生成する仕組み。
速い回答はしばしば間違っている
7¹⁰⁰ の最後の桁は何か?
この質問を通常の LLM に投げると、おそらく一瞬で「7」と答えるだろう。理屈は通っている:7 は 7 で始まる、7² = 49、そしてあまり考えなければ、それは 7 のままだと推測してしまう。その答えは間違っている——正解は 1 だ。
しかし同じ質問を o1、o3、DeepSeek-R1 のような推論モデルに投げると、ためらう。10秒、20秒、ときには60秒「考える」。そして正しい答えにたどり着く。
違いはモデルの重みにあるのではない。モデルが回答する前にすることを許されているものにある。
thinking tokens
すべての LLM はトークンを左から右へ、1つずつ生成する。推論モデルを際立たせるのは、最終的な回答を生み出す前にまず、長い隠れトークンの列——ユーザーが決して見ない内部のモノローグ——を生成することだ。
これらの隠れトークンは thinking tokens(思考トークン)と呼ばれる。
そこにモデルは何でも書ける:中間計算、後で否定する仮説、放棄された探索の枝、検証など。きれいな結果を見せる前に消す下書きだ。
魔法ではない。難しい問題に取り組むための余分なスペースに過ぎない。
自分で試してみよう
思考予算を「なし」に設定して「推論する」をクリックしよう。即座の回答を見てから、「フル」に切り替えて再度実行しよう。
グレーアウトされたブロックは内部の思考連鎖だ——モデルは仮説を立て、検証し、ときに後戻りする。これらの thinking tokens はレイテンシと価格のコストになるが、直接モードでは解けない問題を解けるようにする。
両者の違いはモデルの能力にあるのではない——それに割り当てられる推論時の計算量にある。
技術的にどう動くのか
これは異なるアーキテクチャではない。同じ Transformer、同じアテンション機構、同じ自己回帰的生成だ。
変わるのは訓練と復号だ。fine-tuning の間、モデルは有用な推論トレース——正しい答えに収束する思考の連鎖——を生成することを学ぶ。何千もの問題とその解答を見せられ、中間の道筋を構築することを学ぶ。
推論時には、思考トークンの予算——生成できる隠れトークンの数の上限——が与えられる。予算が大きいほど探索できる。ある予算を超えると、難しいタスクでの品質改善は頭打ちになり始める。
重要な細部:thinking tokens は回答の前に、同じトークン列の中で生成される。モデルは並列に「考える」のではない——直列に考えるのであり、それは他のすべてと同じようにトークンを消費する。
拡張推論 vs chain-of-thought
chain-of-thought(CoT)の手法を見たことがあるかもしれない。モデルに「ステップごとに考えよう」と明示的に頼むものだ。これは異なるが、関連している。
| Chain-of-Thought(プロンプトで誘発) | 拡張推論(ネイティブ) | |
|---|---|---|
| 誰が引き起こすか | プロンプト内のユーザー | モデル自身 |
| 可視性 | 回答内に表示される | 隠れている(thinking tokens) |
| 制御 | ステップを誘導できる | モデルが計画を選ぶ |
| 例 | "let's think step by step" を伴う GPT-4 | extended thinking を伴う o1、o3、Claude |
プロンプトによる CoT もパフォーマンスを向上させる——しかしネイティブな推論はさらに先へ行く。なぜならモデルは読みやすい推論を書くことを強制されないからだ。雑な道筋を探索したり、後で破棄する計算をしたり、自己矛盾して修正したり、すべてを隠れた空間内で行える。
いつ価値があるか
拡張推論は次のようなタスクで意味のあるパフォーマンス向上をもたらす:
- 数学と論理 — 証明、組合せ問題、正確な算術
- 複雑なコード — 複数ファイルのデバッグ、自明でないアルゴリズム
- 構造化された推論 — パズル、連鎖的な演繹
- 計画立案 — 行動する前に戦略を立てる必要があるタスク
一方、シンプルな事実的質問(「フランスの首都は?」)、創造的なテキスト、翻訳には、拡張推論は何ももたらさない——そしてコストが高くつく。
これはハルシネーション(第13章)に対する最も効果的な対抗策の一つでもある。自分の下書きを検証する時間を取るモデルは、一発書きの回答なら通り抜けてしまう誤りを捕まえる。魔法ではない——推論の中でもハルシネーションし得る——しかしステップを展開するという単純な行為だけで、事実的誤りのかなりの部分がふるい落とされる。
コストこそが本当の制約だ。thinking tokens は通常のトークンと同じように課金される。1,000 個の思考トークンを生成してから 30 トークンの回答をする o1 モデルは、実際には 1,030 トークンを消費する。何百万ものリクエストでは、それが効いてくる。
test-time compute scaling
推論モデルが明らかにしたのは、推論時に知能を買えるということだ:思考トークンを多く割り当てるほど、難しいタスクでの回答が良くなる。
これは test-time compute scaling と呼ばれる——訓練中にモデルパラメータを増やす通常のスケーリングとは対照的だ。
曲線は古典的なスケーリング則と似ている:思考予算を倍にすればパフォーマンスは向上するが、収穫逓減を伴う。ある時点を超えると、長く考えてももはや報われない。
そしてこれは重要な発見だ:LLM の知能は重みによって固定された定数ではない。回答する瞬間に与えられた計算量にも依存する。
難しい問題について長く深く考えるモデルは、速く答えるより大きなモデルを上回ることがある。速さは常に美徳とは限らない。
更新日