LLM-as-a-Judgeの信頼性を向上させる「評価ルーブリック+フォーム形式」プロンプト設計

Tech

  • RESEARCH-FIRST: LLM-as-a-Judgeの信頼性を高めるためには、単一のスコア出力ではなく、根拠の抽出(Evidence Extraction)と評価基準(Rubric)への適合性を個別に判断させる「多段階評価」が有効である。特にPrompts as Form-Fillingの考え方を取り入れ、思考の連鎖(CoT)を強制することで、幻覚を抑制し、人間との相関(Human Alignment)を高める。

  • PLAN:

    1. ユースケースとして「カスタマーサポートの回答品質評価」を設定。

    2. 入力:ユーザーの問いとLLMの回答、出力:JSON形式の評価レポート。

    3. プロンプト設計のループをMermaidで可視化。

    4. 初期プロンプト案(CoT付き)の提示。

    5. 失敗パターンの分析(スコアの甘さ、根拠の欠如など)。

    6. 改良版:評価ルーブリックをフォーム形式で埋め込ませる「最強プロンプト」の構築。

本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

LLM-as-a-Judgeの信頼性を向上させる「評価ルーブリック+フォーム形式」プロンプト設計

【ユースケース定義と課題】

カスタマーサポートの回答品質を自動評価し、改善点を抽出する。主観的なブレを抑え、定量・定性の両面から一貫性のある評価結果をJSON形式で出力させる。

【プロンプト設計のループ】

graph TD
A["ルーブリック策定"] --> B["フォーム形式プロンプト実行"]
B --> C["人間による評価との乖離分析"]
C -->|バイアス修正| A
  1. ルーブリック策定: 評価項目(正確性、丁寧さ等)を5段階で定義し、各段階の具体的状態を明文化。

  2. 実行: LLMに「評価フォームを埋める」というロールを与え、ステップバイステップで推論させる。

  3. 乖離分析: LLMのスコアと人間のスコアを比較し、甘すぎる/厳しすぎる項目を特定してプロンプトの記述を微調整する。

【プロンプトの実装案】

# Role

あなたは品質管理の専門家です。以下の評価ルーブリックに基づき、カスタマーサポートの回答を厳格に評価し、指定のフォームを埋めてください。

# Evaluation Rubric (1-5)


- 正確性: 誤情報がないか。

  - 5: 完璧。情報の不足もない。

  - 1: 重大な誤りがある。

- 丁寧さ: 顧客に寄り添った表現か。

  - 5: 非常に礼儀正しく、共感的。

  - 1: 無礼、または機械的すぎる。

# Input Data


- ユーザーの質問: {{user_query}}

- AIの回答: {{ai_response}}

# Instructions


1. まず、回答の中から評価の根拠となる具体的な一節を抜き出してください。

2. 次に、その根拠がルーブリックのどの基準に該当するか、思考プロセスを記述してください。

3. 最後に、スコアを決定してください。

# Output Format (JSON)

{
  "analysis": {
    "accuracy": {"evidence": "", "reasoning": "", "score": 0},
    "politeness": {"evidence": "", "reasoning": "", "score": 0}
  },
  "overall_feedback": ""
}

【評価指標と誤り分析】

失敗パターン 具体的現象 対策
中心化傾向 全ての評価を「3」にする 各スコアの「境界線」をFew-shotで例示する
根拠の捏造 回答にない文言を根拠にする 「根拠は引用符で囲んで直接抽出せよ」と指示
ハロー効果 丁寧だと正確性も高く評価する 評価項目を1つずつ独立したステップで解かせる

【改良後の最適プロンプト】

# Role: Senior QA Auditor

あなたはカスタマーサポートのログを監査する上級監査官です。
以下の「評価フォーム」を順番に埋めることで、客観的な評価を生成してください。

# Constraints


- 思考のバイアスを避けるため、各項目は独立して評価すること。

- スコア「5」を付けるには、加点要素が必須です。

- スコア「1-2」を付ける場合は、必ず具体的な改善案を提示すること。

# Step-by-Step Evaluation Form

[Step 1: 事実確認]
AIの回答に含まれる事実関係を箇条書きで抽出してください。

[Step 2: 評価ルーブリックの適用]
■項目A:正確性

- 抽出した事実と、正しい知識(コンテキスト)を比較してください。

- 思考プロセス:

- スコア(1-5):

■項目B:トーン&マナー

- 顧客の感情に対する応答を分析してください。

- 思考プロセス:

- スコア(1-5):

# Final Output (Valid JSON only)

{
  "steps": {
    "fact_extraction": [],
    "rubric_application": {
      "accuracy": {"process": "", "score": 0},
      "tone": {"process": "", "score": 0}
    }
  },
  "summary": ""
}

【まとめ】

  1. 「根拠→思考→スコア」の順序を守らせる: スコアを最後に記述させることで、結論ありきの推論(後知恵バイアス)を防ぐ。

  2. 評価基準の「解像度」を上げる: 「良い・悪い」ではなく「〇〇が含まれていれば4点」と具体的に記述する。

  3. JSON構造の強制: Valid JSON only と指定し、プログラムでパース可能な形式で出力させることで、後続の分析を自動化する。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました