ストーリー
Chain of Thought(CoT)とは
Chain of Thought推論は、LLMに中間的な推論ステップを明示的に生成させることで、複雑なタスクの精度を向上させるテクニックだ。
CoTなしの場合
Q: NetShop社の1月の売上が500万円、2月が600万円、3月が450万円でした。
四半期の平均月次売上と、最も売上が低い月との差額はいくらですか?
A: 差額は66.7万円です。
CoTありの場合
Q: NetShop社の1月の売上が500万円、2月が600万円、3月が450万円でした。
四半期の平均月次売上と、最も売上が低い月との差額はいくらですか?
ステップバイステップで考えてください。
A: 1. 四半期の合計売上を計算: 500 + 600 + 450 = 1,550万円
2. 平均月次売上を計算: 1,550 / 3 ≒ 516.7万円
3. 最も売上が低い月を特定: 3月の450万円
4. 差額を計算: 516.7 - 450 = 66.7万円
答え: 差額は約66.7万円です。
CoTを使うことで、推論過程が透明になり、途中のミスを検出しやすくなる。
CoTの原理
LLMはトークンを逐次生成する仕組みのため、中間ステップを生成させることで以下の効果がある。
| 効果 | 説明 |
|---|---|
| 推論精度の向上 | 段階的な処理で複雑な問題を分解 |
| エラーの検出容易性 | 中間ステップが可視化されるため、どこで間違えたか特定しやすい |
| 自己修正の促進 | 前のステップの出力が次のステップの入力になり、矛盾を検知しやすい |
| 説明可能性 | 回答の根拠を追跡可能 |
CoTの3つのパターン
パターン1: 手動CoT(Manual CoT)
推論ステップの例を手動で記述してプロンプトに含める。
Q: サーバーのCPU使用率が80%を超えています。原因を特定してください。
思考プロセス:
1. まず、CPU使用率が高いプロセスを確認する
2. 次に、そのプロセスが通常時と比べて異常かどうか判断する
3. 外部要因(トラフィック増加、バッチ処理)の有無を確認する
4. 最終的に根本原因を特定し、対処法を提案する
では、以下の状況を分析してください:
(状況の詳細)
パターン2: Zero-shot CoT
「ステップバイステップで考えてください」の一文を追加するだけの手法。
以下のアーキテクチャの問題点を分析してください。
ステップバイステップで考えてください。
(アーキテクチャ図の説明)
研究によれば、この一文を追加するだけで算術・論理タスクの精度が大幅に向上する。
パターン3: 自動CoT(Auto-CoT)
LLMに推論ステップ自体を生成させ、それを元に再度推論させる2段階アプローチ。
Step 1: 「この問題を解くために必要な推論ステップを列挙してください」
Step 2: 「上記のステップに従って解答してください」
実践: NetShop社でのCoT活用
ケース1: 障害の根本原因分析
以下のシステム障害の根本原因を分析してください。
ステップバイステップで推論し、各ステップの根拠を示してください。
症状:
- 午前10時からECサイトのレスポンスが5秒以上に悪化
- データベースのコネクション数が上限(100)に到達
- 午前9時55分にバッチ処理がスケジュール実行された
- メモリ使用率は正常範囲内
推論形式:
Step 1: [観察] → [推測]
Step 2: [観察] → [推測]
...
結論: [根本原因] → [対処法]
ケース2: コスト見積もり
以下の要件に基づいて、AWSインフラのランニングコストを見積もってください。
計算過程をステップバイステップで示してください。
要件:
- 月間PV: 100万
- 平均レスポンスサイズ: 500KB
- データベースサイズ: 50GB
- ピーク時の同時接続: 500
CoTの注意点
| 注意点 | 詳細 |
|---|---|
| トークン消費が増加する | 中間ステップの分だけ出力トークンが増える |
| 単純なタスクには不要 | 分類や翻訳など、推論を必要としないタスクにはオーバーヘッドになる |
| ステップの粒度が重要 | 粒度が細かすぎると冗長、粗すぎると効果が薄い |
| 幻覚のリスク | もっともらしい推論過程を生成するが、内容が正しいとは限らない |
CoTを使うべきケース / 使わないべきケース
| 使うべき | 使わない方がいい |
|---|---|
| 数学的計算 | 単純な翻訳 |
| 論理的推論 | キーワード抽出 |
| 複数要因の分析 | 感情分類 |
| 意思決定の根拠提示 | 短文生成 |
まとめ
| 項目 | ポイント |
|---|---|
| CoTとは | LLMに推論の中間ステップを生成させる手法 |
| 3パターン | 手動CoT、Zero-shot CoT、自動CoT |
| 効果 | 複雑な推論の精度向上と説明可能性の確保 |
| 注意点 | トークン消費増加、単純タスクには不向き |
チェックリスト
- CoTの原理と効果を説明できる
- 3つのCoTパターンを使い分けられる
- CoTが有効なタスクと不向きなタスクを判断できる
- 実務での活用シーンをイメージできた
次のステップへ
次は「ReActパターン」として、推論と行動を交互に実行する高度なテクニックを学ぼう。
推定読了時間: 30分