Chain of Thought(チェーンオブソート)とは?LLM推論を強化するCoTプロンプト・読み方・実例を徹底解説

Chain of Thought(チェーンオブソート)とは

Chain of Thought(チェーンオブソート、以下CoT)とは、大規模言語モデル(LLM)に、答えを出す前に「段階的な思考プロセス」を書き出させることで、推論精度を大幅に向上させるプロンプト技法です。日本語では「思考の連鎖」「連鎖的思考プロンプト」とも訳されます。2022年にGoogleのJason Wei氏らが論文で発表して以来、LLM活用における最重要テクニックのひとつとして定着しました。

身近な例で言えば、「算数のテストで、答えだけ書かせるのではなく、途中式も書かせる」ようなイメージです。人間でも、暗算で一気に答えを出すより途中式を書いた方が正答率が上がりますが、LLMにも同じことが起こります。ただ答えを求めるのではなく「考える過程」を言語化させることで、複雑な多段推論、算数問題、論理パズル、プログラミングの設計などが劇的に解けるようになります。ここが重要なポイントです。

Chain of Thoughtの読み方

チェーンオブソート

チェインオブソート

シーオーティー(略称 CoT)

思考の連鎖(日本語訳)

Chain of Thoughtの仕組み

Chain of Thoughtは、2022年1月にarXivで公開されたGoogleの論文「Chain-of-Thought Prompting Elicits Reasoning in Large Language Models」で体系化されました。著者らは、モデルパラメータ数が一定以上(およそ100億〜千億超)のLLMで特に効果が顕著になる「創発的能力(Emergent Ability)」として報告しました。

基本的な動作原理

通常のプロンプトでは、問題→答えの1ステップで処理されます。CoTでは間に「思考過程」の自己生成を挟むことで、複数の中間結論を経由して最終回答にたどり着きます。注意していただきたいのは、LLMは自己回帰的(前のトークンに基づき次のトークンを生成)なので、中間ステップを書き出すこと自体が後続推論の材料となる文脈になるという点です。

CoTの3大流派

1. Few-shot CoT

プロンプト内に、問題と思考過程+答えのペアを複数例示する方式。精度は高いが、プロンプトが長くなりやすい。

2. Zero-shot CoT

2022年5月のKojima et al.論文で提案された手法。「Let’s think step by step(段階的に考えましょう)」という一文を付け加えるだけで、例示なしにCoTを引き出せます。シンプルかつ強力です。

3. Self-Consistency CoT

Wang et al.(2022)が提案。同じ問題を複数回CoTで解かせ、多数決で答えを決める方式。ばらつきの大きな推論タスクで精度が上がります。

通常プロンプトとCoTプロンプトの違い

通常
問題 → 答え
CoT
問題 → 思考過程 → 答え

Extended Thinking / 推論モデルとの関係

2024年後半からOpenAIのo1、AnthropicのExtended Thinking、Google GeminiのThinkingモードなど、CoTをモデル内部で自動実行する「推論モデル(Reasoning Model)」が次々登場しました。これらはCoTをプロンプト技法から、モデルの標準機能へと進化させたものと位置付けられます。

Chain of Thoughtの使い方・実例

最も簡単なZero-shot CoTの例を示します。実務では、どんなLLMアプリにも低コストで適用できる点が大きな魅力です。

# 悪い例(CoTなし)
prompt = "太郎はリンゴを5個持っていて、そのうち2個を食べました。
花子から3個もらい、半分を妹にあげました。太郎の手元のリンゴは何個?"
# → 誤答の確率が高い

# 良い例(Zero-shot CoT)
prompt = "太郎はリンゴを5個持っていて、そのうち2個を食べました。
花子から3個もらい、半分を妹にあげました。太郎の手元のリンゴは何個?

段階的に考えて、計算過程も書いてから最終的な答えを出してください。"

# AI の回答例:
# ステップ1: 最初 5個 − 2個(食べた) = 3個
# ステップ2: 3個 + 3個(もらった)= 6個
# ステップ3: 6個 ÷ 2 = 3個(妹にあげた残り)
# 答え: 3個

Few-shot CoTの例

prompt = '''以下の例を参考に、同じように段階的に考えて答えてください。

例1:
Q: ジュースが12本あり、3人で等分しました。1人何本?
A: 12 ÷ 3 = 4。答え: 4本

例2:
Q: 500円の商品を20%引きで買いました。支払額は?
A: 割引額 500 × 0.2 = 100。500 − 100 = 400。答え: 400円

本題:
Q: 時給1,200円のアルバイトで、月50時間働きました。
所得税率10%とすると、手取りはいくら?
A:'''

Chain of Thoughtのメリット・デメリット

メリット

  • 複雑な算数・論理推論の精度が劇的に上がる
  • 推論過程が見えるため、誤答の原因を特定しやすい
  • プロンプトに一行足すだけでZero-shot CoTは実装できる
  • ファインチューニング不要でベースモデルの潜在能力を引き出せる
  • 複雑なタスクを自然に分解してくれる

デメリット

  • 出力トークン数が増えるためコスト・遅延が上がる
  • 小型モデル(10B未満)では効果が出にくい(創発能力)
  • 思考過程が間違っていても、最終回答が偶然合うことがある
  • Hallucination(幻覚)した推論を生成する場合がある
  • 短い定型質問ではむしろ冗長でユーザ体験が悪化することも

Chain of Thoughtと通常プロンプトの違い

CoTと他の推論強化技術の位置関係を整理します。ここが重要なポイントです。

