途中の推論ステップを出力させると、なぜ複数ステップ問題の正答率が上がるのか。そして「考えているように見える」その出力を、実務でどこまで根拠として信じてよいのか。
2022年に発表されたChain-of-Thought Prompting Elicits Reasoning in Large Language Modelsは、この問いに対してシンプルな実験結果を示しました。PaLM 540BのGSM8K(小学生レベルの算数文章題)精度は、標準プロンプトの17.9%から、途中の計算過程を出力させるCoTプロンプトで58.1%まで改善しています。
GSM8K(小学生レベルの算数問題)
PaLM 540B + 標準プロンプト: 17.9%
PaLM 540B + Chain-of-Thought: 58.1%
私はAIエージェント論文の解説シリーズをここから書き始めることにしました。ReActやSelf-Consistencyといった後続の技法は、どれもCoTが引き出した「推論」を前提にしているからです。起点を最初に押さえておかないと、後の記事で毎回同じ説明を繰り返すことになります。この記事は、その論文の内容と、その後出てきた反証材料を整理する二次分析です。
この記事自体は自前の比較実験ではなく、論文の数値とその後の反証材料を整理した二次分析です。自社タスクでの標準プロンプトとCoTの比較検証は別途行うべきだと考えていますが、その実測値をここに書くことはしません。
以降の議論を追うために、4つの言葉を先に定義します。
もう一つ、この記事全体で区別しておきたい言葉があります。
CoTが出す途中式は前者にすぎません。後者ではない、という区別は後段で使います。
論文が報告した主要な結果を、個別の表に分けず1枚にまとめます。
| ベンチマーク | Standard | CoT | 改善幅 |
|---|---|---|---|
| GSM8K(算数文章題) | 17.9% | 58.1% | +40.2pt |
| MultiArith(複数ステップ算術) | 17.7% | 93.0% | +75.3pt |
| SVAMP(代数文章題) | 63.1% | 79.0% | +15.9pt |
| モデルサイズ | Standard | CoT | 改善幅 |
|---|---|---|---|
| 8B | 4.5% | 5.3% | +0.8pt |
| 62B | 12.3% | 33.0% | +20.7pt |
| 540B(PaLM) | 17.9% | 58.1% | +40.2pt |
この2つの表から読めることは1つです。CoTはどのモデルでも同じように効く技法ではありません。 小さなモデルでは効果がほとんど出ず、大規模モデルで初めて大きな改善が見られます。論文はこれを創発的能力(Emergent Ability)の一例として位置づけています。
つまりCoTは、モデルの能力を置き換える万能策ではなく、十分な基礎能力を持つモデルに対して、複数ステップの問題を扱いやすくする補助線です。
論文自身が機構を厳密に証明しているわけではありませんが、次の3つの説明はよく引用され、私自身も妥当だと考えています。
作業メモリの外部化。 人間が複雑な計算をするとき紙に途中式を書くのと同じ原理です。従来のプロンプトは全ての計算をモデル内部で処理し、途中の情報が失われやすい。CoTは途中結果を出力テキストという「紙」に書き出し、次のトークン予測がそれを参照できるようにします。
問題の分解。 複雑な問題を小さなステップに分解すると、各ステップは単純な処理になります。
複雑な問題: 「3杯 × 400円 + 2個 × 500円」
↓ 分解
ステップ1: 「3 × 400 = ?」 → 1200
ステップ2: 「2 × 500 = ?」 → 1000
ステップ3: 「1200 + 1000 = ?」 → 2200
エラー検出のしやすさ。 途中経過が可視化されることで、後続のステップや人間のレビューで誤りを見つけやすくなります。モデル自身が常に自己修正できるわけではありませんが、少なくとも誤りの位置は追いやすくなる、というのが冒頭で定義した「検証可能性」の中身です。
ステップ1: 3 × 400 = 1200 OK
ステップ2: 2 × 500 = 100 ...あれ、計算が間違っている
2 × 500 = 1000 OK
ここまでの内容だけを読むと、CoTは常に良いものに見えます。ここからは、境界を切ります。
モデルサイズ依存という境界。 前節の表が示した通り、8Bモデルでの改善は+0.8ptにとどまります。小規模モデルや基礎能力が不足するモデルでは、CoT指示を足しても効果はほぼありません。
説明と保証の境界。 モデルが出力する途中式や理由づけは、後から整合的に見える説明である可能性があります。この論点は、末尾の参考リソースに挙げた「Chain-of-Thought Is Not Explainability」というタイトルの論文が、その名の通り指摘している内容と重なります(詳細は未読み込みのため、タイトルと文脈からの推定です)。私自身も、CoT出力が内部処理と一致する保証にはならないという見立てには同意します。CoT出力を監査証跡や根拠資料としてそのまま扱うのは、検証可能性の道具としての使い方の外側にある使い方です。
推論特化モデルという境界。 近年の推論特化モデルは、内部で長く検討する設計を持つ場合があります。この場合、ユーザーが毎回「すべての思考を詳しく出して」と指示するのは、精度を上げずにコストと待ち時間だけを増やす負債になりやすいと考えられます。
ここまで見てきたのは、論文が報告した数値と、その後見つかった反証材料です。ここで一度、タスクの種類を並べるのではなく、「CoTへの投資が見合うか」という1つの軸で再分類します。
| 複数ステップの依存がある | 依存がない(単発処理) | |
|---|---|---|
| 汎用モデル・基礎能力あり | 投資に見合う: 算術文章題、条件分岐の整理、論理パズル、手順設計 | 負債: 単純な分類、短い要約、既知の事実確認 |
| 推論特化モデル / 小規模モデル | 効果が薄いか不明: 内部で既に段階推論しているため詳細指示の追加効果は限定的 | 確実に負債: トークンと待ち時間だけが増える |
境界を切ると、CoTへの投資が見合うのは「複数ステップの依存があるタスク」という1マスだけです。それ以外の3マスでは、詳細なCoT指示はコストと待ち時間だけを増やす負債になります。
Few-shot CoTとZero-shot CoTの使い分けも、この軸に沿って決まります。
| 観点 | Few-shot CoT | Zero-shot CoT |
|---|---|---|
| 準備コスト | 例題の作成が必要 | 「Let's think step by step」を足すだけ |
| 精度 | より高い | やや劣る |
| 推奨場面 | 投資に見合う重要タスク | プロトタイプ・軽量な用途 |
私はCoTの本質的な価値を「正答率の向上」ではなく「誤りを検証可能な単位に分解すること」だと考えています。この定義に立つと、実務での使い方は次のように分かれます。
そしてCoT出力を根拠資料・監査証跡として扱うのは、この境界の外だと私は割り切っています。説明であって保証ではない、という区別をそのまま実務ルールにしただけです。反証が出れば、この運用ルールごと朝令暮改します。
この切り分けは、実際に痛い目を見た経験談ではなく、「説明であって保証ではない」という前段の区別をそのまま実務ルールに落とし込んだ提案です。CoT出力を根拠資料として扱うリスクは、事後に検証しづらいという構造そのものにあると考えています。
推論特化モデルに対しては、指示の粒度も変えています。
悪い例:
すべての思考過程を詳しく出してから答えてください。
良い例:
結論を先に示してください。
必要なら、検算に使った式と、判断を変える条件だけを箇条書きで示してください。
ここまで、CoTを「正答率の道具」ではなく「検証可能性の道具」として再定義し、投資に見合う条件を1マスに絞り込みました。この境界が正しいかどうかは、私の解釈であって保証ではありません。
もし今、標準プロンプトかCoTかで迷っているタスクがあるなら、同一の評価セットで両方を小さく試してから決めてほしいと思っています。正答率だけでなく、出力トークン数とレビューにかかる時間も一緒に見てもらえると、この記事の境界線が自分の現場でどこまで成り立つかが分かるはずです。データは脅しではなく、決断の材料として使ってもらえると嬉しいです。
CoTが引き出した「推論」を、ReActは「行動」と組み合わせてThought-Action-Observationのループに拡張しました。CoTが単体で持つのは推論だけですが、ReActを読むと、この推論がどう外部ツールと接続されるかが見えてきます。また、CoTがなぜ大規模モデルでのみ創発するのかという疑問は、Transformerが作ったアーキテクチャの土台まで遡らないと説明がつきません。
本記事はネクサフローのAI研究シリーズの一部です。