<p><meta/>
{“design_pattern”: “LLM-as-a-judge-optimization”, “techniques”: [“Rubric-based Scoring”, “Form-filling Pattern”, “Chain-of-Thought”, “Structured-Output”], “target_model”: “Gemini 1.5 Pro / GPT-4o”, “version”: “1.0”}
</p>
<p>本記事は<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>:評価対象のプロンプトと回答(Markdown/Text)</p></li>
<li><p><strong>出力型</strong>:構造化された評価レポート(JSONまたはMarkdownフォーム)</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["評価フォームの構築"]
B --> C["CoTによる推論実行"]
C --> D["出力のパースと検証"]
D -->|不整合発見| A
</pre></div>
<ol class="wp-block-list">
<li><p><strong>ルーブリック定義</strong>: 採点基準を曖昧な言葉ではなく「1〜5点の具体的状態」として定義する。</p></li>
<li><p><strong>フォーム構築</strong>: 評価者に「点数」を先に書かせず、「証拠」を先に書かせる構造を作る。</p></li>
<li><p><strong>CoT実行</strong>: 評価の根拠となる思考プロセスを明示的に出力させる。</p></li>
<li><p><strong>検証</strong>: 評価理由とスコアに矛盾がないか、JSONスキーマに従っているかを確認する。</p></li>
</ol>
<h3 class="wp-block-heading">【プロンプトの実装案】</h3>
<p>以下のプロンプトは、評価のバイアス(中心化傾向など)を防ぐために「思考の順序」を強制しています。</p>
<div class="codehilite">
<pre data-enlighter-language="generic"># Role
あなたは高品質な技術ドキュメントの校閲者であり、LLMの回答を客観的に評価するエキスパート評価者です。
# Evaluation Rubric (指標: 正確性)
- 5点 (Excellent): 誤りが一切なく、最新の技術動向に合致し、補足情報まで完璧である。
- 3点 (Good): 主要な事実に誤りはないが、一部説明が不十分、または冗長である。
- 1点 (Poor): 明らかな事実誤認が含まれる、または質問の意図を理解していない。
# Task Instructions
以下の手順に従い、[Target Response] を評価してください。
1. **証拠の抽出**: 回答の中から、評価の根拠となる具体的な記述を抜き出す。
2. **分析**: ルーブリックの基準に照らし合わせ、証拠がどのレベルに該当するか論理的に説明する。
3. **最終スコア**: 1〜5の整数でスコアを付与する。
# Evaluation Form (この形式で回答してください)
[Evidence]:
[Reasoning]:
[Final Score]:
[Improvement Suggestion]:
# Target Response
(ここに評価対象のテキストを挿入)
</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>整合性 (Alignment)</strong></td>
<td style="text-align:left;">評価文では「ひどい」と言いつつスコア「4」をつける</td>
<td style="text-align:left;">思考プロセス(Reasoning)をスコアの前に書かせる</td>
</tr>
<tr>
<td style="text-align:left;"><strong>幻覚 (Hallucination)</strong></td>
<td style="text-align:left;">本文にない情報を根拠に減点する</td>
<td style="text-align:left;">[Evidence]セクションで本文の直接引用を強制する</td>
</tr>
<tr>
<td style="text-align:left;"><strong>フォーマット崩れ</strong></td>
<td style="text-align:left;">JSON等の後続処理でエラーが出る</td>
<td style="text-align:left;">Few-shotで出力例を提示、またはスキーマ制御を行う</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">【改良後の最適プロンプト】</h3>
<p>最新LLMの「長いコンテキストの理解」と「構造化出力」の特性を最大限に活かした、実務向けの最終プロンプト案です。</p>
<div class="codehilite">
<pre data-enlighter-language="generic"># Role
Technical Content Auditor
# Task context
あなたはカスタマーサポートの自動回答精度を測定しています。
提示された「評価基準」に基づき、ステップバイステップで評価を実施してください。
# Output Schema (JSON)
{
"reasoning_steps": [
"step1: 文脈の理解度を確認...",
"step2: 技術的な正確性を検証..."
],
"criteria_check": {
"accuracy": {"score": 1-5, "evidence": "string"},
"politeness": {"score": 1-5, "evidence": "string"}
},
"overall_score": 0.0,
"action_item": "改善のための具体的アクション"
}
# Detailed Rubric
## Accuracy (正確性)
- Score 5: 全ての技術用語が正確で、推奨されるベストプラクティスに基づいている。
- Score 3: 事実誤認はないが、曖昧な表現が含まれる。
- Score 1: 致命的な誤情報(ハルシネーション)を含む。
# Constraints
- 回答の前に「なぜそのスコアになったのか」の内部推論(CoT)を必ず記述すること。
- スコアは四捨五入せず、ルーブリックに従って厳格に付けること。
- JSON以外のテキストは出力しないでください。
# Target Input
PROMPT: {user_prompt}
RESPONSE: {llm_response}
# Evaluation Output (JSON)
</pre>
</div>
<h3 class="wp-block-heading">【まとめ】</h3>
<p>LLM-as-a-judgeを運用するための3つの鉄則:</p>
<ol class="wp-block-list">
<li><p><strong>思考を先、スコアを後に</strong>: 先に点数を決めさせると、後付けの理由(正当化)が生成されやすいため、必ず「証拠→理由→スコア」の順で出力させる。</p></li>
<li><p><strong>具体的ルーブリックの提示</strong>: 「良い・悪い」ではなく「XXが含まれていれば3点」という、誰が見ても同じ判断になる客観的な基準を書き込む。</p></li>
<li><p><strong>Few-shotの活用</strong>: 特に「低い評価(1点や2点)」の例をFew-shotとして含めることで、LLMが陥りやすい「お世辞バイアス(高得点を付けすぎる傾向)」を抑制できる。</p></li>
</ol>
{“design_pattern”: “LLM-as-a-judge-optimization”, “techniques”: [“Rubric-based Scoring”, “Form-filling Pattern”, “Chain-of-Thought”, “Structured-Output”], “target_model”: “Gemini 1.5 Pro / GPT-4o”, “version”: “1.0”}
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
LLM-as-a-Judgeの精度を最大化する「評価用ルーブリック+フォーム回答型」プロンプト設計
【ユースケース定義と課題】
LLMの回答品質を一定基準で自動採点したいが、評価がブレたり根拠が薄かったりする課題を、構造化された評価ルーブリックとフォーム入力形式で解決する。
【プロンプト設計のループ】
graph TD
A["ルーブリック定義"] --> B["評価フォームの構築"]
B --> C["CoTによる推論実行"]
C --> D["出力のパースと検証"]
D -->|不整合発見| A
ルーブリック定義: 採点基準を曖昧な言葉ではなく「1〜5点の具体的状態」として定義する。
フォーム構築: 評価者に「点数」を先に書かせず、「証拠」を先に書かせる構造を作る。
CoT実行: 評価の根拠となる思考プロセスを明示的に出力させる。
検証: 評価理由とスコアに矛盾がないか、JSONスキーマに従っているかを確認する。
【プロンプトの実装案】
以下のプロンプトは、評価のバイアス(中心化傾向など)を防ぐために「思考の順序」を強制しています。
# Role
あなたは高品質な技術ドキュメントの校閲者であり、LLMの回答を客観的に評価するエキスパート評価者です。
# Evaluation Rubric (指標: 正確性)
- 5点 (Excellent): 誤りが一切なく、最新の技術動向に合致し、補足情報まで完璧である。
- 3点 (Good): 主要な事実に誤りはないが、一部説明が不十分、または冗長である。
- 1点 (Poor): 明らかな事実誤認が含まれる、または質問の意図を理解していない。
# Task Instructions
以下の手順に従い、[Target Response] を評価してください。
1. **証拠の抽出**: 回答の中から、評価の根拠となる具体的な記述を抜き出す。
2. **分析**: ルーブリックの基準に照らし合わせ、証拠がどのレベルに該当するか論理的に説明する。
3. **最終スコア**: 1〜5の整数でスコアを付与する。
# Evaluation Form (この形式で回答してください)
[Evidence]:
[Reasoning]:
[Final Score]:
[Improvement Suggestion]:
# Target Response
(ここに評価対象のテキストを挿入)
【評価指標と誤り分析】
自動評価の信頼性を担保するために、以下の観点で評価プロセスを検証します。
| 評価指標 |
失敗パターン(リスク) |
対策 |
| 整合性 (Alignment) |
評価文では「ひどい」と言いつつスコア「4」をつける |
思考プロセス(Reasoning)をスコアの前に書かせる |
| 幻覚 (Hallucination) |
本文にない情報を根拠に減点する |
[Evidence]セクションで本文の直接引用を強制する |
| フォーマット崩れ |
JSON等の後続処理でエラーが出る |
Few-shotで出力例を提示、またはスキーマ制御を行う |
【改良後の最適プロンプト】
最新LLMの「長いコンテキストの理解」と「構造化出力」の特性を最大限に活かした、実務向けの最終プロンプト案です。
# Role
Technical Content Auditor
# Task context
あなたはカスタマーサポートの自動回答精度を測定しています。
提示された「評価基準」に基づき、ステップバイステップで評価を実施してください。
# Output Schema (JSON)
{
"reasoning_steps": [
"step1: 文脈の理解度を確認...",
"step2: 技術的な正確性を検証..."
],
"criteria_check": {
"accuracy": {"score": 1-5, "evidence": "string"},
"politeness": {"score": 1-5, "evidence": "string"}
},
"overall_score": 0.0,
"action_item": "改善のための具体的アクション"
}
# Detailed Rubric
## Accuracy (正確性)
- Score 5: 全ての技術用語が正確で、推奨されるベストプラクティスに基づいている。
- Score 3: 事実誤認はないが、曖昧な表現が含まれる。
- Score 1: 致命的な誤情報(ハルシネーション)を含む。
# Constraints
- 回答の前に「なぜそのスコアになったのか」の内部推論(CoT)を必ず記述すること。
- スコアは四捨五入せず、ルーブリックに従って厳格に付けること。
- JSON以外のテキストは出力しないでください。
# Target Input
PROMPT: {user_prompt}
RESPONSE: {llm_response}
# Evaluation Output (JSON)
【まとめ】
LLM-as-a-judgeを運用するための3つの鉄則:
思考を先、スコアを後に: 先に点数を決めさせると、後付けの理由(正当化)が生成されやすいため、必ず「証拠→理由→スコア」の順で出力させる。
具体的ルーブリックの提示: 「良い・悪い」ではなく「XXが含まれていれば3点」という、誰が見ても同じ判断になる客観的な基準を書き込む。
Few-shotの活用: 特に「低い評価(1点や2点)」の例をFew-shotとして含めることで、LLMが陥りやすい「お世辞バイアス(高得点を付けすぎる傾向)」を抑制できる。
コメント