手法 考え方 向いているタスク
通常プロンプト 問題→答えを1発で出す 単純なQA・要約
CoT 問題→思考過程→答え 算数・論理・多段推論
Self-Consistency CoTを複数回実行→多数決 ばらつきの大きい推論
Tree of Thoughts 思考を木構造で探索 最適化・探索問題
Extended Thinking モデル内で自動CoT 高難度問題全般

よくある誤解

誤解1: 「ステップバイステップ」と書けば常に精度が上がる

単純な事実回答や短い翻訳では、CoTを強制すると冗長なだけで精度は上がりません。タスクに応じた使い分けが大切です。

誤解2: 思考過程が正しければ答えも正しい

残念ながら逆の現象(Faithfulness問題)も存在します。LLMは「もっともらしい思考過程」を捏造しつつ、答えが別の内部的な要因で決まっている場合があります。思考過程を鵜呑みにすべきではありません。

誤解3: 推論モデル(o1など)が出たのでCoTはもう不要

推論モデルは内部でCoTを自動実行しますが、それでもユーザがCoT風のプロンプトを書くと精度がさらに上がるケースがあります。また通常のLLMでは依然としてCoTは有効な技法です。

実務での活用シーン

以下のような業務で、CoTは特に威力を発揮します。覚えておきたい現場のベストプラクティスです。

  • データ分析SQL自動生成:テーブル構造を考えてから最適なクエリを生成
  • 法律・契約書の解釈:条項ごとに論点を整理
  • 医療判断支援:症状→鑑別診断→推奨検査の連鎖
  • 数学・物理問題の教育:解き方のプロセスを可視化
  • バグ解析:スタックトレース→仮説→検証ステップ
  • 複雑なエージェント行動計画:タスク分解と順序付け

よくある質問(FAQ)

Q1. 日本語でもCoTは効きますか?

効きます。「段階的に考えて」「まず分解してから答えて」など日本語の指示でも十分効果があります。

Q2. どのくらいの長さの思考過程を書かせるべき?

問題の複雑さに応じて適切な長さになるよう、モデルに任せるのが一般的です。短すぎれば「もっと詳しく段階を分けて」、長すぎれば「要点を3ステップに」などと調整します。

Q3. CoTとRAGは併用できる?

はい、相性抜群です。RAGで取得した情報源を読み、CoTで統合的に推論するというパターンは業務AIの王道構成です。

Q4. 思考過程をユーザに見せるべき?

UXによります。教育・医療・法律など根拠が重要な領域では見せた方が良く、カスタマーサポートのようにスピード重視の場面では隠すのが一般的です。

発展形CoT手法

Chain of Thoughtには、基本形の3流派以外にも多様な発展系があります。覚えておきたい代表例は次のとおりです。

Tree of Thoughts(ToT)

Yao et al.(2023)が提案。単一の思考チェーンではなく、複数候補を木構造で探索・評価する手法です。ゲーム・パズル・創作など、探索が必要なタスクで有効です。

Graph of Thoughts(GoT)

ToTのさらに発展形で、思考ノードを併合・再編できる有向グラフとして扱います。ソートや集合操作で効果が報告されています。

Program-Aided Language Models(PAL)

自然言語ではなくPythonコードで「思考」させる手法です。算数・記号操作タスクでは、言語トークンより実際の計算が圧倒的に正確なため、精度が大幅に向上します。

Reflexion

回答後に自己批判→再試行を繰り返す手法。トークンコストと引き換えに精度を向上させられます。

CoTが効く理由(メカニズム仮説)

なぜCoTが有効なのか、研究者はいくつかの説明を提示しています。ここが重要なポイントです。

  • 計算の展開:各推論トークンが追加の計算資源として機能し、1回の前向き計算を連続的な計算に拡張する
  • カリキュラム効果:小さなステップに分けることで、モデルが得意な部分問題を組み合わせて複雑な解に至る
  • 分布マッチング:人間が書いた推論データはネット上に豊富にあり、CoT指示でその分布に近づける
  • モード切り替え:CoT指示によって「パターン補完」から「構造化推論」にモードが切り替わる

Faithfulness問題とその影響

CoTの大きな落とし穴が思考過程の忠実性(Faithfulness)の問題です。Lanham et al.(2023)の研究では、モデルの思考チェーンが実際の答えの決定要因を正確に反映していないケースが多数報告されました。つまり「もっともらしい理屈を後付けしているだけ」の可能性があるのです。

実務では、医療・法律・金融など根拠が重要な業務でCoT出力を説明として使う場合、人間のレビューや別モデルによる検証を必ず挟むのが安全です。

CoTを使うべきでないケース

万能に見えるCoTですが、次のようなケースでは使わない方が良い場合があります。

  • 短い事実質問(回答速度とUXが悪化するだけ)
  • 翻訳・要約・定型変換タスク
  • リアルタイム音声応答など遅延が重要な用途
  • 小型モデル(10B未満)を使用している場合
  • トークンコストがシビアな高頻度タスク

注意していただきたいのは、「段階的に考えて」と書けば常に精度が上がるわけではないという点です。タスク特性を見極めて適用するのが実務の作法です。

まとめ

  • Chain of Thoughtは、LLMに段階的な思考を書き出させるプロンプト技法
  • 読み方は「チェーンオブソート」、略称「CoT」
  • 2022年にGoogleが論文で体系化
  • Zero-shot CoTは「段階的に考えて」の一文で実現できる
  • Self-Consistency、Tree of Thoughtsなど発展手法もある
  • 推論モデル(o1、Extended Thinkingなど)はCoTを内部自動化したもの
  • 算数・論理・多段推論で特に効果的

参考文献・出典

📚 参考文献・出典

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA