Chain-of-Thought(思考の連鎖、略してCoT)はプロンプト技術の一つで、モデルにいきなり答えを出させるのではなく、先に中間の推論ステップを書き出させ、最後に結論を出させる手法です。数学の問題では、答えの数字を直接出すのではなく、「未知数を置く→方程式を立てる→解く」という過程を先に書きます。この「過程を先に書く」という制約により、複雑な問題の正答率が大きく上がることが多いのです。
基本のやり方:ステップを先に、答えは後に
大規模言語モデルはトークンを一つずつ生成し、先に出力した内容が後の文脈になります。Chain-of-Thoughtはこの性質を利用しています。中間ステップが一度書き出されれば、それが最終回答の根拠になる。ステップがしっかりしていれば、答えが「途中を飛ばして」間違える可能性が低くなります。
例示から一言の合図へ
初期のChain-of-Thoughtはfew-shot方式で、プロンプトに「問題+段階的な解答」の例を2〜3個入れ、モデルがその形式にならって新しい問題を解くものでした。2022年、Kojimaらは論文「Large Language Models are Zero-Shot Reasoners」で、例は必須ではないことを示しました。問題の後に「Let's think step by step」と一言添えるだけで、モデルは自ら推論を展開します。これがzero-shot CoTで、数学推論ベンチマークGSM8Kの正答率を約10%から約40%に引き上げました。形式が特殊で記号が多いタスクには例示が向き、例が手元にない場合は一言の合図が手早い。
多数決で勝つ:self-consistencyデコーディング
self-consistency(自己整合性)はChain-of-Thoughtの発展形で、同じ問題を何度も解かせ、毎回異なる推論経路を通らせた上で、最も多く現れた答えを採用します。複数の独立した推論チェーンが同じ間違いを同時に犯す確率は低く、投票によって偶発的なミスを除去できます。代償として計算量は倍増します。
「推論モデル」とは別物
Chain-of-Thoughtはあらゆる大規模言語モデルに使えるプロンプト手法であり、「推論モデル」(o1やDeepSeek-R1など)は段階的思考を得意とするよう特別に訓練されたモデルの種類です。通常のモデルはChain-of-Thoughtに「促されて」段階的に考え、推論モデルは生まれつきそうする。後者にさらにChain-of-Thoughtを足しても、効果はたいてい小さい。
使う前に知っておきたい四つの制約
一つ目はトークンコストの高さで、ステップはすべて出力されるため、難しい問題では数倍のトークンを消費します。二つ目は推論のハルシネーションで、ステップはもっともらしく見えても結論が間違っていることがあり、モデルは「推論らしく見える文章」の生成が得意なだけで、重要なステップは人間が確認する必要があります。三つ目は小規模モデルでの効果の薄さで、効果はモデルの基礎能力に大きく依存し、小さすぎるモデルはステップを書いても間違えがちです。四つ目は長いチェーンでの誤差の蓄積で、ステップが増えるほどどこかで間違える確率が上がり、一つ間違えると連鎖的に崩れます。
よくある二つの誤解
誤解その一:Chain-of-Thoughtを使えば、モデルは「本当に推論」している。違います。あくまで段階的な文章の生成を促しているだけで、モデルは確率に基づいて次のトークンを予測しており、人間のような論理検証の仕組みは持っていません。誤解その二:表示された思考チェーンはモデルの「本当の考え」であり、説明可能性の証拠になる。これは危険です。表示されるステップはユーザー向けに生成された文章であって、内部の実際の計算過程と等しくはありません。結論を先に決めてからステップを後付けする例も研究で見つかっており、ステップは事後的な正当化にすぎない場合があります。
試す価値のある場面
数学の計算、論理的推論、多段階の計画、根拠の引用が必要なQ&Aが、Chain-of-Thoughtの得意分野です。創作、雑談、単純な事実検索ではトークンの無駄になりがちです。判断基準はシンプルで、厳密な導出が求められる問題ほど効果があり、答えが主観的で開かれているほど不要になります。
Chain-of-Thoughtは「よく考えてから話す」を再現可能な操作に変えました。その境界と誤解を覚えておくことは、使い方を覚えること以上に重要です。