Chain-of-Thought

思考の連鎖

Chain-of-Thought を分かりやすく

Chain-of-Thought(思考の連鎖、CoT)は、AI に推論の過程を段階的に説明させる技術です。

例え話をしましょう。数学の問題を解くとします。

通常のアプローチ(答えのみ)

  • 問題「太郎くんは1日に3個のリンゴを食べます。1週間で何個食べますか?」
  • あなた「21個」
  • 先生「どうやって解いたの?」
  • あなた「...忘れました」

Chain-of-Thought アプローチ(過程を説明)

  • 問題「太郎くんは1日に3個のリンゴを食べます。1週間で何個食べますか?」
  • あなた「1週間は7日です」
  • あなた「1日に3個食べるので、3 × 7 を計算します」
  • あなた「3 × 7 = 21」
  • あなた「答えは21個です」

AI も同じように、推論の過程を段階的に説明することで、より正確に問題を解けるようになります。

Chain-of-Thought の仕組み

AI に「段階的に考えさせる」ことで、複雑な推論が可能になります。

通常のプロンプト

プロンプト:
「次の問題を解いてください。
問題: りんご5個とみかん3個があります。果物は全部で何個ですか?」

AI の応答:
「8個です」

問題点:
- 推論過程が見えない
- 間違っていても気づきにくい
- 複雑な問題では精度が落ちる

Chain-of-Thought プロンプト

プロンプト:
「次の問題を段階的に解いてください。
問題: りんご5個とみかん3個があります。果物は全部で何個ですか?」

AI の応答:
「ステップ1: りんごの数を確認します。りんごは5個です。
 ステップ2: みかんの数を確認します。みかんは3個です。
 ステップ3: 果物の合計を計算します。5 + 3 = 8
 答え: 果物は全部で8個です」

メリット:
- 推論過程が明確
- 間違いを発見しやすい
- 複雑な問題でも対応可能

Chain-of-Thought の実例

様々なタスクでの活用例を紹介します。

算数の文章題

プロンプト:
「次の問題を段階的に解いてください。

問題: ケーキ屋さんで、1個300円のケーキを5個買うと、
10%割引になります。支払う金額はいくらですか?」

AI の応答:
「ステップ1: ケーキ1個の価格は300円です
 ステップ2: 5個買うので、定価は 300 × 5 = 1,500円
 ステップ3: 10%割引なので、割引額は 1,500 × 0.1 = 150円
 ステップ4: 支払い金額は 1,500 - 150 = 1,350円
 答え: 1,350円」

論理推論

プロンプト:
「次の問題を論理的に考えて解いてください。

問題: すべての猫は動物です。ポチは猫ではありません。
ポチは動物ですか?」

AI の応答:
「ステップ1: 前提を整理します
  - 前提1: すべての猫は動物である
  - 前提2: ポチは猫ではない

 ステップ2: 論理を分析します
  - 前提1は「猫 → 動物」を意味します
  - しかし、「猫でない → 動物でない」とは言えません
  - 犬も動物、鳥も動物です

 ステップ3: 結論
  - 猫でないからといって、動物でないとは限りません
  - ポチは猫以外の動物かもしれないし、動物でないかもしれません

 答え: 与えられた情報だけでは判断できません」

常識推論

プロンプト:
「次の状況を分析し、推論してください。

状況: 太郎さんは傘を持って出かけました。
帰ってきたとき、服が濡れていました。
何が起きたと考えられますか?」

AI の応答:
「ステップ1: 与えられた情報
  - 太郎さんは傘を持っていた
  - 服が濡れている

 ステップ2: 可能性の検討
  - 傘を持っているのに濡れた理由を考えます
  - 可能性1: 雨が強すぎて、傘だけでは防げなかった
  - 可能性2: 風が強く、横から雨が入ってきた
  - 可能性3: 傘を忘れて置いてきた
  - 可能性4: 水たまりに落ちたり、水をかけられたりした

 ステップ3: 最も可能性が高い推論
  - 傘を持って出たのに濡れたことから、
    雨が予想以上に強かったと考えられます

 答え: 大雨で、傘だけでは防ぎきれなかったと推測されます」

Chain-of-Thought の種類

CoT にはいくつかのバリエーションがあります。

Zero-Shot CoT

例を示さずに、「段階的に考えて」と指示します。

プロンプト:
「次の問題を段階的に考えて解いてください。
問題: [問題文]」

または

「Let's think step by step. [問題文]」

シンプルだが効果的

Few-Shot CoT

推論過程の例を示します。

プロンプト:
「例に従って、段階的に解いてください。

例1:
問題: 2 + 3 × 4 = ?
解答:
ステップ1: 掛け算を先に計算します。3 × 4 = 12
ステップ2: 足し算を計算します。2 + 12 = 14
答え: 14

例2:
問題: 10 ÷ 2 + 3 = ?
解答:
ステップ1: 割り算を先に計算します。10 ÷ 2 = 5
ステップ2: 足し算を計算します。5 + 3 = 8
答え: 8

では、次の問題を解いてください。
問題: 6 + 8 ÷ 2 = ?」

