Few-Shot Prompting
アイデア: 検証済みの高品質な翻訳ペアをインコンテキスト例として含めることで、LLMが指示ではなくデモンストレーションから対象言語のパターン、スタイル、慣習を学習できるようにします。
:::info これはクックブックであり、完成した実装ではありません このガイドはアプローチとその主要な設計上の判断を概説しています。使用する言語ペアと利用可能なリソースに合わせて適宜調整してください。 :::
使用すべき場面
- 検証済みの翻訳の小規模なセットがある場合(5〜10組のゴールドペアでも有効です)
- ルールではなく例によって、LLMに特定のスタイルや文体を合わせさせたい場合
- 対象言語に説明するより示した方が分かりやすいパターンがある場合(語順、接辞パターン、丁寧さのマーカーなど)
仕組み
- 例示ペアのキュレーション — 主要なパターンを示す高品質なソース→ターゲット翻訳を選択します
- インコンテキスト例としてフォーマット — 実際の翻訳リクエストの前に、システムプロンプトまたはユーザープロンプトに含めます
- ハーネスの実行 — 例示によってゼロショットと比較してメトリクスが改善されるかどうかを測定します
- 例示の選択を繰り返す — 異なる失敗モードをカバーするために例示を入れ替えます
プロンプト構造の例
You are translating English to Plains Cree (SRO orthography).
Examples of correct translations:
- "Hello" → "tânisi"
- "Thank you" → "kinanâskomitin"
- "I am going home" → "nikîwân"
- "The children are playing" → "awâsisak mêtawêwak"
Now translate the following:
- "Welcome to the school"
重要なルール:評価データの汚染禁止
:::danger 評価データをFew-Shotの例として使用しないでください 例示が評価データセットから取得されている場合、そのメソッドはリーダーボードから失格となります。Few-Shotの例は、辞書、教科書、コミュニティで検証されたペア、または独立した開発セットなど、独立したソースから取得する必要があります。ハーネスは使用したプロンプトをフィンガープリントで識別するため、汚染は検出可能です。 :::
主要な設計上の判断
例示の数は? 3〜8個が最適です。少なすぎるとLLMへのシグナルが不足し、多すぎるとコンテキストウィンドウを消費して効果が逓減します。
どの例示を選ぶか? 難易度よりも多様性を優先してください。異なる文構造、語の長さ、文法的特徴をカバーしてください。例示を一つのパターンに集中させないようにしてください。
静的選択か動的選択か? 静的な例示の方がシンプルです。動的選択(現在の入力に類似した例示を選ぶ)は品質を向上させる可能性がありますが、複雑さが増します。検索ステップにはチェーンモデルの使用を検討してください。
メリットとデメリット
| ✅ スタイルマッチングに強力 | ❌ コンテキストウィンドウが小さいと例示数が制限される |
| ✅ トレーニング不要 | ❌ 例示の選択はサイエンスではなくアート |
| ✅ あらゆるLLMで動作 | ❌ 評価データ汚染のリスク(失格) |
| ✅ 異なる例示セットのA/Bテストが容易 | ❌ 例示がすべての入力タイプに汎化するとは限らない |
組み合わせに適した手法
- Coached LLM Prompting — ルールと例示を組み合わせることで、どちらか単独より優れた結果が得られます
- Dictionary-Augmented LLM — 強制用語とスタイル例示の組み合わせ
- FST-Gated Pipeline — スタイルには例示を、形態論的正確さにはFSTを使用
関連情報
- MT Evaluation Rules — 失格となる条件
- Evaluation Datasets — 例示として使用できないデータの確認
- Support a Low-Resource Language