生成AI(ChatGPT、Claude、Geminiなど)に指示を出す際、ちょっとした工夫で回答の精度が劇的に変わることがあります。そのための代表的なテクニックが「Zero-shot」「Few-shot」「CoT(Chain of Thought)」の3つです。
これらはプロンプトエンジニアリングの基本として広く知られていますが、「どの場面でどれを使えばいいの?」と迷う方も多いでしょう。
この記事では、各手法の仕組みと具体的な使い方、タスク別の使い分け方、さらに最新の高性能AIモデルにおいて「効果が疑わしい(あるいは不要な)手法」についても最新の動向を踏まえて解説します。
- Zero-shot Prompting(ゼロショット・プロンプティング)
Zero-shotとは?
Zero-shot(ゼロショット)とは、AIに対して例示や事前知識を与えず、直接タスクを指示する最も基本的な手法です。
「Zero(ゼロ)= 例がない」「shot(ショット)= 試行」という意味の通り、AIが事前に学習した膨大な知識(プレトレーニング)のみに依存して回答を生成させます。
Zero-shotの具体例
以下の文章を、小学生にもわかるように要約してください。
文章:
光合成とは、主に植物や植物プランクトン、藻類など光合成色素をもつ生物が行う、光エネルギーを化学エネルギーに変換する生化学反応のことである。Zero-shotが向いているタスク
- 要約、翻訳、一般的な質問応答
- 情報抽出や、明確なルールが存在する単純な文章生成
[!TIP] 最新モデルでのZero-shot 2024〜2025年の最新モデル(GPT-4o、Claude 3.5 Sonnetなど)は、人間の指示に従う能力(インストラクション・チューニング)が極めて高いため、ほとんどの日常的なタスクはZero-shotだけで十分かつ高精度にこなせます。
- Few-shot Prompting(フューショット・プロンプティング)
Few-shotとは?
Few-shot(フューショット)とは、AIに質問を投げる前に、いくつか(Few)の「入力と出力の例」を提示する手法です。
AIは提示された例から「あ、こういうパターンで出力すればいいんだな」と法則性やフォーマットを学習(In-context learning)し、それに則った回答を返します。
Few-shotの具体例
単語の感情を「ポジティブ」「ネガティブ」「ニュートラル」に分類してください。
例1:
単語: 素晴らしい
感情: ポジティブ
例2:
単語: 最悪
感情: ネガティブ
例3:
単語: 机
感情: ニュートラル
問題:
単語: 感動した
感情:Few-shotが向いているタスク
- 出力フォーマット(JSON、特定形式の表など)を厳格に守らせたい時
- 企業特有のトーン&マナーや、独自の分類ルールを適用させたい時
[!NOTE] 例を1つだけ出すものをOne-shot(ワンショット)、多数出すものをMany-shot(メニーショット)と呼ぶこともあります。
- CoT(Chain of Thought:思考の連鎖)
CoTとは?
Chain of Thought(CoT)とは、AIに「ステップバイステップで論理的に考えさせる」ことで、複雑な問題の推論精度を劇的に向上させる手法です。
人間も難しい計算をする時、いきなり答えを出すのではなく、途中式を紙に書きますよね。AIにも同じように「思考の過程」を出力させることで、計算ミスや論理の飛躍(ハルシネーション)を防ぎます。
具体例(Few-shot CoT)
思考の過程を含んだ例を提示するアプローチです。
Q: 太郎はリンゴを5個持っていました。彼は2個食べ、その後、花子から3個もらいました。太郎は今リンゴを何個持っていますか?
A: 太郎は最初5個持っていました。2個食べたので、5 - 2 = 3個残りました。花子から3個もらったので、3 + 3 = 6個です。答えは6個です。
Q: 駐車場に車が10台ありました。3台が出ていき、新しく5台入ってきました。車は何台ありますか?
A:Zero-shot CoT(魔法の言葉)
例を提示せずに、プロンプトの最後に「ステップバイステップで考えてください(Let’s think step by step)」と付け加えるだけでも、AIは自ら論理構造を展開し、正答率が上がることが証明されています。これもCoTの一種です。
CoTが向いているタスク
- 算数・数学の計算、プログラミング(アルゴリズムの構築)
- 複雑な論理パズルや、複数の条件が絡み合うビジネス上の推論
【要注意】最新AIモデルにおける効果が疑わしい手法
プロンプトエンジニアリングの技術は日進月歩であり、かつて「必須」と言われたテクニックが、最新モデルでは不要、あるいは逆効果になるケースが出てきています。
- 推論特化モデル(o1等)への無理なCoTの強制
OpenAIの「o1」モデル(o1-preview, o1-mini等)に代表される推論特化型モデルは、モデル自身が内部で自動的にChain of Thought(思考の連鎖)を行ってから回答を生成する仕組みを持っています。 そのため、ユーザー側がプロンプトで「ステップバイステップで考えて」「このように思考を展開して」と無理に指示を与えると、モデル本来の優れた推論プロセスの邪魔をしてしまい、かえって精度が落ちることが公式のガイドラインでも指摘されています。
- 純粋な論理問題への Few-shot の多用
最新の高性能LLMは、一般的な知識や論理的推論においてすでに圧倒的な能力を持っています。 そのため、単に推論能力を高める目的で Few-shot(例示)を用いる意味は薄れつつあります。むしろ、提供した例に誤りや偏りがあった場合、最新モデルほどその「間違った例」に引っ張られて誤答を出してしまうリスクが高まります。 現在、Few-shot は「推論能力の向上」よりも「出力フォーマット(JSONの形や文体など)を揃えさせるため」の手段として使うのが主流です。
結論:タスク別の推奨手法まとめ
ここまで解説した3つの手法を、日常的なユースケースに当てはめてまとめました。迷った時はこの表を参考に、プロンプトを調整してみてください。
| 目的・タスク | 推奨するプロンプト手法 | 具体的なプロンプトの工夫 |
|---|---|---|
| 文章要約・翻訳・アイデア出し | Zero-shot | 「〜を要約して」「〜のアイデアを出して」と明確に指示するだけで十分です。 |
| 特定の形式や社内ルールに合わせた出力 | Few-shot | 望む出力のフォーマットやトーンの「例」を1〜3個提示し、それに従わせます。 |
| 複雑な計算・コーディング・論理的推論 | Zero-shot CoT | プロンプト内に「過程を一つずつステップバイステップで考えてください」と追記します。(※o1などの推論モデルを除く) |
まずは最もシンプルな Zero-shot から試し、出力フォーマットがブレるなら Few-shot を追加し、計算や論理にミスがあるなら CoT を検討する、という順序でプロンプトを洗練させていくのが、最も効率的なアプローチです。