few-shot は、少数の例(見本)をプロンプトに入れてから AI に本題を答えてもらうやり方です。
初心者向けには、口で説明するより、見本を2〜3個見せた方が早い ときに使う手、と考えると分かりやすいです。
言葉の出どころは、2020年の GPT-3 論文 Language Models are Few-Shot Learners です。
モデルを再学習させずに、プロンプトに入れた例だけで振る舞いを合わせる、という設定名として広まりました。
どんな場面で使うか
- 出力の形式をそろえたい(ラベル、JSON、箇条書きの粒度)
- 分類や言い換えの基準を、言葉で説明しにくい形で伝えたい
- 社内独自の書式や表記ルールに合わせたい
例の作り方のコツ
例は多ければよいわけではありません。
実務では 良い例を少数 の方が扱いやすく、悪い例を混ぜると出力が一気にぶれます。
- 例の中の表記ゆれをなくす(
OK/NGと可/不可を混ぜない) - 判断に迷うケースを1つだけ入れて、境界を示す
- 例と指示文が矛盾しないようにする(矛盾すると例の方に引っ張られる)
推論モデルでは前提が変わる
思考を内部で行う推論モデル(reasoning model)では、few-shot が常に有利とは限りません。
OpenAI の公式ガイドは、推論モデルについて 例がなくても良い結果を出せることが多いので、まずは例なしのプロンプトを書いてみる とし、複雑な出力要件がある場合に限って例を足し、その例は指示と食い違わないようにする、と説明しています(Reasoning best practices)。
つまり とりあえず few-shot ではなく、zero-shot で試してから必要な分だけ足すのが今の順序です。
近い用語との違い
- zero-shot … 例を見せない。few-shot は例を見せる
- ファインチューニング … モデル側を学習で変える。few-shot は毎回のプロンプトで渡すだけなので、すぐ直せる代わりに毎回トークンを消費する
例を厚くすると入力トークンが増え、料金と待ち時間に効いてきます。 同じ例を毎回送るなら、プロンプトキャッシュとは?AI APIのコストとレイテンシを下げる仕組み で扱っているキャッシュの対象になるかを確認すると無駄が減ります。
あわせて見たい用語
書き方の全体像は プロンプトエンジニアリングとは?実務で使える書き方を解説 で整理しています。