← 返回列表

AIシリーズ面接12:プロンプトのチューニング方法は?

プロンプトチューニング(Prompt Engineering / Optimization)は、大規模言語モデルを「言うことを聞かせる」ための重要なスキルであり、特にRAGシステムでは、モデルが検索内容に忠実に基づき、幻覚を避け、出力形式を整えるかどうかを直接決定します。


一、プロンプトチューニングの核心原則

  1. 明確さ > 複雑さ:シンプルで直接的な指示は、凝った思考連鎖よりも効果的な場合が多い。
  2. 十分な制約を与える:モデルに「何ができて、何ができないか」を明確に伝える。
  3. 事例を提供する:Few-shotはZero-shotよりも安定している。
  4. 検証可能にする:モデルに引用や確信度を出力させ、下流で判断しやすくする。
  5. 反復最適化:ベースラインから始め、一度に一つの変数だけを変更し、効果を比較する。

二、具体的なチューニングテクニック(易しいものから難しいものへ)

1. ロール設定(System Prompt)

あなたはプロのカスタマーサポートアシスタントです。以下の【参考資料】のみに基づいて質問に答えてください。
答えがわからない場合は、「資料に関連情報はありません」と直接言い、自分で作り出さないでください。
  • 効果:境界とトーンを設定する。
  • チューニングポイント:トーン(プロフェッショナル/親しみやすい)、制約の強さ(厳格/緩やか)。

2. 明確な指示

❌ 悪い例:「ユーザーの質問に答えてください。」
✅ 良い例:「以下の【参考資料】のみに基づいて答えてください。参考資料に答えが含まれていない場合は、「この質問にはお答えできません」と答えてください。」

3. 出力形式の制御

以下のJSON形式で出力してください:
{
  "answer": "あなたの答え",
  "confidence": "高/中/低",
  "sources": [1, 3]
}
  • 用途:下流での解析、引用、デバッグを容易にする。

4. Few-shot 例(非常に効果的)

例1:
質問:有給休暇は何日ですか?
参考資料:有給休暇ルール:1年以上で5日、10年以上で10日。
答え:1年以上で5日、10年以上で10日。

例2:
質問:残業代はどう計算しますか?
参考資料:平日残業は1.5倍、週末は2倍。
答え:平日は1.5倍、週末は2倍。

では、以下の質問に答えてください:
質問:{ユーザーの質問}
参考資料:{検索内容}
答え:
  • テクニック:例は異なる難易度をカバーし、「答えられない」例を1つ含めると良い。

5. 強制引用

答えの末尾に[citation:X]で出典番号を明記してください。例:「有給休暇は5日です[citation:1]。」
複数の資料を総合した場合は、それぞれに明記してください。

6. 拒否回答の閾値設定

  • ハード制約:「参考資料が質問と全く無関係な場合は、「資料は関連しません」と答えてください。」
  • ソフト制約:検索の確信度スコアと組み合わせ、閾値を下回ったら自動的に拒否回答ブランチに進む。

7. 思考連鎖(Chain-of-Thought)のマルチホップ推論への利用

質問:張三の上司は誰ですか?
ステップ:1. まず張三の部門を特定する。2. 次にその部門の責任者を特定する。3. 最終的な答えを出す。
ステップごとに考えてから出力してください。

8. 否定指示(Negative Prompting)

答えを作り出さないでください。「可能性がある」「かもしれない」などの曖昧な言葉を使わないでください。参考資料以外の数字を出力しないでください。

三、プロンプトの良し悪しをどう評価するか?

指標 意味 測定方法
忠実度 答えが厳密に参考資料に基づいているか 人手またはRAGASのFaithfulness
拒否回答精度 拒否すべき時に拒否しているか 回答なしのテストセットで計算
形式遵守率 JSON / 引用の要求通りに出力しているか 正規表現マッチング
ユーザー満足度 答えが役立つか オンラインフィードバック / A/Bテスト

提案:小規模なテストセット(20〜50のエッジケース)を準備し、プロンプトを変更するたびに実行して変化を記録する。

四、よくある落とし穴とチューニングの方向性

問題の現象 考えられる原因 チューニング方法
モデルが参考資料を無視して独自に回答する 指示が不十分 以下の資料のみに基づいて」に変更し、few-shotで拒否回答を示す
モデルが常に「わからない」と言う 拒否回答の閾値が高すぎる 閾値を下げるか、検索品質を確認する
出力形式が乱れ、JSONにならない 指示が不明瞭 厳格な形式例を追加するか、function callingを使用する
答えが長すぎる/短すぎる 長さを指定していない 「3文以内で答えてください」
マルチホップ推論で間違える モデルの推論能力不足 段階的な推論を要求するか、より強力なモデルに変更する
幻覚の数字/日付が出る モデルが自身の知識に依存 「記憶にある数字は一切使わず、資料だけを見てください」と強調する

评论

暂无已展示的评论。

发表评论(匿名)