AI は例のパターンに従って推論

Self-Consistency CoT

同じ問題を複数回解かせ、最も多い答えを選びます。

同じ問題を5回解く:
1回目: 答え A
2回目: 答え A
3回目: 答え B
4回目: 答え A
5回目: 答え A

最終答え: A(多数決)

Chain-of-Thought の効果

CoT は、特に複雑な推論タスクで大きな効果を発揮します。

数学問題での改善

ベンチマーク: GSM8K(算数の文章題)

通常のプロンプト: 60% の正答率
CoT プロンプト: 85% の正答率

約25ポイントの改善

論理推論での改善

ベンチマーク: BigBench(複雑な推論タスク)

通常のプロンプト: 45% の正答率
CoT プロンプト: 70% の正答率

大幅な改善が見られる

モデルサイズとの関係

CoT の効果は、モデルのサイズに依存します。

小規模モデル(1B パラメータ):
通常: 20%
CoT: 22%(わずかな改善)

中規模モデル(10B パラメータ):
通常: 40%
CoT: 55%(明確な改善)

大規模モデル(100B+ パラメータ):
通常: 60%
CoT: 85%(大幅な改善)

大規模モデルほど CoT の効果が高い

Chain-of-Thought のベストプラクティス

CoT を効果的に使うためのベストプラクティスです。

1. 明示的に段階的思考を求める

悪い例:
「この問題を解いてください」

良い例:
「この問題を段階的に考えて解いてください」
または
「Let's think step by step」

2. 中間ステップを明示的に求める

悪い例:
「答えを出してください」

良い例:
「各ステップを説明しながら、答えを導いてください」

3. 複雑な問題を分解する

悪い例:
「この複雑な問題を解いてください」

良い例:
「まず、問題を理解し、次に必要な情報を整理し、
 その後、段階的に計算してください」

4. 検証ステップを含める

プロンプト:
「問題を解いた後、答えが妥当かどうか検証してください」

AI:
「[推論過程]
 答え: X
 検証: この答えは問題の条件を満たしているか確認します...」

Chain-of-Thought の課題

CoT にもいくつかの課題があります。

課題 1: トークン消費

推論過程を説明するため、多くのトークンを消費します。

通常のプロンプト:
入力: 50トークン
出力: 10トークン
合計: 60トークン

CoT プロンプト:
入力: 50トークン
出力: 150トークン(推論過程含む)
合計: 200トークン

約3倍のコスト

課題 2: レスポンス時間

出力が長くなるため、応答時間が増加します。

通常: 1秒
CoT: 3〜5秒

リアルタイムアプリケーションでは課題

課題 3: 誤った推論

推論過程が詳細でも、間違っている可能性があります。

例:
「ステップ1: ... (正しい)
 ステップ2: ... (正しい)
 ステップ3: ... (間違い)
 答え: X (間違った答え)」

推論過程を検証する仕組みが必要

Chain-of-Thought の実用例

実際のアプリケーションでの活用例を紹介します。

教育アプリケーション

数学の問題解決:
- 学生に解き方を教える
- 段階的な説明で理解を促進
- 間違いを発見しやすい

例:
「問題: 太郎くんは...
 ステップ1: まず、与えられた情報を整理します
 ステップ2: 必要な計算式を立てます
 ...」

医療診断サポート

症状からの推論:
- 症状を段階的に分析
- 可能性のある病気を推論
- 医師の判断を補助

例:
「症状: 発熱、咳、のどの痛み
 ステップ1: 各症状を分析します
 ステップ2: 共通する病気を検討します
 ...」

法律文書の分析

契約書のリスク分析:
- 条項を段階的に分析
- 潜在的なリスクを特定
- 推論過程を記録

例:
「ステップ1: 契約期間を確認します
 ステップ2: 解約条件を分析します
 ステップ3: リスクを評価します
 ...」

デバッグ支援

コードのエラー分析:
- エラーを段階的に追跡
- 原因を推論
- 解決策を提案

例:
「エラー: NullPointerException
 ステップ1: エラーが発生した行を確認します
 ステップ2: 変数の状態を分析します
 ステップ3: null になった原因を推論します
 ...」

まとめ

Chain-of-Thought は、AI に推論プロセスを段階的に説明させることで、複雑な問題の解決能力を大幅に向上させる強力なプロンプト技術です。

重要なポイント

  1. 段階的推論 - 思考過程を明示的に説明
  2. 精度向上 - 特に複雑な問題で大幅に改善
  3. 透明性 - 推論過程が見えるため、信頼性が向上
  4. コスト - トークン消費が増加
  5. モデルサイズ - 大規模モデルほど効果が高い

CoT が最適な場面

  • 数学の文章題
  • 論理推論
  • 複雑な意思決定
  • 教育目的
  • 推論過程の透明性が重要

CoT が不要な場面

  • 単純な質問
  • 事実確認
  • リアルタイム応答が必要
  • コスト削減が優先

Chain-of-Thought は、AI の推論能力を引き出すための最も効果的な技術の一つです。適切に活用することで、AI アプリケーションの品質と信頼性を大きく向上させることができます。