Chain-of-Thought と推論プロンプト
学習目標
- Chain-of-Thought(思考の連鎖、以下 CoT)が「なぜ精度を上げるのか」を、トークン生成の仕組みから説明できる
- Zero-Shot CoT(例を与えない CoT)と Few-Shot CoT(例を与える CoT)の使い分けが判断できる
- 自分の日常業務で CoT を使うべきタスクと、そうでないタスクを切り分けられる
💡 このレッスンのひとことサマリー AI に「答えだけ言って」ではなく「考えながら答えて」とお願いするだけで、難しい問題の正答率が上がります。その理由と、いつ使えばよいかを学びます。
はじめに:AI に「いきなり答え」を求めると間違えやすい
私たち人間も、暗算で複雑な計算をすると間違えやすく、紙に途中式を書くと正確になります。AI(LLM)もこれとよく似ています。
「結論だけ先に言って」と急かすと、AI は十分に考えないまま答えを出してしまい、間違いが増えます。逆に「順番に考えていいよ」と伝えると、AI は途中の思考を文章にしながら答えにたどり着くため、精度が上がります。この「考え方を見せながら答えさせる」テクニックが Chain-of-Thought(CoT) です。
📘 用語ミニ解説
- LLM(大規模言語モデル):ChatGPT や Claude などの文章を生成する AI のこと。
- トークン:AI が文章を扱うときの最小単位。単語や文字のかたまりだと思ってください。AI は文章を「トークンを 1 個ずつ前から並べていく」かたちで作ります。
- プロンプト:AI への指示文・お願い文のこと。
Chain-of-Thought (CoT) とは
Chain-of-Thought とは、AI に推論の過程を段階的に示させるテクニックです。 複雑な問題を「一気に答えさせる」のではなく、「考え方を見せながら答えさせる」ことで精度が上がります。
イメージとしては、次の違いです。
| 指示の仕方 | AI の挙動 | |
|---|---|---|
| 通常 | 「答えを出して」 | 途中の計算や根拠を飛ばして結論だけ出す → 間違えやすい |
| CoT | 「順番に考えてから答えて」 | 途中の思考を書きながら結論に進む → 間違えにくい |
なぜ CoT が効くのか
LLM はトークンを前から順番に生成します。つまり「すでに書いた文章」を手がかりにして「次の言葉」を選んでいます。
最終回答だけを直接出力させると、中間ステップ(途中の計算や根拠)が省略されてしまい、AI は確認材料を持たないまま結論を当てにいくことになります。
CoT で中間ステップを先に書かせると、AI はその「自分が書いた途中経過」を手がかりにできるため、答えを確認しながら生成できます。人間が途中式を書くと検算しやすくなるのと同じ原理です。
[通常プロンプト]
Q: 太郎は 18 個のリンゴを持っていました。
3 人の友達に均等に配り、残りを食べました。何個食べましたか?
A: 3個 ← 途中を飛ばしたので誤答
[CoT プロンプト]
Q: 上記の問題をステップバイステップで考えてください。
A: まず 18 ÷ 3 = 6。各友達に 6 個配ります。
配った合計は 6 × 3 = 18 個。残りは 18 - 18 = 0 個。
太郎は 0 個食べました。 ← 途中を書いたので正答
💡 Tip CoT は「魔法のおまじない」ではなく、「AI に考える余白(途中で使うトークン)を与える」テクニックだと理解すると応用が利きます。
Zero-Shot CoT(例を与えないやり方)
「Zero-Shot(ゼロショット)」とは、お手本(例)を 1 つも与えないという意味です。最もシンプルな CoT は、プロンプトの末尾に一言添えるだけです。
「ステップバイステップで考えてください」
「Let's think step by step.」
「手順を説明しながら答えてください」
これだけで複雑な推論問題の精度が大幅に向上します (Kojima et al., 2022)。準備がいらず、すぐ試せるのが最大の利点です。まず最初に試すべき方法と覚えておきましょう。
Few-Shot CoT(お手本を与えるやり方)
「Few-Shot(フューショット)」とは、いくつかのお手本(例)を与えるという意味です。「こういう考え方で、こう答えてほしい」という見本を示すことで、さらに精度を高められます。
例1:
Q: AはBの2倍、BはCの3倍。Cが5のときAは?
考え方: C=5 → B=5×3=15 → A=15×2=30
A: 30
例2:
Q: [新しい問題]
考え方: [ここでAIが推論過程を書く]
A: [最終答え]
ポイントは、「答え」だけでなく「考え方」もお手本に含めることです。AI は見本の思考プロセスをまねるため、出力の形式や論理の進め方をこちらの望みどおりにそろえやすくなります。
Zero-Shot と Few-Shot の使い分け早見表
| Zero-Shot CoT | Few-Shot CoT | |
|---|---|---|
| やること | 末尾に一言添えるだけ | お手本を 2〜3 件添える |
| 準備の手間 | ほぼゼロ | お手本を用意する手間あり |
| 精度 | 高い | さらに高い・出力形式もそろう |
| 向いている場面 | まず手早く試したいとき | 形式をそろえたい・誤答が許されない業務 |
💡 Tip 迷ったら「まず Zero-Shot で試す → 物足りなければ Few-Shot にお手本を足す」の順がおすすめです。
実務での活用シーン
CoT は計算問題だけのものではありません。日常業務の「考えて判断する系」のタスク全般で効きます。
| シーン | プロンプト例 |
|---|---|
| コードレビュー | 「問題点をリストアップしてから、修正案を提示してください」 |
| 意思決定サポート | 「メリット・デメリットを整理した上で推奨案を出してください」 |
| 文書作成 | 「構成案を先に示してから、本文を書いてください」 |
| 数値計算 | 「計算過程を示しながら答えてください」 |
| トラブル原因の切り分け | 「考えられる原因を順番に挙げ、可能性の高い順に並べてください」 |
いずれも共通しているのは、「結論の前に整理・分解のステップを置いている」点です。
使い分けの判断フロー
タスクの種類によって CoT が効くかどうかは変わります。シンプルな分類や事実検索では、CoT を入れても効果がないどころか出力が冗長になり、逆に読みづらくなります。
⚠️ 注意:CoT が不向きなタスクもある 「この問い合わせはクレームか問い合わせか分類して」「この文章を3行に要約して」のような単純タスクでは、途中の思考を書かせると出力が長くなり、かえって使いにくくなります。ステップが 1 つで済むタスクには CoT を使わないのがコツです。
まとめ
- CoT は AI に推論過程を段階的に示させるテクニック
- 「ステップバイステップで考えてください」だけで効果がある(Zero-Shot CoT)
- お手本を 2〜3 件与えると、さらに精度が上がり出力形式もそろう(Few-Shot CoT)
- 複雑な問題・高い精度が必要なタスクに特に有効
- 単純な分類や要約には CoT を入れないほうが読みやすい出力になる
用語集
| 用語 | かみ砕いた意味 |
|---|---|
| Chain-of-Thought (CoT) | AI に途中の考えを書かせてから答えさせるテクニック |
| Zero-Shot CoT | お手本なしで「順番に考えて」と一言添えるだけのやり方 |
| Few-Shot CoT | 「考え方つきのお手本」を数件見せてまねさせるやり方 |
| トークン | AI が文章を作るときの最小の部品(単語・文字のかたまり) |
| プロンプト | AI への指示文・お願い文 |
確認問題
- CoT が精度向上に効く理由を、LLM のトークン生成順序の観点から1文で説明してください。
- 「請求金額の妥当性チェック」を AI にやらせたい場合、Zero-Shot CoT と Few-Shot CoT のどちらを選ぶか、理由とともに答えてください。
- CoT を入れない方が良い業務タスクの例を1つ挙げてください。
参考リンク
- Kojima et al., "Large Language Models are Zero-Shot Reasoners" (2022): https://arxiv.org/abs/2205.11916
- Anthropic 公式 — Chain of Thought prompting: https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/chain-of-thought
全 11 レッスンを、登録なしで無料で読めます。