<p>[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]本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">LLM-as-a-Judgeの信頼性を担保する「ルーブリック型フォーム」プロンプトの設計</h1>
<h3 class="wp-block-heading">【ユースケース定義と課題】</h3>
<p>LLMによる生成物の品質を、定義した評価基準(ルーブリック)に基づき自動採点する。単一のスコア出力では根拠が不明瞭で、評価が甘くなる「寛大化傾向」が課題となる。</p>
<ul class="wp-block-list">
<li><p><strong>入力:</strong> ユーザーのプロンプト、LLMの回答、評価ルーブリック</p></li>
<li><p><strong>出力:</strong> 評価プロセス、各項目スコア、最終評価(JSON形式)</p></li>
</ul>
<h3 class="wp-block-heading">【プロンプト設計のループ】</h3>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
A["設計: 評価項目と点数定義の策定"] --> B["実行: LLMに評価フォームを入力させる"]
B --> C["評価: 人間の評価結果との相関分析"]
C -->|相関が低い場合| A
</pre></div>
<ol class="wp-block-list">
<li><p><strong>設計</strong>: 評価項目を細分化し、各点数(1-5点)の定義を曖昧さなく記述する。</p></li>
<li><p><strong>実行</strong>: LLMに対し、評価の根拠を述べた後にスコアリングを行う「フォーム記入」を指示する。</p></li>
<li><p><strong>評価</strong>: LLMのスコアと人間の採点の乖離を分析。特定の項目でズレがある場合はルーブリックを具体化する。</p></li>
</ol>
<h3 class="wp-block-heading">【プロンプトの実装案】</h3>
<div class="codehilite">
<pre data-enlighter-language="generic"># Role
あなたは厳格な品質評価担当者です。以下の[評価ルーブリック]に基づき、[生成された回答]の品質を客観的に評価してください。
# 評価プロセス
1. 評価項目ごとに、まず「評価の根拠(思考プロセス)」を詳しく記述してください。
2. 根拠に基づき、スコアを決定してください。
3. すべての項目を評価した後、最終的なフィードバックを述べてください。
# 評価ルーブリック
- 正確性 (Accuracy): 事実関係に誤りはないか。
- 5: 完璧に正確。
- 3: 致命的ではないが些細な誤りがある。
- 1: 重要な事実誤認が含まれる。
- 丁寧さ (Politeness): ユーザーに対する配慮があるか。
- 5: 非常に丁寧で、適切な敬語が使われている。
- 1: 不遜、またはAIとしての配慮に欠ける。
# 評価対象
- ユーザープロンプト: {{prompt}}
- 生成された回答: {{response}}
# 出力形式
## 項目1: 正確性
- 根拠: (ここに思考プロセスを記述)
- スコア: (1-5)
## 項目2: 丁寧さ
- 根拠: (ここに思考プロセスを記述)
- スコア: (1-5)
## 総合評価
- 改善案:
</pre>
</div>
<h3 class="wp-block-heading">【評価指標と誤り分析】</h3>
<p>自動評価の信頼性を損なう主要な要因を以下に特定し、対策を講じます。</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">失敗パターン</th>
<th style="text-align:left;">具体的現象</th>
<th style="text-align:left;">対策</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;"><strong>寛大化バイアス</strong></td>
<td style="text-align:left;">ほとんどの回答に「5」をつけてしまう</td>
<td style="text-align:left;">ルーブリックに「5を付けるための必須条件」を厳格に定義する</td>
</tr>
<tr>
<td style="text-align:left;"><strong>根拠の希薄化</strong></td>
<td style="text-align:left;">スコアと根拠が一致していない</td>
<td style="text-align:left;">「スコアを出す前に根拠を書く」順序を強制する(CoT)</td>
</tr>
<tr>
<td style="text-align:left;"><strong>形式崩れ</strong></td>
<td style="text-align:left;">JSON等のパースに失敗する</td>
<td style="text-align:left;">Output Schemaを定義し、Few-shotで出力例を提示する</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">【改良後の最適プロンプト】</h3>
<p>最新LLMの追従性を高めるため、JSONスキーマとChain-of-Thoughtを統合した形式です。</p>
<div class="codehilite">
<pre data-enlighter-language="generic"># 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..."
}
</pre>
</div>
<h3 class="wp-block-heading">【まとめ】</h3>
<ol class="wp-block-list">
<li><p><strong>評価項目を「分解」せよ</strong>:総合評価だけでなく、複数の観点(正確性、簡潔性、安全性等)に分けることで精度が安定する。</p></li>
<li><p><strong>「根拠」を先に書かせよ</strong>:LLMは先にスコアを出すとそのスコアを正当化しようとする。思考プロセスを先行させることで論理的整合性を保つ。</p></li>
<li><p><strong>ルーブリックを「具体化」せよ</strong>:「良い」ではなく「XXという条件を満たしている」といった事実ベースの基準を設ける。</p></li>
</ol>
[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による生成物の品質を、定義した評価基準(ルーブリック)に基づき自動採点する。単一のスコア出力では根拠が不明瞭で、評価が甘くなる「寛大化傾向」が課題となる。
【プロンプト設計のループ】
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という条件を満たしている」といった事実ベースの基準を設ける。
ライセンス :本記事のテキスト/コードは特記なき限り
CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。
コメント