
Few-shot
「正答例示が多いほど良い」という通念を覆す衝撃的な研究結果とともに見るFew-shotプロンプティングの本当の秘密
Introduction
Few-shotプロンプティングは大型言語モデル(LLM)にいくつかの例示を提供して新しいタスクを実行させる技法です。別途のモデル訓練なしでも多様なタスクを実行できるため、現在最も広く使用されているプロンプティング方法論の一つです。
Method
Few-shotプロンプティングを使用しないプロンプト:
済州島旅行計画を立ててください。
Few-shotプロンプティングを使用したプロンプト:
次の例示を参考にして済州島旅行計画を立ててください。
例示1:
都市: 釜山
日程: 2泊3日
計画: 1日目 - 海雲台海水浴場、広安里ビーチ / 2日目 - 甘川文化村、太宗台 / 3日目 - チャガルチ市場、KTX乗車
例示2:
都市: 全州
日程: 1泊2日
計画: 1日目 - 韓屋村、全州ビビンバ / 2日目 - 梧木台、慶基殿
今度は済州島3泊4日の旅行計画を上記と同じ形式で作ってください。
Details
ほとんどの人がfew-shotプロンプティングを使用しようとする時に最も重要だと考えるポイントは、正確な例示、最大限多くのデータ、この2つです。しかし、これは事実とは異なる部分です。
💡 核心インサイト
既存の信念: 「正確な例示をたくさん与えれば性能が良くなる」
研究結果: 「形式とドメインが明確であれば個別例示の正確性はそれほど重要でない」
Few-shotプロンプティングの核心は完璧な例示ではなく明確な構造です。 AIに新しい知識を教えるというよりも、すでにAI内部にある数多くの知識の中から**「今こんな問題を解く方式が必要だ!」とヒントを与えたり、適切な能力を『取り出して使用させる』役割**をします。 LLMに知らない事実を教えるというよりは、眠っていた部分を活性化させてあげるということを意識する方が良いでしょう。
🔍 衝撃的な研究結果: 「正答が間違っても関係ない?」
研究(Min et al.)で驚くべき事実が明らかになりました。GPT-3を含む12個のモデルでデモ例示の正答ラベルを完全にランダムに変えても性能がほとんど落ちませんでした。
実験結果:
分類タスク: 平均2.6%の性能減少
多重選択タスク: 平均1.7%の性能減少
これは私たちが考えているのとは全く異なるメカニズムが作動していることを意味します。
📊 例示個数の最適点
研究結果によると:
k=4~8個で性能が飽和します
より多くの例示が常に良いわけではありません
16個を超えると効果が微々たるものになったり、むしろ減少することがあります
🧠 モデルが実際に学習する4つの要素
研究結果、モデルはデモから以下を学習します:
1. ラベル空間(Label Space)
Label Spaceは AIモデルがどの選択肢の中から回答すべきかを教える回答カテゴリの全体集合です。
例示:
🏥 医療ドメイン:
患者: "胸が苦しくて息が苦しいです" → 心血管系
患者: "頭がズキズキ痛みます" → 神経系
患者: "消化がうまくいかず胃が痛いです" → 消化器系
💼 金融ドメイン:
ニュース: "中央銀行が基準金利を引き上げた" → 金利政策
ニュース: "サムスン電子の株価が5%上昇した" → 株式市場
ニュース: "ドル為替レートが急騰している" → 外国為替市場
2. 入力テキスト分布(Input Distribution)
タスクドメインのテキスト特性を理解します。
ドメイン別テキスト特性:
ソーシャルメディア: 短くて非格式的、絵文字使用
ニュース: 客観的で情報伝達的
レビュー: 主観的意見と評価を含む
技術文書: 専門用語と正確な説明
3. 全体形式(Format)
inputデータの形式、そしてどのようにoutputを与えるべきかについての形式を学習します。
❌ 一貫性のない形式:
"良い映画" (肯定)
Q: "いまいちだった" A: 否定
中立 → "まあまあです"
✅ 一貫した形式:
映画: "良い映画" → 肯定
映画: "いまいちだった" → 否定
映画: "まあまあです" → 中立
4. 入力-ラベルマッピング(Input-Label Mapping)
例示が本当に正答に近いかどうか、驚くべきことにこれが4つの要素の中で最も重要度が低いです!
いつ使用すべきか?
1. ラベル空間が複雑または特殊な場合
なぜ効果的か: モデルが最初に把握するのが「ラベル空間」だから
具体的状況:
❌ Zero-shotで困難な場合:
"このテキストを分類してください"
→ モデルがどのカテゴリに分類すべきか分からない
✅ Few-shotが必須の場合:
文書: "契約書レビュー完了" → 法務チーム
文書: "売上報告書作成" → 財務チーム
文書: "採用公告掲載" → 人事チーム
文書: "製品企画書修正" → ?
実務例示:
社内文書分類システム
顧客問い合わせルーティング(20+部署)
医療症状カテゴリ分類
法律文書類型分類
2. ドメイン特化テキスト分布がある場合
論文の核心: モデルが「入力テキスト分布」を把握してこそ正確度が高まる
効果的なドメイン:
🏥 医療ドメイン:
患者: "胸が苦しくて息が苦しいです" → 心血管系
患者: "頭がズキズキ痛みます" → 神経系
患者: "消化がうまくいかず胃が痛いです" → 消化器系
💼 金融ドメイン:
ニュース: "中央銀行が基準金利を引き上げた" → 金利政策
ニュース: "サムスン電子の株価が5%上昇した" → 株式市場
ニュース: "ドル為替レートが急騰している" → 外国為替市場
3. 複雑な出力形式が必要な場合
論文の発見: 「形式」が非常に重要な要素であることが明らかに
卓越した効果を示す状況:
📊 構造化データ抽出:
入力: "キム・チョルス代理(30歳)が2024年3月15日入社した"
出力: {
"名前": "キム・チョルス",
"職級": "代理",
"年齢": 30,
"入社日": "2024-03-15"
}
📝 特定テンプレート作成:
入力: "プロジェクト完了報告"
出力:
## プロジェクト名:
## 完了日:
## 担当者:
## 主要成果:
## 改善事項:
4. 費用効率性が重要な状況
論文の衝撃的発見: 正確なラベルがなくても性能がほとんど落ちない
実務適用:
💰 既存方式(費用高):
- 正確なラベリングデータ100個収集: $500
- 専門家検収: $200
- 総費用: $700
💡 論文ベース新しい方式(費用低):
- 形式例示5個のみ作成: $50
- ドメインテキスト収集: $30
- 総費用: $80
- 性能差: 2-3%内外
Best Practices
🏆 1. 形式一貫性を最優先にせよ
核心原則: すべての例示で同一の構造と形式を維持してください。
✅ 完璧な形式一貫性:
入力: "サービスが満足でした" | 感情: 肯定
入力: "待ち時間が長すぎました" | 感情: 否定
入力: "普通のレベルでした" | 感情: 中立
❌ 形式不一致:
"サービスが満足でした" → 肯定
Q: 待ち時間が長すぎました? A: 否定
普通(中立)
🎯 2. ラベル空間を完全にカバーせよ
すべての可能なラベルを例示に含めてください。欠落したラベルがあるとモデルが混乱する可能性があります。
✅ 完全なラベルカバレッジ:
- 肯定、否定、中立すべて含む
- 各ラベルに最低1個以上の例示
❌ 不完全なカバレッジ:
- 肯定、否定のみで中立なし
- 特定ラベルに偏った例示
3. 例示順序考慮
研究によると例示順序も性能に影響を与えます:
ラベル別に均等に配置
極端なケースは後方に配置
最も明確な例示を最初に提示
🔧 5. テンプレート設計ガイドライン
4. 最初は簡単にスタート!
💡 ティップ: まずミニマルで始めて性能を測定した後、必要時のみ精巧化してください。