1 概要と基本原理
1.1 定義
Chain-of-thought prompting(以下、CoT)とは、大規模言語モデルに対して複雑な問題を解決する際に、最終的な答えを直接出力させるのではなく、人間の思考過程を模倣した中間的な推論ステップを段階的に生成させるプロンプトエンジニアリング手法である。この手法により、多段階の論理的思考を要するタスクにおいて、モデルの推論能力が顕著に向上することが確認されている。
1.2 動作原理
1.2.1 中間推論ステップの生成
CoTの中核となる動作原理は、問題と解答の間に「思考の連鎖」として機能する一連の中間文を生成させる点にある。例えば、「林檎が5個あり、3個食べた後にさらに2個買った場合、残りは何個か」という問題に対して、モデルは「最初に5個あった。3個食べたので5-3=2個残った。さらに2個買ったので2+2=4個になった」というように、各計算ステップを言語化する。これにより、単に「4個」とだけ出力する場合と比較して、誤った暗算や途中計算の誤りを防ぐことができる。
1.2.2 逐次的な思考連鎖
CoTでは、推論ステップが逐次的に連結される。各ステップは前のステップの出力に依存し、最終的な結論に至るまでの論理的なパスを形成する。この連鎖構造により、モデルは短期的な記憶のみに依存することなく、複雑な依存関係を持つ問題を解決できる。また、人間が検証可能な推論過程を提供するため、モデルの出力に対する信頼性評価が容易になる。
2 実装手法
2.1 ゼロショットCoT
ゼロショットCoTは、例示を一切与えずにモデルに思考連鎖を促す手法である。具体的には、プロンプトの末尾に「ステップバイステップで考えてください」や「まずは…」といった単純な指示文を追加するだけで実現できる。この手法は、追加の例を用意する必要がないため実装が極めて容易であり、汎用性が高い。しかし、問題の種類によっては適切な思考連鎖の形式をモデルが自己生成できない場合があり、複雑なタスクでは性能が不安定になる傾向がある。
2.2 フューショットCoT
2.2.1 少数例の提示方法
フューショットCoTは、プロンプト内に数個の「問題-思考連鎖-解答」の例を提示する手法である。各例は、問題文、その問題に対する完全な思考過程、そして最終的な解答の3要素で構成される。例えば、算数問題の例として「問:太郎は5枚のクッキーを持っていて、花子から3枚もらいました。全部で何枚ですか? 思考過程:太郎は最初に5枚持っていました。花子から3枚もらったので、全部で5+3=8枚になります。答え:8枚」といった形式で提示する。
2.2.2 例の構成と順序
例の構成は、対象タスクの特性に応じて調整する必要がある。一般的に、問題と解答の間に推論過程を明示する形式が有効である。また、例の提示順序はモデルの性能に影響を与える。類似した問題構造を持つ例を最初に配置し、徐々に多様性を持たせることで、モデルがタスクの本質を学習しやすくなる。例の数は通常3〜8個が適切であり、少なすぎると効果が不十分であり、多すぎるとプロンプトが長くなり計算コストが増大する。
2.3 自動思考連鎖
2.3.1 自動思考連鎖の仕組み
自動思考連鎖(Auto-CoT)は、人間が手動で例を作成する労力を省くために開発された手法である。まず、与えられた問題セットから多様なサブ問題を自動的に抽出する。次に、抽出された各サブ問題に対して、モデル自身がゼロショットCoTで思考連鎖を生成する。最後に、生成された思考連鎖の中から品質の高いものを選択し、フューショットCoTの例として利用する。
2.3.2 自動思考連鎖の効果
自動思考連鎖は、手動で例を作成するコストを削減しながら、フューショットCoTに近い性能を達成できる。特に、問題のドメインが広範囲にわたる場合や、頻繁に問題が更新される環境において有効である。ただし、自動生成された思考連鎖には誤りが含まれる可能性があり、その品質管理が課題となる。現在の研究では、生成された連鎖の一貫性や論理性を自動評価する手法との組み合わせが進められている。
2.4 自己無撞着性
2.4.1 複数経路のサンプリング
自己無撞着性(Self-Consistency)は、単一の思考連鎖のみに依存するのではなく、複数の独立した思考連鎖をサンプリングする手法である。具体的には、同じ問題に対して温度パラメータを高く設定して複数回の推論を行い、異なる思考経路を生成させる。これにより、偶然の推論ミスやバイアスの影響を軽減できる。
2.4.2 多数決による最終回答の決定
複数の思考連鎖から得られた複数の最終回答に対して、多数決を取ることで最終的な答えを決定する。この手法は、特に数学的問題や確率的な推論が関わるタスクで顕著な効果を発揮する。単一の思考連鎖では偶然正解に到達できなかった問題でも、複数の経路から多数決を取ることで正解率が向上する。ただし、計算コストがサンプリング数に比例して増加する点が欠点である。
3 応用と効果
3.1 数学的推論
3.1.1 算数問題
算数問題はCoTが最も顕著な効果を示す分野の一つである。複数ステップの四則演算、分数計算、割合問題などにおいて、従来の直接解答方式と比較して正解率が大幅に向上する。例えば、「1ダースの卵が240円です。6個買った場合の代金はいくらですか」という問題に対して、CoTは「1ダースは12個なので、1個あたり240÷12=20円。6個なので20×6=120円」という推論過程を経ることで、計算ミスを防止する。
3.1.2 代数問題
代数方程式、連立方程式、二次関数などのより抽象的な数学問題においてもCoTは有効である。変数の定義、式の変形、解法の選択といった段階的な思考過程を言語化することで、モデルは複雑な代数操作を正確に実行できる。特にGSM8KやMATHといったベンチマークにおいて、CoTを適用したモデルは従来手法を大きく上回る性能を示している。
3.2 常識推論
3.2.1 時間的推論
時間の経過や順序に関する推論タスクにおいて、CoTはイベントの時系列整理に役立つ。例えば、「太郎は午前9時に家を出発し、30分歩いて駅に着きました。さらに電車で20分移動し、そこから10分歩いて会社に到着しました。太郎が会社に着いた時刻は?」という問題に対して、CoTは各移動時間を段階的に加算していく推論過程を生成する。
3.2.2 物理的常識
物体の物理的性質や日常的な物理現象に関する推論においてもCoTが活用される。例えば、「氷の入ったコップを室温に置いた場合、コップの外側に水滴がつくのはなぜか」という問題に対し、CoTは「氷がコップ内の空気を冷やす→冷えた空気中の水蒸気が飽和する→コップの外側で凝結が起こる」という因果連鎖を生成する。
3.3 記号推論とプログラミング
3.3.1 論理パズル
論理パズルや条件付き推論タスクでは、CoTが条件の整理と排除のプロセスを可視化する。例えば、「A、B、Cの3人がいる。AはBより背が高い。CはAより背が低い。最も背が高いのは誰か」という問題に対して、CoTは「A > B、かつA > Cなので、Aが最も背が高い」という三段論法を明示的に行う。
3.3.2 コード生成
プログラミングタスクにおいて、CoTは問題分析からアルゴリズム設計、実装、テストに至るまでの思考過程を提供する。例えば、特定のソートアルゴリズムの実装を要求された場合、モデルは「まず配列の先頭から最小値を探し、それを先頭と交換する。次に残りの部分に対して同様の操作を繰り返す」という選択ソートの思考過程を経てコードを生成する。これにより、バグの少ない効率的なコード生成が可能となる。
4 限界と課題
4.1 計算コストの増大
CoTは従来のプロンプト手法と比較して、生成するトークン数が大幅に増加する。各推論ステップを言語化するため、出力長が数倍から十数倍に及ぶことがあり、それに伴い推論時間と計算資源が増大する。特に、自己無撞着性のように複数経路をサンプリングする手法では、計算コストがさらに線形に増加する。このため、リアルタイム性が要求されるアプリケーションや、計算資源に制約のある環境での実装が困難な場合がある。
4.2 誤った推論のリスク
4.2.1 幻覚や連鎖の崩壊
CoTは思考連鎖を明示的に生成するため、途中の推論ステップで誤りが発生した場合、その誤りが連鎖的に伝播し最終的な解答に悪影響を及ぼす。特に、モデルが事実と異なる情報を生成する「幻覚」現象が発生した場合、一見もっともらしい思考過程を示しながら誤った結論に至るケースがある。また、推論の途中で論理的な矛盾が生じたり、思考連鎖が破綻したりすることもある。
4.2.2 過度な詳細化
CoTを適用する際に、モデルが必要以上に詳細な思考過程を生成することがある。この過度な詳細化は、本来簡単な問題に対して冗長な推論ステップを挿入し、結果として誤りの発生確率を高めたり、計算コストを無駄に増大させたりする原因となる。特に、ゼロショットCoTにおいては、モデルが「ステップバイステップ」の指示を過剰に解釈し、不必要な中間ステップを生成する傾向がある。
4.3 モデルサイズへの依存性
CoTの効果はモデルの規模に強く依存することが知られている。一般的に、パラメータ数が100億以上の大規模モデルにおいて顕著な性能向上が見られる一方、小規模モデルではCoTの効果が限定的であるか、場合によっては性能が低下することもある。これは、思考連鎖の生成と利用には十分な推論能力と知識ベースが必要であり、小規模モデルではこれらのリソースが不足するためと考えられる。この依存性は、計算資源の制約がある環境でのCoT活用における重要な課題となっている。