{ “version”: “1.1”, “technique”: [“LLM-as-a-Judge”, “Rubric-based Evaluation”, “Chain-of-Thought”, “Form-Filling”], “target_models”: [“Gemini 1.5 Pro/Flash”, “GPT-4o”], “context”: “Professional prompt engineering for automated quality assurance.” }
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
評価精度を劇的に向上させる「ルーブリック+フォーム記入型」LLM-as-a-Judgeプロンプト
【ユースケース定義と課題】
カスタマーサポート等のLLM生成物の品質を、多角的な評価基準(ルーブリック)に基づき、人間と同等の精度で自動採点・分析すること。 課題: 単純な採点では「根拠の欠如」や「一貫性のないスコアリング」が発生し、評価結果の信頼性が低くなる点。 入出力形式: 入力は「ユーザー質問+回答」、出力は評価理由とスコアを含む「JSON形式」。
【プロンプト設計のループ】
graph TD A["設計: 評価基準とフォーム項目の定義"] --> B["実行: LLMによる評価実施"] B --> C["評価: 人間の評価との相関/一致率の確認"] C -->|不一致/幻覚あり| A C -->|精度向上| D["運用: 自動モニタリングへの組み込み"]
設計: 評価項目(正確性、丁寧さ、等)ごとに、1〜5点の具体的定義を明文化する。
実行: 「思考(Reasoning)」を先に書かせるフォーム形式でLLMに評価させる。
評価: サンプルデータを用い、人間がつけたスコアとLLMのスコアが乖離していないか検証する。
【プロンプトの実装案】
# Role
あなたは、カスタマーサポートの回答品質を厳格に評価する品質管理スペシャリストです。
提示された「評価基準(ルーブリック)」に基づき、客観的な視点で回答を評価してください。
# Evaluation Rubric: [正確性]
- Score 1: 致命的な誤情報が含まれている。
- Score 2: 部分的に誤りがあるか、重要な前提条件が抜けている。
- Score 3: 概ね正しいが、表現に曖昧さがあり、誤解を招く恐れがある。
- Score 4: 正確であり、必要な情報を十分に網羅している。
- Score 5: 完璧に正確であり、補足情報も含めてユーザーの期待を上回る。
# Task Instructions
以下の「評価フォーム」の全項目を順に埋めてください。
**注意:必ず「スコア」を決定する前に、その根拠となる「分析」を記述してください(Reason-before-Score)。**
# Input Data
- ユーザーの質問: {{USER_QUERY}}
- LLMの回答: {{AI_RESPONSE}}
# Evaluation Form (Output JSON format)
{
"analysis": {
"factual_check": "回答内容と事実の照合結果を記述",
"rubric_justification": "ルーブリックのどの定義に該当するか、具体的な証拠を記述"
},
"scores": {
"accuracy": 0 // 1-5の整数
},
"improvement_suggestion": "さらに良くするための具体的な修正案"
}
【評価指標と誤り分析】
自動評価の信頼性を阻害する要因を特定し、以下の指標で監視します。
| 評価指標 | 失敗パターン(誤り分析) | 対策 |
|---|---|---|
| 一致率 (Inter-rater) | 人間の評価とスコアが2点以上乖離する | ルーブリックの記述をより具体的に(例:〜という単語があれば3点等)修正 |
| 根拠の妥当性 | スコアは正しいが、理由(Analysis)が事実無根 | Chain-of-Thought(思考過程)の強制出力を強化 |
| ハロー効果 | 文体が丁寧だと、内容が間違っていても高得点になる | 「丁寧さ」と「正確性」の評価項目を完全に分離して定義 |
| JSON構造維持 | 評価文が長すぎてJSONが壊れる | response_format: { type: "json_object" } の指定とスキーマの固定 |
【改良後の最適プロンプト】
最新のGemini 1.5 Pro等で高いパフォーマンスを発揮する、構造化された最終プロンプトです。
# Role
QA Expert for AI generated content.
# System Logic: Rubric-based Form Filling
Evaluate the [AI_RESPONSE] based on the [CONTEXT].
You MUST fill the form in the order specified. Thinking first, then scoring.
# Rubrics
1. Accuracy (1-5): Accuracy of facts.
2. Tone (1-5): Professionalism and empathy.
# Evaluation Form Format (Strict JSON)
{
"thought_process": {
"evidence_extraction": "List specific parts of the response related to facts.",
"logical_deduction": "Explain why it matches a specific rubric level."
},
"evaluation_results": {
"accuracy_score": null,
"tone_score": null,
"overall_rational": "Summary of evaluation."
}
}
# Input
- Context: {{CONTEXT}}
- AI_Response: {{AI_RESPONSE}}
# Execution
Evaluate now. Follow the JSON structure exactly. No conversational text before or after the JSON.
【まとめ】
実務でLLM-as-a-Judgeを運用するための3つの鉄則:
Reasoning-First (思考の先行出力): スコアを出す前に、必ず証拠の抽出と分析をステップバイステップで行わせる(CoTの強制)。
Rubric Orthogonality (評価軸の直交性): 評価項目同士が重複しないように設計し、特定の要素(例:丁寧さ)が他の要素(例:正確性)に影響を与えないようにする。
Few-shot Calibration (例示による補正): 「この回答なら3点、この回答なら5点」という境界線の具体例を3つ以上プロンプトに含めることで、モデルのバイアスを最小化する。

