クイックファクト
- 1フューショットの一般的な範囲: 2〜10例。8例を超えると効果は頭打ちになりやすい
- 2出典: Brown et al. (2020)「Language Models are Few-Shot Learners」— 1,750億パラメータのGPT-3論文
- 3GPT-3で報告された差: TriviaQAでゼロショット64.3% → フューショット71.2%
- 4トークンコスト: 約120トークンの例を5つ添えると、1リクエストあたり約600入力トークンが増加
- 5プロンプトキャッシュ: 静的なフューショットブロックはClaudeのプロンプトキャッシュで再送分の入力コストを最大90%削減できる
- 6採用の基準: 50件のテストで10ポイント以上改善するならフューショットを本番投入する
ゼロショットプロンプティングとは
📍 In One Sentence
ゼロショットプロンプティングは、文脈内のデモンストレーションを一切与えずタスク指示のみを渡し、モデルの事前学習と指示チューニングに全面的に依存する手法です。
💬 In Plain Terms
ゼロショットは「やり方はもう分かっているはず」と信じて、やることだけを伝える方式です。手本はなく、指示だけを渡します。
ゼロショットプロンプティングは、プロンプト内に例を置かず、明確な指示だけでタスクを解かせる手法です。 モデルは事前学習とアライメントで獲得した一般知識と指示追従能力に頼ります。
例のペアを設計・維持する必要がないため、立ち上げが速いのが利点です。一般的な質疑応答、単純な分類、要約、平易な翻訳など、指示だけで足りる広いタスクに向いています。
ゼロショットでは、モデルが参照できる例が存在しません。そのため、期待する出力形式・制約・前提条件を指示側で明示的に規定することが精度を左右します。
フューショットプロンプティングとは
📍 In One Sentence
フューショットプロンプティングは、指示の前に少数の入力・出力デモンストレーションを置き、重みを更新せずに文脈内でパターンを推論させる手法です。
💬 In Plain Terms
フューショットは、4つ目を頼む前に完成した3つの見本を見せる方式です。モデルは目に見えるパターンをそのまま真似します。
フューショットプロンプティングは、指示に少数の入力・出力例を添え、具体的なデモンストレーションからタスクのパターンを推測させる手法です。 実務上は2〜10例を指します。
これらの例はプロンプト内の小さな訓練セットとして働き、曖昧なタスク、特殊な形式、専門用語の解釈を方向づけます。一般的な指示では表現しきれないスタイル・スキーマ・細かな振る舞いが必要なときに特に有効です。
学習は一切行われません。例は1回の呼び出しのあいだだけコンテキストウィンドウに存在し、その後は破棄されます。ファインチューニングではなくインコンテキスト学習と呼ばれるのはこのためです。
主な違い:ゼロショット vs フューショット
両者の違いは主に、準備の手間、特定タスクでの精度、多数のユースケースへの拡張しやすさにあります。 同じモデルを使いながら、例の設計コストとタスク適合度を交換しているわけです。
観点 | ゼロショット | フューショット |
|---|---|---|
| プロンプト内の例 | なし | 代表例を2〜10個以上 |
| 立ち上げの速さ | 非常に速い。例の選定が不要 | 遅い。例の選定と維持が必要 |
| データ要件 | ラベル付き例は不要 | 最低限のラベル付き例が必要 |
| 狭いタスクでの精度 | 低め、または一般的な出力になりがち | 特定領域では高く安定しやすい |
| 出力形式の制御 | 形式をどれだけ正確に記述できるか次第 | 強い。例そのものが形式仕様になる |
| 1回あたりの入力トークン | 指示のみ | 指示+全ての例を毎回送信 |
| タスク横断の拡張性 | 高い。新規タスクの追加が容易 | 低い。タスクごとに例が必要になりうる |
ゼロショットを使う場面
速度が必要で、ラベル付き例がなく、タスクがある程度一般的な場合はゼロショットを選びます。 初回検証やベースラインとして有効です。
典型的なゼロショットの場面:
- 一般的な質疑応答、簡単な要約、基本的な感情分類。
- タスクの形がまだ定まっていない段階での高速な試行。
- 整備された例が手元にない新しい領域や言語。
- 入力トークンの増分が数百万回の呼び出しで効いてくる、大量処理かつコスト重視のパイプライン。
フューショットを使う場面
タスクが専門的・形式重視・高リスクで、かつ良質な例を用意できる場合はフューショットを選びます。 こうした条件では、指示だけの場合より信頼性が大きく向上します。
よくあるフューショットの場面:
- ラベルや表現の正確さが問われる領域特化の分類・抽出(法務、医療、金融)。
- 雑然としたテキストから構造化JSONを抽出するなど、厳密なスキーマを伴うタスク。
- 言語ごとに数例を置くことで慣用表現や文体を吸収できる、多言語・ローカライズ業務。
- 「こう書く」と示す方が説明より容易な、社内スタイルやトーンの再現。
- 指示だけでは形式から外れやすい、小型モデルやローカル実行モデル。
例:ゼロショット vs フューショットのプロンプト
両者の実務的な差は、同じタスクのプロンプトを並べると明確になります。 ここではサポートチケットを意図別に分類します。
悪いプロンプト – 構造なし
「このサポートチケットを見て、何についてか教えて。」
ゼロショットプロンプト
「次のサポートチケットを `billing_issue`、`login_problem`、`feature_request`、`bug_report`、`other` のいずれかに分類してください。チケット:「今日3回パスワードを再設定しようとしましたが、リンクは毎回期限切れと表示されます。」カテゴリ名だけを出力してください。」
フューショットプロンプト
「各サポートチケットを `billing_issue`、`login_problem`、`feature_request`、`bug_report`、`other` のいずれかに分類してください。カテゴリ名だけを出力してください。例1:チケット:「今月、同じサブスクリプションが二重に課金されました。」ラベル:`billing_issue` 例2:チケット:「『レポートをエクスポート』を押しても、ページを再読み込みしても何も起きません。」ラベル:`bug_report` 例3:チケット:「レポートをGoogle スプレッドシートへ直接エクスポートできるようにしてもらえますか。」ラベル:`feature_request` では次のチケットを分類してください:「今日3回パスワードを再設定しようとしましたが、リンクは毎回期限切れと表示されます。」」
フューショット版はパターンを明示するため、判断の難しいチケットやノイズの多いチケットで分類品質が上がるのが一般的です。
例の質がフューショットの性能を決める
厳選した3例が、ほぼ同じ内容の10例を上回ることは珍しくありません。モデルは量ではなく、示された多様性からタスクの境界を学ぶからです。 期待外れの結果の多くは、例の数ではなく選び方に原因があります。
- 1簡単な事例だけでなく、範囲全体を覆ってください。 曖昧なチケット、極端に短いもの、書き方が雑なものを含めます。本番で失敗するのはまさにそうした入力です。
- 2ラベルのバランスを取ってください。 5例中4例が `bug_report` なら、モデルは `bug_report` を過剰に予測します。各クラスをほぼ同数にします。
- 3順序を混ぜてください。 モデルは後半の例を重く扱うため、同じラベルをブロック末尾にまとめないようにします。
- 4全ての例で形式を完全に一致させてください。 空白、引用符、キーの順序が揺れると、形式は変えてよいとモデルが学習します。
- 5例は実際の本番入力から取ってください。 手書きのきれいな例は、実際には来ないきれいな入力を期待させてしまいます。
- 6実顧客データをプロンプトテンプレートに貼らないでください。 匿名化するか合成データを使います。フューショットブロックはコードと同様に保存・バージョン管理・共有されます。
フューショットは毎回トークンを消費する
フューショットの例は初期設定コストではなく、リクエストのたびに入力トークンとして再送されます。 約120トークンの例を5つ添えると1回あたり約600入力トークンが増えます。検証段階では無視できても、月間100万回では無視できません。
だからこそ、まずゼロショットのベースラインを測る意味があります。ゼロショットで精度基準を満たしているなら、フューショットは何も生まないまま課金され続けます。
🔍 例ブロックはキャッシュする
呼び出し間で変化しないフューショットブロックは、プロンプトキャッシュの理想的な対象です。Anthropic、OpenAI、Googleはいずれもキャッシュ済み入力を大幅に割り引いており、Claudeのプロンプトキャッシュでは最大90%に達します。大量処理パイプラインにおけるコスト面の反論はこれでほぼ解消します。
推論モデルがゼロショットとの差を縮めた
強力な指示チューニングにより、かつてフューショットが稼いでいた精度差の多くはフロンティアモデルで解消しました。 Claude Opus 5、GPT-5.6、Gemini 3.1 Proでは、丁寧に書かれたゼロショット指示が多くの一般タスクでフューショットに並びます。ただしこの収束はモデル全体に当てはまるわけではありません。
フューショットが今もトークン分の価値を出すのは形式と語彙です。独自のラベル体系、社内スキーマ、社内トーン、事前学習で見たことのない例外ケースが該当します。さらに小型モデルやローカル運用のモデルでは、ファインチューニングを除けば依然として最も効果的な精度改善手段です。
モデル区分 | ゼロショットの品質 | フューショットは今も有効か |
|---|---|---|
| フロンティア推論(Claude Opus 5、GPT-5.6、Gemini 3.1 Pro) | 一般タスクで高い | 主に出力形式・社内トーン・独自ラベル体系で有効 |
| フロンティア非推論(Claude Sonnet 5、Gemini 3.8 Flash) | 良好 | 有効。狭い領域と厳密なスキーマで効く |
| 小型ホスト型(Claude Haiku 4.5、Gemini 3.5 Flash-Lite) | 専門タスクでは不安定 | 有効。単独では最大の精度改善になることが多い |
| ローカルのオープンウェイト7〜30B(Qwen3 8B、Llama 4 Scout、Gemma 4) | ばらつきが大きく形式崩れが起きやすい | 有効。実用に耐えるかどうかを分けることが多い |
よくある失敗
フューショットの失敗の多くは、モデルの問題ではなく進め方の問題です。 例を足したのに出力が悪化した事例の大半は、次の5つで説明できます。
❌ ゼロショットのベースラインを測る前に例を追加する
Why it hurts: 例が効いたかどうか分からないまま、入力トークンを払い続けることになります。
Fix: まず50件のテストをゼロショットで実行し精度を記録します。その後で例を追加し、再度測定します。
❌ 全ての例が同じラベルになっている
Why it hurts: モデルはその偏りを事前確率として読み取り、実入力でそのクラスを過剰に予測します。
Fix: 例全体でクラスのバランスを取り、同じラベルが隣接しないよう並べ替えます。
❌ 例が指示文と矛盾している
Why it hurts: 指示とデモンストレーションが食い違うと、モデルは黙ってデモンストレーションに従います。
Fix: 修正のたびに指示文と全ての例を突き合わせて読み直します。例を仕様として扱ってください。
❌ 例が実入力よりはるかに長い、あるいはきれいすぎる
Why it hurts: モデルは整った入力を期待するようになり、実際に届く雑然としたテキストで性能が落ちます。
Fix: 本番トラフィックから例を抽出します。読みにくいものも含めてください。
❌ 実顧客データを例ブロックに残す
Why it hurts: プロンプトテンプレートはバージョン管理・共有・ログ記録されるため、個人データはそのままコンプライアンス上の露出になります。
Fix: 保存テンプレートに入る前に、全ての例を匿名化するか合成データに置き換えます。
PromptQuorumによる使い分けの検証
PromptQuorumは、ゼロショットとフューショットのプロンプトを複数プロバイダーで一括検証できるマルチモデルAIディスパッチツールです。 指示のみのプロンプトと例つきのプロンプトを、GPT-5.6、Claude Opus 5、Gemini 3.1 Proなどへ同時に送って並べて比較できます。
PromptQuorumでできること:
- Single Step、RTF、CO-STARなどのフレームワークを使い、ゼロショットプロンプトで手早くベースラインを取る。
- より厳密な制御が必要なとき、SPECSやGoogleのプロンプティングガイドに代表例を埋め込んでフューショットへ移行する。
- 両方をテンプレートとして保存し、モデル横断で精度・レイテンシ・トークンコストを継続的に比較する。
ゼロショットとフューショットの選び方
- 1定型的で単純なタスクは、まずゼロショット(例なし)で始めます。 例:「このレビューを肯定的か否定的か分類してください。」精度が足りていれば、ゼロショットの方が速く安価です。
- 2ゼロショットの性能が低い場合(精度・品質が80%未満)は、2〜5個の例を追加します。 正しいラベルを付けた肯定レビュー2〜3件と否定レビュー2〜3件を見せます。フューショットは実例で教える手法です。
- 3微妙な区別や稀なパターンを含むタスクでは、5〜10個の例を使います。 皮肉、有害なバイアス、領域特有のニュアンスの検出が必要なら、例を増やす価値があります。
- 4想定される入力の幅を覆う例を選びます。 商品レビューの分類なら、熱狂的・中立的・否定的なレビューを含めます。簡単な事例だけを見せてはいけません。
- 5本番投入の前にテストセットで効果を測ります。 同じプロンプトを例0個と例5個で50件に実行します。10ポイント以上改善するなら例を採用し、改善が5%未満ならゼロショットのままにします。
- 6フューショットを本番投入したら、例ブロックをキャッシュし四半期ごとに見直します。 古い例は、すでに使っていないカテゴリや形式を静かに固定化します。
よくある質問
「フューショット」とは何個の例を指しますか。
2個からおおむね10個までです。1個の場合はワンショットと呼びます。効果は8個前後で頭打ちになりやすく、それ以上は入力トークンを払って収穫が減っていくだけになりがちです。目標精度に到達するのに数十例が必要なら、通常はファインチューニングの方が適した手段です。
フューショットプロンプティングはファインチューニングと同じですか。
違います。フューショットはインコンテキスト学習で、例は1回の呼び出しのあいだプロンプトに存在するだけで、モデル自体は何も変わりません。ファインチューニングは重みを更新し、以降の全ての呼び出しに効果が残ります。フューショットはリクエストごとの入力トークン費用、ファインチューニングは学習実行と専用モデルのホスティング費用がかかります。
推論モデルでもフューショットは有効ですか。
素の精度に対する効果は以前より小さく、形式に対する効果は想像以上に大きいというのが実情です。Claude Opus 5、GPT-5.6、Gemini 3.1 Proでは、精密なゼロショット指示が一般タスクでフューショットに並ぶことがよくあります。ただし正確なJSONスキーマ、独自のラベル語彙、特定の社内トーンが必要なら、例を示すのが今も最も確実な方法です。
例を足したら出力が悪くなったのはなぜですか。
たいていはラベルの偏り、指示との矛盾、形式の揺れです。多くの例が同じラベルなら、モデルはそのラベルを過剰に予測します。例が指示文と矛盾していれば、モデルは例の方に従いがちです。また例が実入力よりきれいだと、実際に届く雑然としたテキストで性能が落ちます。
フューショットの例の順序は影響しますか。
影響します。モデルは後半の例をより重く扱うため、同じラベルが3つ続いて終わるブロックは予測をそのラベルへ偏らせます。クラスを交互に並べ、並べ替えたら必ず再テストしてください。順序の効果は精度を数ポイント動かすことがあります。
大規模運用でフューショットのコストを抑えるには。
プロンプトキャッシュを使います。静的な例ブロックは毎回同一なのでキャッシュ対象として理想的で、Anthropic、OpenAI、Googleはいずれもキャッシュ済み入力を大幅に割り引きます(Claudeのプロンプトキャッシュでは最大約90%)。キャッシュされる接頭辞が安定するよう、例はプロンプトの先頭に置いてください。
フューショットとChain-of-Thoughtプロンプティングは併用できますか。
できますし、最も強力な組み合わせの一つです。フューショットChain-of-Thoughtでは、例が最終回答だけでなく推論のステップまで示します。単独の手法より出力トークンは増えますが、多段階タスクではゼロショットの「ステップごとに考えて」より信頼性が高いのが一般的です。
出典・参考文献
- Brown, T., Mann, B., Ryder, N., et al. (2020). "Language Models are Few-Shot Learners." NeurIPS 2020. arXiv:2005.14165 — フューショット・ワンショット・ゼロショットをプロンプティングの枠組みとして提示した論文。
- Zhao, Z., Wallace, E., Feng, S., Klein, D., & Singh, S. (2021). "Calibrate Before Use: Improving Few-Shot Performance of Language Models." ICML 2021. arXiv:2102.09690 — 例の順序における多数ラベルバイアスと直近バイアスについて。
- Lu, Y., Bartolo, M., Moore, A., Riedel, S., & Stenetorp, P. (2022). "Fantastically Ordered Prompts and Where to Find Them." ACL 2022. arXiv:2104.08786 — フューショット精度が例の順序に強く左右されることを示した研究。
- Min, S., Lyu, X., Holtzman, A., et al. (2022). "Rethinking the Role of Demonstrations." EMNLP 2022. arXiv:2202.12837 — 例のラベルの正しさより、形式と入力分布の方が効くという証拠。
- Anthropic「Prompt caching」Claudeプラットフォーム公式ドキュメント — フューショットブロックのような静的接頭辞に対するキャッシュ済み入力の料金。
