[META] { “purpose”: “LLM-as-a-Judgeの精度向上を目的としたプロンプト設計ガイド”, “technique”: [“Rubric-based Evaluation”, “Chain-of-Thought”, “Form-filling”], “target_llm”: “Gemini 1.5 Pro, GPT-4o, Claude 3.5 Sonnet”, “version”: “1.0” } [/META]本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
LLM-as-a-Judgeの信頼性を担保する「ルーブリック型フォーム」プロンプトの設計
【ユースケース定義と課題】
LLMによる生成物の品質を、定義した評価基準(ルーブリック)に基づき自動採点する。単一のスコア出力では根拠が不明瞭で、評価が甘くなる「寛大化傾向」が課題となる。
入力: ユーザーのプロンプト、LLMの回答、評価ルーブリック
出力: 評価プロセス、各項目スコア、最終評価(JSON形式)
【プロンプト設計のループ】
graph TD A["設計: 評価項目と点数定義の策定"] --> B["実行: LLMに評価フォームを入力させる"] B --> C["評価: 人間の評価結果との相関分析"] C -->|相関が低い場合| A
設計: 評価項目を細分化し、各点数(1-5点)の定義を曖昧さなく記述する。
実行: LLMに対し、評価の根拠を述べた後にスコアリングを行う「フォーム記入」を指示する。
評価: LLMのスコアと人間の採点の乖離を分析。特定の項目でズレがある場合はルーブリックを具体化する。
【プロンプトの実装案】
# Role
あなたは厳格な品質評価担当者です。以下の[評価ルーブリック]に基づき、[生成された回答]の品質を客観的に評価してください。
# 評価プロセス
1. 評価項目ごとに、まず「評価の根拠(思考プロセス)」を詳しく記述してください。
2. 根拠に基づき、スコアを決定してください。
3. すべての項目を評価した後、最終的なフィードバックを述べてください。
# 評価ルーブリック
- 正確性 (Accuracy): 事実関係に誤りはないか。
- 5: 完璧に正確。
- 3: 致命的ではないが些細な誤りがある。
- 1: 重要な事実誤認が含まれる。
- 丁寧さ (Politeness): ユーザーに対する配慮があるか。
- 5: 非常に丁寧で、適切な敬語が使われている。
- 1: 不遜、またはAIとしての配慮に欠ける。
# 評価対象
- ユーザープロンプト: {{prompt}}
- 生成された回答: {{response}}
# 出力形式
## 項目1: 正確性
- 根拠: (ここに思考プロセスを記述)
- スコア: (1-5)
## 項目2: 丁寧さ
- 根拠: (ここに思考プロセスを記述)
- スコア: (1-5)
## 総合評価
- 改善案:
【評価指標と誤り分析】
自動評価の信頼性を損なう主要な要因を以下に特定し、対策を講じます。
| 失敗パターン | 具体的現象 | 対策 |
|---|---|---|
| 寛大化バイアス | ほとんどの回答に「5」をつけてしまう | ルーブリックに「5を付けるための必須条件」を厳格に定義する |
| 根拠の希薄化 | スコアと根拠が一致していない | 「スコアを出す前に根拠を書く」順序を強制する(CoT) |
| 形式崩れ | JSON等のパースに失敗する | Output Schemaを定義し、Few-shotで出力例を提示する |
【改良後の最適プロンプト】
最新LLMの追従性を高めるため、JSONスキーマとChain-of-Thoughtを統合した形式です。
# Instructions
Evaluate the candidate response based on the criteria.
You must output in JSON format with logical reasoning for each score.
# Evaluation Rubric
1. Relevance (1-5): Does the response directly answer the prompt?
2. Factuality (1-5): Are the claims supported by general knowledge?
# Input Data
- Prompt: {{prompt}}
- Response: {{response}}
# Expected Output Format
{
"evaluations": [
{
"criterion": "Relevance",
"reasoning": "First, I will identify the core intent of the prompt... then compare it with the response...",
"score": 5
},
{
"criterion": "Factuality",
"reasoning": "Checking the specific dates and names mentioned...",
"score": 4
}
],
"overall_feedback": "The response is highly relevant but lacks precision in..."
}
【まとめ】
評価項目を「分解」せよ:総合評価だけでなく、複数の観点(正確性、簡潔性、安全性等)に分けることで精度が安定する。
「根拠」を先に書かせよ:LLMは先にスコアを出すとそのスコアを正当化しようとする。思考プロセスを先行させることで論理的整合性を保つ。
ルーブリックを「具体化」せよ:「良い」ではなく「XXという条件を満たしている」といった事実ベースの基準を設ける。

