思考の連鎖(Chain-of-Thought)と推論の引き出し
多段の問題でモデルがいきなり答えるのをやめさせるだけで精度が跳ね上がる。CoT が効く原理と自己整合性・ToT・推論時計算スケーリングを押さえれば、追加学習なしで推論性能を引き出せます。
- 1.CoT は最終解の前に中間推論ステップをトークン列として生成させる手法。各ステップが文脈に積まれ後段の条件付けに使えるため、1回の前向き計算では足りない逐次的計算を多トークンに展開でき、多段算術・記号・常識推論で精度が上がる。
- 2.自己整合性(self-consistency)は温度サンプリングで複数の推論経路を生成し最終解を多数決する手法で、誤った経路は散らばり正解に収束しやすい。ToT は分岐・評価・バックトラックで探索を木に拡張する。
- 3.これらは推論時計算スケーリング(test-time compute)の一形態で、生成トークン数や探索幅を増やすほど精度が上がる。ただし効くのは多段モデルが十分大きい場合に限られ、CoT の文章は内部計算の忠実な説明とは限らない。
CoT とは:答えの前に推論をトークンで吐かせる
思考の連鎖(Chain-of-Thought, CoT) は、最終解を出す前に 中間推論ステップを自然言語のトークン列として生成させるプロンプト手法です。Wei ら(2022)が示したのは、「ステップを踏んで考えよう」と促すだけで、多段算術・記号操作・常識推論のベンチマークで精度が大きく上がるという経験的事実でした。
なぜ効くのかは、Transformer の計算構造から説明できます。デコーダは1トークンを出すたびに 固定の深さ(層数)の前向き計算しか行いません。つまり1トークンあたりの逐次的計算量は一定です。多段の問題をいきなり答えさせると、本来は何ステップも要する計算をこの固定深さに押し込むことになり、表現力が足りません。
直接回答: 問題 → [固定深さの計算1回] → 答え ← 多段計算が層数に収まらない
CoT: 問題 → ステップ1 → ステップ2 → … → 答え
各ステップが新トークンとして文脈に積まれ、次段がそれを参照
CoT は中間結果をトークンとして外部化し、それを文脈(KVキャッシュ)に書き戻して次段の条件付けに使います。これにより、逐次的な計算を生成トークン数の方向に展開でき、実効的な計算深さを増やせます。理論的にも、CoT を許した Transformer は許さない場合より広いクラスの問題を解けることが示されています。
人が筆算で途中式を紙に書くのと同じ構図です。途中結果を文脈に書き出すことで、限られた1ステップの計算と注意機構の参照だけで次の一手を決められます。逆に言えば、生成途中のステップが間違うとそれが後段の前提として固定され、誤りが伝播します。CoT は計算を増やすと同時に、誤りの入り口も増やします。前提となるデコード時の確率的な振る舞いは デコード戦略 を併せて読むと土台が固まります。
なぜ精度が上がるか:分布の条件付けと計算の逐次化
CoT の効き目は、確率モデルの観点で2つに整理できます。
第一に 逐次計算の展開。前述のとおり、各ステップが新トークンになることで、1トークンあたり固定深さという制約を回避し、実効的に深い計算を行えます。これは「多くの中間トークンを使えるほど解ける問題が広がる」という形で効きます。
第二に 出力分布の条件付け。P(答え | 問題) を直接最大化させると、訓練データで頻出するもっともらしいが誤った近道に引っ張られがちです。CoT は P(答え | 問題, 推論) という形に分解し、正しい推論列を経由する経路上で答えを生成させます。これにより、最終解の確率質量が妥当な導出に裏打ちされた領域へ移動します。
CoT は **創発的(emergent)**な性質で、モデルが十分大きい場合にのみ利得が出ます。小型モデルでは、ステップを促しても整合しない推論を生成し、直接回答より悪化することが報告されています。「中間ステップを正しく生成できる能力」がまず必要で、その能力自体が規模に依存します。背景は スケーリング則 の創発の議論とつながります。
誘発法:few-shot・zero-shot・自己整合性
CoT の引き出し方には段階があります。
| 手法 | やり方 | 特徴 |
|---|---|---|
| Few-shot CoT | 推論過程つきの例を数個プロンプトに入れる | 最も安定。例の質に強く依存 |
| Zero-shot CoT | 「ステップを踏んで考えよう」の一文を付すだけ | 例不要で手軽。利得は few-shot に劣ることが多い |
| 自己整合性 | 温度つきで複数経路を生成し最終解を多数決 | single CoT を大幅に上回る。コストは経路数倍 |
| 分解プロンプト | 問題を小問に明示分割して順に解かせる | 長い多段問題で誤り伝播を抑えやすい |
中でも実利が大きいのが 自己整合性(self-consistency) です。決定的(貪欲)に1本だけ推論させるのではなく、温度を上げて複数の推論経路をサンプリングし、最終解だけを多数決します。鍵は「正解に至る道は複数あるが、誤りは経路ごとにバラバラに散る」という非対称性です。
self-consistency:
for k in 1..K:
経路_k = サンプリング生成(問題, 温度>0) # 多様な推論をK本
解_k = 経路_k の最終解
最終解 = argmax_v count(解_k == v) # 解そのもので多数決
# ※推論文ではなく解で集約
経路ごとの推論文は読まず、抽出した解の値で投票する点が要です。これにより、表現は違うが同じ正解にたどり着いた経路が票を束ね、誤答の票が割れて沈みます。
ToT と探索:木構造への一般化
CoT は推論を一本の鎖として直線的に生成します。これを木(tree)に拡張したのが Tree-of-Thoughts(ToT) です。各ステップで複数の「思考」候補を分岐させ、各分岐の有望さをモデル自身に評価(自己採点)させ、見込みの低い枝を捨て、必要ならバックトラックします。
CoT (chain): s0 → s1 → s2 → ans 一本道、引き返せない
ToT (tree): s0 ┬ s1a → … (評価して枝刈り)
├ s1b → s2 → … (有望な枝を深掘り)
└ s1c (低評価で打ち切り)
探索戦略 = BFS / DFS + 自己評価ヒューリスティック
ToT が効くのは、探索や先読みが必要な問題(パズル、計画、制約充足)です。一本道の CoT は一度誤った枝に入ると戻れませんが、ToT は評価とバックトラックで間違いから回復できます。代償は計算量で、分岐数 × 深さに比例してモデル呼び出しが膨らみます。
両者とも「複数経路を使う」点は同じですが、集約の仕方が違います。self-consistency は 独立な完結経路を並列に生成して最後に多数決するだけで、途中の枝刈りや引き返しはありません。ToT は 生成の途中で評価・選択・バックトラックを行う探索です。前者は安価で並列化しやすく、後者は高価だが探索的問題に強い、と使い分けます。
推論時計算スケーリング:考える量を増やすと賢くなる
CoT・自己整合性・ToT は、いずれも 推論時計算スケーリング(test-time / inference-time compute scaling) という一つの原理の現れです。学習後にパラメータを増やす代わりに、推論のときに使う計算(生成トークン数・サンプル数・探索幅)を増やすほど精度が上がる、という関係です。
| 軸 | 増やすもの | 得られる効果 | 代表手法 |
|---|---|---|---|
| 生成長 | 中間推論トークン数 | 実効的な計算深さ | 長い CoT |
| サンプル幅 | 独立な推論経路の本数 K | 多数決による分散低減 | 自己整合性 / best-of-N |
| 探索 | 分岐・評価・バックトラック | 誤りからの回復・先読み | ToT / 探索つき推論 |
| 検証 | 解の照合・再採点 | 誤答の棄却 | verifier / 自己検証 |
この見方の含意は重い。学習を据え置いたまま、推論予算を積むだけで性能を伸ばせる——これがいわゆる「推論モデル(reasoning model)」の核です。長い CoT を生成し、必要なら自己検証し直す挙動を強化学習で後天的に強化することで、難問の正答率を底上げします。この後天的強化の枠組みは RLHF と DPO の延長線上にあります。
3つの注意が要ります。(1) 忠実性(faithfulness):CoT として出力される文章は、モデルが内部で実際に行った計算の正直な説明とは限りません。もっともらしい後付けの「作文」が、真の計算過程とずれることがあります。安全性監視に CoT をそのまま信用するのは危険です。(2) 収穫逓減:推論時計算を増やしても利得は飽和し、サンプル数や生成長に対してコストが線形に膨らむ一方で精度向上は鈍化します。(3) 過剰思考(overthinking):簡単な問題に長い CoT を強いると、かえって誤りを混入させる場合があります。問題の難度に応じて推論予算を配分する判断が要ります。
まとめ:計算の出しどころを学習から推論へ
CoT は「中間ステップを出させると賢くなる小技」ではなく、1トークンあたり固定深さという制約を、生成トークン方向に計算を展開して回避するという原理に根ざした手法です。要点を一枚にまとめます。
| 論点 | 実態 | 示唆 |
|---|---|---|
| なぜ効くか | 逐次計算の展開+正しい経路への条件付け | 多段問題ほど利得が大きい |
| 誘発法 | few-shot / zero-shot / 自己整合性 / 分解 | まず自己整合性で底上げ |
| 探索拡張 | ToT で分岐・評価・バックトラック | 計画・探索系の難問に有効 |
| スケーリング | 推論時計算を増やすほど伸びる | 学習を据え置き推論予算で性能調整 |
| 限界 | 規模依存・忠実性なし・収穫逓減 | CoT を計算過程の真と過信しない |
結論として、CoT 系の技法は 計算の出しどころを学習時から推論時へ移す設計判断です。同じモデルでも、推論経路をどう生成・サンプリング・探索・検証するかで到達できる正答率は大きく変わります。前提となる確率的生成は デコード戦略 を、入力側の組み立ては プロンプトエンジニアリング を併読すると、推論を引き出す全体像が線でつながります。
AI/機械学習 Article
思考の連鎖(Chain-of-Thought)と推論の引き出しを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
Chain-of-Thought
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 6
導入後に効く点
自己整合性(self-consistency)は温度サンプリングで複数の推論経路を生成し最終解を多数決する手法で、誤った経路は散らばり正解に収束しやすい。ToT は分岐・評価・バックトラックで探索を木に拡張する。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 6
判断チェックリスト
- 自社の用途が「Chain-of-Thought / 推論」に近いか確認する。
- 強みである「CoT は最終解の前に中間推論ステップをトークン列として生成させる手法。各ステップが文脈に積まれ後段の条件付けに使えるため、1回の前向き計算では足りない逐次的計算を多トークンに展開でき、多段算術・記号・常識推論で精度が上がる。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。