Few-Shot例を正しく使う
Few-shotプロンプティングとは、新しいタスクを依頼する前に、そのタスクを解いた例をいくつかモデルに示すことです。うまく使えば、形式・スタイル・エッジケースの挙動を固定する最速の方法であり — 望むものを言葉で説明するよりも優れていることがしばしばあります。
なぜ例は説明に勝るのか
「簡潔でフレンドリーに」は曖昧です。簡潔でフレンドリーな出力を2つ示すことは曖昧さがありません。モデルは例からパターンを読み取り、そのパターンを継続します。
きれいなfew-shotプロンプト
Classify each support message as: billing, bug, or feature.
Message: "I was charged twice this month."
Label: billing
Message: "The app crashes when I upload a photo."
Label: bug
Message: "Can you add dark mode?"
Label: feature
Message: "My subscription renewed at the wrong price."
Label:
モデルはパターンを把握しているので、最後の行を補完します。
例の選び方と形式の整え方
- バリエーションを網羅する、特に重視するエッジケースを。あるカテゴリがまれだったり扱いにくかったりするなら、それを含めましょう。
- 例の形式を一貫させる — 同じ構造、同じラベル、同じ区切り。不一致は不一致を教えます。
- 2〜5個で十分なことが多い。 難しい/多様なタスクではもっと多いほうが役立ちますが、トークンのコストがかかり、例の癖に過剰適合する恐れがあります。
- 順序が重要なこともある — 最も明快な例を最初に置き、分類では同じラベルをまとめて並べないようにしましょう。
- 区切り(またはXMLタグ)を使って、例とライブ入力を分けましょう。
Zero-shot対few-shot
まずzero-shot(ただ尋ねる)を試しましょう — 最新のモデルは強力です。特定の形式/スタイルが必要なとき、またはタスクが曖昧なときに例を追加します。zero-shotですでにうまくいくなら、例にコストを払う必要はありません。
:::tip 例はデータ — きれいに保つこと 誤ったりずさんだったりする例は、間違ったことを積極的に教えてしまいます。トレーニングデータのように丁寧に整えましょう。 :::