如何使用LLM-as-Judge

如何使用LLM-as-Judge LLM-as-Judge 是指用大语言模型来评估另一个模型/系统的输出质量常用于 RAG、客服机器人、摘要、翻译、代码生成等场景的自动化评测。下面给你一个实用的使用方法。1. LLM-as-Judge 适合评估什么常见评估维度包括场景评估指标问答系统正确性、完整性、相关性RAG是否基于上下文、是否幻觉、引用是否准确摘要是否覆盖重点、是否忠实原文、是否简洁翻译准确性、流畅性、术语一致性客服机器人是否解决问题、语气是否合适、安全合规代码生成是否满足需求、是否有 bug、可读性2. 基本流程LLM-as-Judge 的典型流程如下测试问题/任务 ↓ 被评估模型生成答案 ↓ 把问题、参考答案、模型答案、评分标准交给 Judge LLM ↓ Judge LLM 输出分数、理由、标签 ↓ 统计结果分析问题3. 最简单的 Prompt 模板假设你要评估一个问答模型可以这样写 Judge Prompt你是一个严格的答案评估员。 请根据以下标准评估模型答案 评分标准 1 分答案完全错误或与问题无关 2 分答案部分相关但包含明显错误 3 分答案基本正确但不完整 4 分答案正确且较完整但有轻微遗漏 5 分答案完全正确、完整、清晰 问题 {question} 参考答案 {reference_answer} 模型答案 {model_answer} 请输出 JSON 格式 { score: 1-5, reason: 评分理由, errors: [主要问题1, 主要问题2] }4. RAG 场景的 Judge Prompt 示例如果你在评估 RAG 系统重点不是只看答案是否对还要看答案是否基于检索到的上下文。你是一个 RAG 系统评估员。 请基于给定的上下文评估模型答案。 评估维度 1. faithfulness答案是否完全基于上下文没有编造 2. relevance答案是否回答了用户问题 3. completeness答案是否覆盖了上下文中足够的信息 4. citation如果有引用引用是否准确 用户问题 {question} 检索上下文 {context} 模型答案 {answer} 请输出 JSON { faithfulness: 1-5, relevance: 1-5, completeness: 1-5, citation: 1-5, overall: 1-5, reason: 简要说明 }5. Pairwise Judge两个答案比较有时候直接打分不稳定可以让 Judge 比较两个答案。你是一个公正的评审员。 请比较答案 A 和答案 B判断哪个更好。 问题 {question} 参考答案 {reference_answer} 答案 A {answer_a} 答案 B {answer_b} 评估标准 - 正确性 - 完整性 - 清晰度 - 是否有幻觉 请输出 { winner: A / B / Tie, reason: 原因 }这种方式适合做模型 A/B 测试。6. Python 简单示例下面是一个伪代码示例fromopenaiimportOpenAIimportjson clientOpenAI()defjudge_answer(question,reference_answer,model_answer):promptf 你是一个严格的答案评估员。 评分标准 1 分完全错误或无关 2 分部分相关但有明显错误 3 分基本正确但不完整 4 分正确且较完整 5 分完全正确、完整、清晰 问题{question}参考答案{reference_answer}模型答案{model_answer}请只输出 JSON {{ score: 1, reason: 评分理由, errors: [] }} responseclient.chat.completions.create(modelgpt-4.1,messages[{role:user,content:prompt}],temperature0)returnjson.loads(response.choices[0].message.content)resultjudge_answer(question什么是 LLM-as-Judge,reference_answerLLM-as-Judge 是使用大语言模型自动评估模型输出质量的方法。,model_answer它是让大模型像裁判一样给答案评分。)print(result)7. 关键实践建议1. 尽量使用结构化输出让 Judge 输出 JSON方便后续统计。推荐{score:4,reason:...,label:partially_correct}不要只让它输出自然语言评价。2. 明确评分标准不要只写请评价这个答案好不好应该写请从正确性、完整性、相关性、清晰度四个维度分别打 1-5 分标准越明确评估越稳定。3. 使用 temperature0Judge 模型应该尽量稳定temperature0这样同一个样本多次评估结果更一致。4. 不要让 Judge 看到无关信息例如评估模型答案时不要把模型名称告诉 Judge这是 GPT-4 的答案 这是某小模型的答案这会带来偏见。最好匿名化答案 A 答案 B5. 使用多 Judge 或多次投票为了提高可靠性可以同一个 Judge 多次评估后取平均使用多个不同 LLM 评估后投票对关键样本加入人工复核6. 抽样人工校准LLM-as-Judge 不能完全替代人工评估。建议先人工评估 100-300 条样本 再比较 LLM Judge 和人工评分的一致性如果一致性较高再大规模自动评估。8. 常见问题问题 1Judge 会不会偏向更长的答案会。所以 Prompt 里应明确不要因为答案更长就给更高分只评估其正确性和完整性。问题 2Judge 会不会偏向格式更漂亮的答案也会。可以加入如果答案内容错误即使表达清晰也不能高分。问题 3没有参考答案怎么办可以使用无参考评估例如 RAG 场景中基于上下文判断只根据给定上下文评估答案是否被支持。但如果是知识问答最好还是有参考答案或标准事实。9. 一个推荐的评分维度通用问答可以使用{correctness:1-5,completeness:1-5,relevance:1-5,clarity:1-5,safety:1-5,overall:1-5}RAG 可以使用{faithfulness:1-5,answer_relevance:1-5,context_relevance:1-5,completeness:1-5,overall:1-5}10. 总结使用 LLM-as-Judge 的核心步骤是准备测试集让被评估模型生成答案设计清晰的评估标准用强模型作为 Judge输出结构化评分与人工评估做一致性校准批量统计分数和失败案例一句话概括LLM-as-Judge 的关键不是“让大模型随便评价”而是用明确标准、结构化输出和人工校准让大模型成为可重复的自动评测工具。