ゼロショット学習とは?Few-shotとの違いとプロンプト設計の実例
2026年05月15日
ゼロショット学習とは、AIモデルに対して具体的な例を一切示さずに、タスクの説明だけで未知のカテゴリや問題を解かせる機能のことです。「この文章のポジティブ・ネガティブを判定してください」というプロンプトだけで、感情分析の例を学習させたことがないのに正確に分類できる—これがゼロショットの本質です。大規模言語モデル(LLM)の普及とともに、ゼロショット学習はAIを活用するすべての人にとって必須の概念となっています。
ゼロショット・ワンショット・フューショットの違いをきちんと理解していないと、精度が不安定なプロンプトを量産することになりかねません。「なぜかうまくいかない」と感じているプロンプトの多くは、ショット数の選択が最適でないことが原因です。例示を加えるだけで精度が劇的に改善するケースも、逆に例示を省いてシンプルにしたほうがよいケースもあります。
本記事では、ゼロショット学習の定義と仕組みから、ショット数の使い分け、得意・苦手タスク、プロンプト設計の実例、精度向上のコツ、実務での判断フローまで、体系的に解説します。プロンプトエンジニアリングの精度を高めたい方に向けた実践的な内容です。
こんな方にオススメ
- 学習データなしでAIに新しいタスクを処理させるゼロショット学習の仕組みを知りたい方
- プロンプトだけで汎化性能を引き出す技法をビジネス活用に役立てたい担当者の方
- Few-Shot・Fine-Tuningとゼロショットの適材適所を整理したい方
この記事を読むと···
- ゼロショット学習の定義・仕組み・Few-Shot学習との違いを体系的に理解できます
- ゼロショット・プロンプト設計の技法と業務タスク別の適用パターンがわかります
- Zero-Shot・Few-Shot・Fine-Tuningの使い分け判断フレームワークを習得できます
目次
ゼロショット学習の定義と仕組み
ゼロショット学習の原理
ゼロショット学習(Zero-shot Learning)は、機械学習の分野では「学習時に見ていないクラスを推論時に分類できる能力」として定義されます。LLMにおいては「例示なしでタスクを説明するだけで、モデルが意図を理解して正しく応答する能力」を指します。
この能力が実現できるのは、LLMが事前学習で膨大なテキストを処理した結果、タスクの説明文とそのタスクが求めるアウトプットのパターンを暗黙的に学習しているためです。「分類してください」「要約してください」「翻訳してください」という表現に対して、モデルは「分類とはどういう作業か」「どのような出力が求められるか」を事前学習から理解しています。
この汎化能力がゼロショットの基盤です。GPT-3の登場以降、大規模モデルのゼロショット性能は急速に向上し、現在のGPT-4やClaude 3.5クラスでは多くの実用タスクでゼロショットでも高品質な出力が得られます。
ゼロショットが機能する理由
ゼロショット学習が機能する背景には「Instruction Following(指示従い)」能力があります。ChatGPTをはじめとする現代のLLMは、事前学習後に「RLHF(人間のフィードバックからの強化学習)」や「Instruction Tuning」で追加学習されており、人間の指示に従って行動する能力が強化されています。
その結果、「次の文章を肯定的・否定的・中立に分類し、理由も添えてください」という指示を受け取ると、例示がなくてもその要求を理解して実行できます。また「コンテキスト内学習(In-context Learning)」の研究で、大規模モデルはプロンプト内の情報から動的にタスクを学習する能力を持つことが明らかになっています。
ゼロショットはその最もシンプルな形で、タスク説明だけがコンテキストとして機能します。
Creative Drive
"書くだけ"のAIから、グロースハックするAIへ。
文章を生成するだけのAIと、潜在顧客を商談化まで引き上げるAIは別物です。Creative Driveは14ヶ月の行動データを学習し、グロースハックを実現するコンテンツを生成します。
あなたに関連しそうなCreative Driveの機能・サポート一覧
機能・サポート一覧を見る →ゼロショット・ワンショット・フューショットの比較
ショット数の定義と基本的な違い
「ショット(Shot)」とはプロンプト内に含める例示(デモンストレーション)の数を指します。ゼロショット(Zero-shot)は例示なし、ワンショット(One-shot)は例示1件、フューショット(Few-shot)は例示2〜10件程度、マニショット(Many-shot)は10件以上です。
ショット数が増えるほどモデルが参照できるパターンが増えるため、原則として精度は向上します。しかしトークン(文字数)の消費も増えるため、コンテキストウィンドウの制限・APIコスト・レスポンス時間とのトレードオフがあります。
また例示の質が悪ければ、例示を増やすほどモデルが悪いパターンを学習して精度が下がるという逆効果も起こります。「多けれ大ほど良い」ではなく、タスクの複雑さと要求精度に応じた適切なショット数の選択が重要です。
使い分けの判断基準
ゼロショットを選ぶ場面は「タスクが明確で汎用的(分類・要約・翻訳など)」「プロンプトを短くしたい・コストを最小化したい」「まず動作確認として試す」ケースです。ワンショットは「出力の形式・フォーマットを具体的に指定したい」「モデルが指示の意図を誤解しやすいタスク」に有効で、例示1件がフォーマットの型示しとして機能します。
フューショットは「出力にバリエーションが必要」「境界線が曖昧な判断タスク(感情の強さ・重要度など)」「専門的な文体・語彙に適応させたい」場合に使います。例示は入力と出力のペアで構成し、実際に使用するケースに近いものを選ぶことが精度向上の鍵です。
タスクが特殊・複雑でフューショットでも不十分な場合、ファインチューニングへの移行を検討します。
| 観点 | Zero-shot | One-shot | Few-shot(3〜10) |
|---|---|---|---|
| 例示数 | 0件 | 1件 | 3〜10件 |
| プロンプト長 | 短い | 中程度 | 長い |
| APIコスト | 最小 | 低 | 中 |
| 精度 | タスク依存(低〜中) | 中 | 中〜高 |
| 向く用途 | 汎用タスク・探索 | 形式の型示し | 高精度・複雑タスク |
| 向かない用途 | 複雑・専門タスク | 多様なパターン | コンテキスト制限が厳しい時 |
ゼロショットが得意なタスクと苦手なタスク
ゼロショットが得意なタスク一覧
現代のLLMがゼロショットで高い精度を発揮するタスクは、主に「テキストの変換・分類・構造化」の領域です。感情分析(ポジティブ・ネガティブ・中立の判定)は最も安定したゼロショットタスクのひとつで、単純な二値分類なら精度90%超を達成することも珍しくありません。
文章の要約・言語間翻訳・文体変換(丁寧語←→カジュアル)・箇条書き化・HTMLからプレーンテキストへの変換など、明確なルールがあり出力フォーマットが単純なタスクに向いています。キーワード抽出・エンティティ認識(人名・地名・組織名の抽出)・テキスト分類(トピック・カテゴリー)も得意領域です。
また「この文章に文法的な誤りがあれば指摘してください」のような校正・改善提案系タスクも、ゼロショットで実用レベルの精度が得られます。
ゼロショットが苦手なタスクと対策
一方、ゼロショットが苦手とするタスクは「複雑な多段階推論」「厳密な数値計算」「専門的な事実の正確な記述」「固有の判断基準を要する評価」です。例えば「この財務諸表から特定の会計基準に基づいて不正を検出してください」のような高度な専門判断は、ゼロショットでは精度が不安定になりやすいです。
また「以下の問題を解いてください:Aがx、BがyならCは?」のような多段階の数学的推論も、ゼロショットでは計算ミスが発生しやすく、Chain-of-Thought(CoT)プロンプティングを組み合わせることで精度を改善できます。
自社特有の分類基準(例:社内の重要度ランキング基準)への適応もゼロショットでは困難で、基準を例示として提示するフューショットか、ファインチューニングが必要です。
プロンプト設計の実例(分類/要約/翻訳)
分類タスクのゼロショットプロンプト設計
分類タスクのゼロショットプロンプト設計では「タスクの明確な定義」「分類クラスの明示」「出力フォーマットの指定」の3要素が基本です。悪い例:「次のレビューを分析してください:〇〇」。
良い例:「次の商品レビューを以下の3クラスに分類してください。クラス:[ポジティブ、ネガティブ、中立]。
出力形式:クラス名のみ(1語)で返答してください。レビュー:〇〇」。
出力形式を指定することで後処理が容易になります。さらに精度を上げる場合は「曖昧な場合は最も可能性の高いクラスを選ぶ」「確信度も0〜100%で示す」といった指示を追加するか、例示を1〜3件加えたフューショット設計に切り替えます。
JSON出力を求める場合は「{“class”: “ポジティブ”, “confidence”: 95}」の形式を指定することで構造化された出力が得られます。
要約・翻訳タスクのゼロショットプロンプト設計
要約タスクのゼロショットプロンプトでは「長さの指定」「対象読者の設定」「含めるべき要素の指定」が精度に影響します。悪い例:「要約してください」。
良い例:「以下の文章を、営業担当者向けに3文以内で要約してください。重要な数値・固有名詞は省略せず含めること。
文章:〇〇」。翻訳タスクでは「翻訳先言語」「フォーマルさのレベル(ビジネス文書・カジュアル・マニュアル等)」「固有名詞の扱い(そのまま・音写・翻訳)」を指定すると品質が安定します。
「英語でのビジネスメール→日本語の丁寧語」のような具体的な用途指定は、単純な「日本語に翻訳」より適切な出力を引き出します。コード・HTMLタグ・専門用語を翻訳対象に含む場合は「コードブロックとHTMLタグは翻訳せずそのまま維持すること」の指示を追加することが重要です。
ゼロショット精度を上げるコツ
プロンプト構造の最適化
ゼロショットの精度を高めるための最も効果的なコツのひとつが「役割付与(Role Prompting)」です。「あなたはB2Bマーケティングの専門家です。
以下の文章を分析してください」のようにペルソナを設定することで、モデルが専門的な文脈で応答するよう誘導できます。次に有効なのが「思考ステップの指示」で、直接答えを求めるのではなく「まず入力を分析し、次に基準と照合し、最後に判定を出してください」と手順を明示することで、複雑なタスクの精度が上がります。
これはChain-of-Thought(CoT)の考え方をゼロショットに応用したものです。また「絶対に〇〇しないでください(例:存在しない情報を作らないでください)」のような制約条件を明示することで、幻覚や不要な付け足しを抑制できます。
出力フォーマット指定と温度設定の活用
ゼロショットの安定性を高める実践的なテクニックとして「JSON出力の強制」があります。多くのAPIでJSON Modeや構造化出力機能(Function Calling)が利用でき、モデルに特定のJSONスキーマで応答させることでパース成功率を大幅に上げられます。
「temperature(温度)」パラメータも精度に影響し、分類・抽出のような正確性が求められるタスクでは0〜0.2の低い値を設定し、創造的な生成タスクでは0.7〜1.0の高い値を設定します。また長いシステムプロンプト(ベースモデルへの基本指示)に共通の制約・フォーマット・役割を記述しておき、ユーザープロンプトには処理するデータだけを渡す「システムプロンプトの活用」も安定性向上に有効です。
プロンプトのバージョン管理を行い、変更ごとに精度変化を記録することが継続的な改善につながります。
実務での使い分け判断フロー
ショット数選択の判断フロー
実務でのショット数選択には体系的な判断フローがあります。Step1は「まずゼロショットで試す」ことです。
プロンプトを最もシンプルな形で試し、出力品質が要件を満たすか確認します。多くの汎用タスクはここで十分な精度が得られます。
Step2は「出力フォーマットが安定しない場合はワンショットを追加」することです。例示1件を加えるだけで、出力の形式・長さ・スタイルが安定することがよくあります。
Step3は「判断境界や複数パターンへの対応が必要なら例示を2〜5件に増やす」ことです。この時点でも不十分な場合は、Step4として「Chain-of-Thoughtの追加」か「ファインチューニング」の検討に移ります。
このフローを踏むことで、必要以上に複雑なプロンプトを作りコストを無駄にするリスクを避けられます。
タスク別の推奨ショット設定
実務でよく登場するタスク別の推奨ショット数を整理します。「感情分析(2〜3クラス)」はゼロショットで十分、精度を上げたい場合はワンショット。
「カテゴリ分類(5クラス以上)」はフューショット(各クラス1件ずつ)が推奨。「固有表現抽出(人名・組織名など)」はゼロショット〜ワンショット。
「文体変換(ビジネス文体への変換)」は変換前後の例を示すワンショット〜フューショット。「複雑な評価・採点(主観性が高い)」はフューショット(採点基準例を複数含む)が効果的。
「コード生成」はゼロショットでも動作するが、出力形式(言語・コメント有無・テスト含む)を明示することが重要です。なお、同じタスクでも使用するモデルによって最適なショット数が異なるため、モデルを変更した際は再評価が必要です。
よくある質問
- Q1. ゼロショットとフューショットはどちらがコスト効率がよいですか?
- 単純なタスクではゼロショットのほうがトークン消費が少なくコスト効率が高くなります。ただし精度が重要なタスクでは、ゼロショットで発生するエラーのリカバリーコスト(再実行・人手修正)のほうがフューショットの追加トークンコストより高くなる場合があります。「精度向上のためにフューショットにした結果、エラー率が5%から1%に下がった」場合、大量バッチ処理では修正コストの削減がトークン増加コストを大幅に上回ることが多いです。実際にはゼロショットとフューショットの両方で試験的に評価を行い、精度×コストのトレードオフを数値で比較してから本番設計を決定することをお勧めします。
- Q2. フューショットの例示は何件が最適ですか?
- 多くのタスクでは3〜5件で十分な効果が得られ、10件を超えると追加効果が小さくなる傾向があります。ただし複雑なタスクや多クラス分類(10クラス以上)では各クラスに例示が必要なため、それに応じた件数が必要です。コンテキストウィンドウの制限も考慮する必要があり、1件あたりの例示が長い場合は件数を絞ることも重要です。研究上は「例示の質が量を上回る」という知見が多く、実際の使用ケースに近い高品質な例示3件が、ランダムな例示10件より効果的なことが一般的です。まず3件から始めて精度が不十分ならサンプルを追加・改善するアプローチが実践的です。
- Q3. ゼロショットプロンプトを作る際の「役割付与」は必ず必要ですか?
- 全てのタスクで必須というわけではありませんが、専門性が求められるタスクや出力の質を高めたい場面では効果的な手法です。「あなたはSEO専門家です」「あなたはベテランの編集者です」のような役割付与により、モデルがその役割に適した観点・語彙・判断基準で応答するよう誘導できます。単純な分類・変換タスクでは役割付与の効果は限定的で、プロンプトをシンプルに保つほうが良い場合もあります。一般的な目安として「タスクに特定の専門知識や視点が必要」「出力のトーン・スタイルを特定の役割に合わせたい」場合に役割付与を追加するのが効果的です。
- Q4. ゼロショットで「ありえない出力」が返ってきた場合の対策は?
- 期待外れの出力が返ってきた場合、まず「タスクの指示が曖昧でないか」を確認します。指示が曖昧だとモデルが別の解釈をすることがあります。次に「出力フォーマットを具体的に指定しているか」を確認します。例えば「はいかいいえで答えてください」のように選択肢を明示することで、モデルの解釈の幅を狭められます。それでも改善しない場合は「Chain-of-Thoughtを使って段階的に考えてから答えてください」という指示を加えるか、例示を1件追加してワンショットに切り替えます。また「以下の制約を必ず守ってください」として禁止事項・必須要件を明示的にリストアップすることも効果的です。
まとめ
ゼロショット学習は、現代のLLMが備える最も実用的な能力のひとつで、例示なしでも多くの汎用タスクを高精度で実行できます。一方、ワンショットは出力フォーマットの型示しとして、フューショットは複雑タスクや高精度が求められる場面で有効です。
実務での最適な使い分けは「まずゼロショットで試し、精度が不十分ならショットを追加する」という段階的アプローチが効率的です。プロンプト設計の質を高めるためには「タスクの明確な定義・出力フォーマットの指定・役割付与・制約条件の明示」の4要素を意識することが重要です。
またゼロショットが苦手な複雑推論タスクでは、Chain-of-Thought(CoT)との組み合わせが精度改善に効果的です。プロンプトエンジニアリングは試行錯誤の積み重ねが成果につながる領域ですので、各タスクで体系的な評価を行いながら最適なプロンプト設計を見つけていくことが、長期的なAI活用の精度向上に直結します。


