Few-shot と Chain-of-Thought——古典技法の使いどころ
レッスン3:Few-shot と Chain-of-Thought——古典技法の使いどころ
このレッスンで学ぶこと
- Zero-shot/Few-shot/One-shot の使い分けを理解する
- Few-shot プロンプティングの「例の選び方」を押さえる
- Chain-of-Thought(思考連鎖)の原理と、それが効くタスクを区別できる
- reasoning モデル時代における CoT の使いどころの変化を把握する
- step-by-step の促し方の運用上のコツを学ぶ
前回のレッスンでは、プロンプトの基本骨格を 5 要素で整理しました。今回は、その中の「例」と「指示」の組み合わせから生まれる、もっとも有名な 2 つの古典技法——Few-shot プロンプティングと Chain-of-Thought——を扱います。古典でありながら、2026 年 6 月時点でも基本として使える技法です。一方、reasoning モデルの登場で「使い分け」の判断は大きく変わっています。
Zero-shot/One-shot/Few-shot の使い分け
「shot」とは、プロンプトに含める「期待する入出力の例」のことです。
| 名称 | 例の数 | 使う場面 |
|---|---|---|
| Zero-shot | 0 個 | タスクが標準的で、例なしでも LLM が理解できる |
| One-shot | 1 個 | 形式や微妙なスタイルを 1 例で示したい |
| Few-shot | 数個 | 例から「パターン」を学ばせたい、微妙な分類や抽出 |
Zero-shot プロンプティング
例を渡さずに、指示だけでタスクを実行させる方法。「以下の文を要約してください」「次のメールを返信用に書き直してください」など、LLM が学習済みの一般的なタスクで有効です。
One-shot プロンプティング
期待する形式やスタイルを 1 例で示します。「次の例のように書いてください:例:……」のパターン。出力の形が独特で、自然言語の説明では伝えにくいときに使います。
Few-shot プロンプティング
複数の例を渡して、LLM に「パターン」を学ばせる方法。Brown et al. が 2020 年の GPT-3 論文「Language Models are Few-Shot Learners」で示した、現代の LLM の基本能力の一つです。
例:
次のメールを「丁寧」「中立」「カジュアル」の 3 段階で分類してください。
例 1:「先日はお時間ありがとうございました」→ 丁寧 例 2:「ご確認ください」→ 中立 例 3:「了解!」→ カジュアル
分類してください:「資料お送りします」
💡 ポイント 「例を多く渡せばいいわけではない」点に注意です。例が増えると文脈窓を消費し、コスト・レイテンシが上がります。経験的には 3〜7 個程度の例が最も費用対効果が高い、というのが現場の感覚です。
Few-shot の「例の選び方」
Few-shot で精度を上げる鍵は、「例をどう選ぶか」です。本コースでは次の 4 点を運用ルールとして提案します。
①多様性(diversity)
似た例ばかり並べると、LLM がそのパターンに過剰適合します。タスクで起こりうるバリエーションをカバーするように選びます。
②難度の配分
「簡単すぎる例だけ」「難しい例だけ」だと偏ります。簡単・中程度・少し難しい、を混ぜると、安定した一般化が期待できます。
③ネガティブ例の活用
「これは違う」という反例を 1〜2 個入れると、エッジケースの誤判定が減ります。例:
例 4:「会議の件、確認しました」→ 中立(注意:「会議の件、ご確認ください」も中立。命令調でないので「丁寧」と誤らない)
④順序の影響
LLM は例の順序にも影響を受けます。「最後の例」「最初の例」を強く参照する傾向があります。重要な代表例を最後に置く、難度を昇順に並べる、などの工夫が効きます。
📝 補足 Few-shot の例は、評価セット(レッスン 5 で扱う)から「代表例」を抜き出して使うのが推奨です。評価セットで失敗が多いケースの「正解」を例に含めると、エラー率が下がる傾向があります。例の選択もイテレーションの対象です。
Chain-of-Thought(思考連鎖)
Chain-of-Thought(CoT)は、Wei らが 2022 年に NeurIPS 論文「Chain-of-Thought Prompting Elicits Reasoning in Large Language Models」で示した、LLM の推論精度を上げる古典的な技法です。
中核の発想
LLM に「結論だけを書く」のではなく「考えるプロセスを書きながら結論を導かせる」と、推論精度が上がる
Zero-shot CoT
もっとも簡単な形は、プロンプトの末尾に「Let's think step by step.」(日本語では「順を追って考えてみましょう」)と書き添えるだけのものです。Kojima らが 2022 年の NeurIPS 論文「Large Language Models are Zero-Shot Reasoners」で報告しました。
例:
質問:A さんはリンゴを 12 個、ミカンを 7 個持っています。リンゴの半分を友人にあげ、ミカンを 3 個食べました。残った果物は合わせて何個ですか? 順を追って考えてみましょう。
このシンプルな一言で、算数の問題などの推論精度が大きく上がる、というのが Wei・Kojima らの発見でした。
Few-shot CoT
期待する「思考過程の書き方」を Few-shot 例で示します。
例 1:質問:「A さんはリンゴ 10 個、半分を渡したら残りは?」 思考:A さんは 10 個持っていて、半分は 5 個。残るのは 10−5=5 個。 答え:5 個。
質問:「B さんはバナナ 8 本、4 本食べたら残りは?」
CoT が効くタスク
- 算数・論理推論
- 多段階の手続き的タスク
- 「事実を組み合わせて結論する」タスク
- 複雑な条件分岐を含む判断
CoT が効きにくいタスク
- 知識検索的なもの(事実 1 件の問い合わせ)
- 創作・自由記述(思考過程が冗長になる)
- 単純な分類(カテゴリ判定だけ)
💡 ポイント CoT は「とりあえず使えば精度が上がる」ものではありません。タスクの性質に応じて使い分けます。すべてのプロンプトに「step by step」と書き添える運用は、効きにくいタスクで無駄なトークンと時間を消費するだけです。
reasoning モデル時代における CoT の使いどころ
レッスン 1 で触れたように、2024 年後半から「reasoning モデル」が登場しました。これらは内部で「思考プロセス」を実行するため、CoT の使い分けが大きく変わっています。
従来モデルでの CoT
- 外側から「step by step で考えてください」と指示する効果が大きい
- 算数や論理問題で精度が大きく上がる
- 思考過程が出力に含まれるため、トークン消費が増える
reasoning モデルでの CoT
- 内部で勝手に考えるため、外側からの「step by step」指示は効果が薄い、または逆効果になる場合がある
- 「最終答えだけ返す」設計が標準で、思考過程は内部に隠される
- 外側から CoT を強制すると、内部思考と外部思考が二重になり、コスト・レイテンシが余計に上がる
使い分けの目安(2026 年 6 月時点)
| モデルタイプ | CoT の外側強制 |
|---|---|
| 従来モデル(GPT-5.5、Claude Opus 4.7、Gemini 3.1 Pro の標準モード) | 効く。Few-shot CoT、Zero-shot CoT を積極的に使う |
| reasoning モデル(o シリーズ、Claude Extended Thinking、Gemini Thinking) | 効きにくい。外側からの CoT 指示は最小限に。タスクが reasoning モデル向きか自体を判断 |
⚠️ 注意 「reasoning モデルなら何でも解ける」は誤解です。reasoning モデルは深い推論を要するタスクで強みを発揮しますが、コスト・レイテンシは従来モデルの数倍になることがあります。簡単なタスクには従来モデル、複雑な推論タスクに reasoning モデル、という使い分けが現実的です。
step-by-step の促し方の運用上のコツ
CoT を使うときの運用上の小技を 4 つ整理します。
①出力構造を分ける
「思考」と「答え」を別セクションで返させると、後処理が楽になります。
例:
出力形式: 【思考】(順を追って考えた過程) 【答え】(結論を 1 文で)
②思考の上限を設ける
長い思考は出力時間とコストを増やします。「思考は 5 ステップ以内」「200 文字以内で考え、答えを出してください」のような制約が有効です。
③検証の指示を入れる
「答えを出した後、検算してください」「結論が指示に合っているか自己点検してください」を入れると、エラーが減ります。これはレッスン 6 の Self-Refine の入り口にあたります。
④失敗例の蓄積
CoT が外れたケースを記録しておくと、Few-shot CoT の例として活用できます。レッスン 5 で扱う評価セットと連動します。
📝 補足 「step by step」を日本語でどう書くか、はモデルによって最適解が違います。Claude は日本語の「順を追って考えてみましょう」「ステップに分けて検討してください」によく反応し、Gemini は「思考過程を書いてから結論を出してください」が比較的安定する印象があります。最適な書き方は、自分の評価セットで試してから採用するのが安全です。
講師の現場メモ:「step by step」を全プロンプトに付けて遅くなった話
私(西脇)が SaaS スタートアップで PM をしていた頃の話です。社内 AI 機能のチームに新しく入ってきた若手エンジニアが、社内勉強会で「CoT は精度が上がる魔法の呪文」と学び、私たちが運用している 30 種類のプロンプトすべてに「Let's think step by step.」を一括追加する PR を出してきました。
私は迷いつつ、まず評価セットでの効果を測ってみました。結果は予想以上に厄介でした。
- 精度が改善したプロンプト:30 種類中 4 種類(算数・推論・抽出系)
- 精度がほぼ変わらなかったプロンプト:30 種類中 18 種類
- 精度が下がったプロンプト:30 種類中 8 種類(要約、対話、コード生成)
特に下がったのは、要約系のプロンプトでした。「step by step」を付けたために、要約のアウトプットが「まず原文を分解して、次にポイントを抽出して、そして最後に……」と冗長になり、本来欲しい簡潔な要約が得られなくなったのです。レイテンシも 1.5 倍、トークン消費も同程度に増えました。
私はその若手エンジニアと一緒に、各プロンプトのタスク性質を分類し、CoT が効くものと効かないものを分けました。結果として、「step by step」を本当に追加したのは 4 種類だけ。残りは元のままにしました。総合的なコストは下がり、平均精度は上がりました。
このときに改めて感じたのが、プロンプトの技法は「タスクと相性が合うか」が決定的だということです。「精度が上がる魔法の呪文」はなく、効くタスクと効かないタスクを評価セットで切り分けるのが、運用の基本になります。本コースが評価・イテレーションを中心に据えるのは、こうした経験が背景にあります。
まとめ
このレッスンでは、以下のことを学びました。
- Zero-shot/One-shot/Few-shot の使い分け:例なし/1 個/複数個。Few-shot は Brown et al. 2020 の GPT-3 論文で広く知られた
- Few-shot の例の選び方:多様性/難度の配分/ネガティブ例/順序の影響。経験的には 3〜7 個程度が費用対効果が高い
- Chain-of-Thought(Wei et al. 2022):「結論だけ」ではなく「考える過程を書きながら導く」と推論精度が上がる
- Zero-shot CoT(Kojima et al. 2022):「Let's think step by step.」を付けるだけの簡易版
- CoT が効くタスク(算数・論理推論・多段階手続き)と効きにくいタスク(知識検索・創作・単純分類)
- reasoning モデル時代では、CoT の外側強制は効きにくくなる。タスクとモデルの組み合わせで判断
- step by step の運用上のコツ:思考と答えを分離/思考の上限/検証の指示/失敗例の蓄積
次のレッスンでは、出力の安定性を上げるための「構造化出力」を扱います。JSON Schema、XML タグ(Anthropic 推奨)、Constrained Generation、Markdown テンプレート、出力検証とリトライ設計を学びます。
確認クイズ
このレッスンの理解度をチェックしましょう。