解説

さらに詳しく解説
Few-shot学習(Few-shot Learning)は、わずかな数の例だけで新しいタスクを学習・実行できるAIの能力を指します。LLMでは、プロンプトに数個の例を含めるだけで未知のタスクをこなせる「Few-shotプロンプティング」として広く使われています。
Zero-shot/One-shot/Few-shotの違い
| 種類 | 例の数 | プロンプト例 |
|---|---|---|
| Zero-shot | 0個 | 「次の文を分類してください: ...」 |
| One-shot | 1個 | 例1 + 本題 |
| Few-shot | 数個 | 例1〜5 + 本題 |
| ファインチューニング | 数百〜数千 | モデルを再学習 |
Few-shotプロンプティングの例
Q: りんごは果物ですか?
A: はい、果物です。
Q: 椅子は果物ですか?
A: いいえ、家具です。
Q: バナナは果物ですか?
A: 2つの例を見せることで、AIが「Q&A形式で正しく答える」パターンを理解しやすくなります。
なぜ効果があるか
- LLMは事前学習で膨大なパターンを獲得済み
- 例があると「どの形式で答えるか」が明確に
- タスクの暗黙のルールを推測できる
- 出力フォーマットの制御に有効
Few-shotが特に有効な場面
| 場面 | 理由 |
|---|---|
| 出力形式の指定 | JSONや表など固定フォーマット |
| ニッチなタスク | 学習データに少ない領域 |
| スタイル調整 | 文体・トーンの統一 |
| 専門領域 | 業界特有の表現 |
| 分類タスク | カテゴリの境界を例示 |
効果的な例の選び方
- 多様性:パターンの幅をカバー
- 代表性:典型例を選ぶ
- 一貫性:例同士のスタイルを揃える
- 品質:例自体が正確である
- 数のバランス:3〜5個が一般的に効率的
Few-shot vs ファインチューニング
| 観点 | Few-shot | ファインチューニング |
|---|---|---|
| 必要な例 | 数個 | 数百〜数千 |
| 学習コスト | 不要(推論時のみ) | 大きい |
| 即座の修正 | プロンプト変更で可能 | 再学習が必要 |
| トークン消費 | 例が毎回付く | プロンプト短縮可能 |
| 安定性 | やや揺らぐ | 安定 |
| 高精度タスク | 限界あり | より高精度可能 |
業務での活用パターン
1. 構造化抽出
例:
入力: 「明日10時に会議をお願いします」
出力: {action: "会議予約", time: "10:00", date: "明日"}
本題: 「来週水曜の14時に資料レビューを」2. 分類タスク
業界特有のカテゴリ分類に有効。
3. スタイル変換
社内文書のトーンに合わせた文章生成。
4. 専門用語処理
医療・法律・業界専門用語の扱い。
留意点
- トークン消費:例が長いと毎回コストがかかる
- 精度の限界:複雑タスクではファインチューニングが必要
- 例の選び方で精度が変動:実験的に決定
- モデル依存:モデルごとに反応が異なる
- 長くなりすぎる:例の数を増やしすぎると逆効果
関連手法
- **In-Context Learning**:プロンプト内での学習能力(Few-shotの基盤)
- **Chain-of-Thought**:推論過程を例示
- ReAct:推論と行動を例示
- 動的Few-shot:質問に応じて関連例を検索(RAG的手法)
動的Few-shotの実装
質問に応じて関連する例をベクトル検索で取り出し、毎回最適な例を提示する手法。固定例より精度が向上することが多い。
ユーザー質問
↓
例データベースから関連例を検索
↓
選んだ例+質問でプロンプト構築
↓
LLMへ実務での進め方
- Zero-shotで試す:まずは例なしで
- 不足があればFew-shot:3〜5例で改善
- それでも不足ならファインチューニング:投資判断
- 動的Few-shot:精度が必要かつ多様な入力なら
- 継続改善:失敗事例を例として追加
ハイブリッド戦略
大規模アプリでは、Few-shot+RAG+ファインチューニングを組み合わせるのが一般的です。
Few-shot学習は「少しの例でAIに新タスクを教える」基本テクニックであり、生成AI時代のあらゆる業務適用において、最初に試すべき強力で経済的な方法です。
