LLM-as-a-Judgeの信頼性を担保する「ルーブリック型フォーム」プロンプトの設計

Tech

[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. 設計: 評価項目を細分化し、各点数(1-5点)の定義を曖昧さなく記述する。

  2. 実行: LLMに対し、評価の根拠を述べた後にスコアリングを行う「フォーム記入」を指示する。

  3. 評価: 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..."
}

【まとめ】

  1. 評価項目を「分解」せよ:総合評価だけでなく、複数の観点(正確性、簡潔性、安全性等)に分けることで精度が安定する。

  2. 「根拠」を先に書かせよ:LLMは先にスコアを出すとそのスコアを正当化しようとする。思考プロセスを先行させることで論理的整合性を保つ。

  3. ルーブリックを「具体化」せよ:「良い」ではなく「XXという条件を満たしている」といった事実ベースの基準を設ける。

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

コメント

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