加载中...
加载中...
用 LLM 来评估 Agent 的输出质量——让一个「裁判模型」给 Agent 的每一步决策打分,从对话质量到工具调用合理性,再到最终任务完成度,实现自动化、规模化、高精度的 Agent 评估。
LLM-as-Judge 是让一个强大的语言模型充当「裁判」,自动化地评估另一个 Agent 的行为质量。传统 Agent 评估依赖人工标注(成本高、无法规模化)或规则匹配(只能测表面正确性),而用 LLM 做裁判可以评估更多维度:回答的相关性、推理逻辑的连贯性、工具选择的合理性、甚至对话的语气和用户体验。核心思想是:既然 LLM 已经能理解复杂语义,那就让它来替人类做质检。这就像 AlphaGo 用另一个神经网络来评估棋局优劣一样——用「评判者模型」驱动 Agent 的迭代优化。
LLM-as-Judge 的实现分为三种经典模式,按评估粒度和可靠性递增:
**1. 单点评分(Pointwise Scoring)——给一个维度打分数**
裁判模型接收 Agent 的一次输出(如一段回复、一个工具调用决策、一个推理步骤)和评估标准,直接给出 1-5 分或 1-10 分的评分。这是最基础的模式,适用于简单评估维度(如「回答是否有帮助」「语气是否礼貌」)。关键技巧:要求裁判模型给出评分理由(Rationale),防止它随意给分——先解释为什么这么打分,再给分数。代表性实现:MT-Bench(LMSYS)的单轮评分模式。
**2. 对比排序(Pairwise Comparison)——A 比 B 好在哪**
同时给裁判模型看两个 Agent 的输出(比如两个不同版本的 Agent 对同一问题的回复),让它判断哪个更好并说明理由。这比单点评分更可靠——因为「A 比 B 好」比「A 打 4.2 分」更容易做出一致性判断。Elo 评分系统就基于此:通过大量两两对比,为每个 Agent 版本计算 Elo 分数,形成排行榜。代表性实现:Chatbot Arena(LMSYS)就是典型的对比排序模式,但不仅限于最终回复——也可以对比 Agent 的工具调用策略、中间推理步骤的质量。
**3. 逐项核对(Rubric-Based Evaluation)——按评分表逐条打分**
预设一个详细的评分表(Rubric),列出多个评估维度和每个维度的评分标准(如「工具选择正确性:正确选工具且参数完全正确=5分,选了正确工具但参数有误=3分,选了错误工具=1分」),让裁判模型逐条对照评估。这是最结构化的方式,适合生产环境的自动化 CI 流水线。工具链:DeepEval、Ragas、LangSmith 都支持 Rubric 评估。
核心设计原则:
- 位置偏差(Position Bias)——裁判模型倾向于认为「排在后面的回答更好」或「排在后面的回答更差」。通过交换 AB 顺序跑两次取平均来消除。
- 长度偏差(Length Bias)——裁判模型倾向于给更长的回答更高分(即使内容冗余)。解决方案:在评分标准中明确声明「长度不等于质量」,或用长度归一化。
- 自利偏差(Self-Enhancement Bias)——裁判模型更倾向于给「与自己风格相似的输出」更高分。用不同厂商的裁判模型交叉评估来缓解。
操作:准备 50 个 Agent 对话样本(含用户问题、Agent 回复、工具调用记录),先让人工标注员按 5 个维度(有用性、准确性、安全性、工具选择合理性、回复简洁度)打分 1-5。然后用 GPT-4、Claude、Gemini 三个裁判模型分别对同一样本打分。计算每个裁判模型的人工一致性(Spearman 相关系数,目标 ≥ 0.75)
工具:用 LangSmith (https://smith.langchain.com) 的 Annotation Queue 做人工标注,用 DeepEval (https://docs.confident-ai.com) 的 LLM-as-Judge 模块跑自动评估
指标:Spearman 相关系数(≥ 0.75)、各维度的 MAE(平均绝对误差 ≤ 0.5)、Krippendorff's Alpha(评分者间信度 ≥ 0.7)
操作:构造 30 对「好回复 + 差回复」的 AB 测试集,其中好回复明显优于差回复(如好回复准确回答了问题,差回复答非所问)。跑两轮:第一轮好回复在 A 位、第二轮好回复在 B 位。计算两轮中裁判模型正确识别好回复的比例差异。同时构造「短精回复 vs 长冗回复」对,检测长度偏差。
工具:自定义 Python 评估脚本 + OpenAI/Anthropic API;LMSYS 的 FastChat 框架 (https://github.com/lm-sys/FastChat) 内置了位置偏差检测
指标:位置一致性(AB 交换后正确率差距 ≤ 5%)、长度公平率(短精回复被正确选中的比例 ≥ 45%,即接近 50:50)
操作:设计一个需要 3 步工具调用的 Agent 任务(如「查询用户行程→检查天气→如果下雨则发送提醒」)。设计 Rubric 评分表涵盖:步骤1工具选择正确性 25%、步骤1参数正确性 25%、步骤顺序合理性 20%、最终输出质量 30%。用裁判模型对 20 个不同 Agent 配置(不同 prompt/模型/温度)进行 Rubric 评分,对比各配置的总分。
工具:Ragas (https://docs.ragas.io) 支持自定义 Rubric;或用 LangChain + Pydantic 定义评分 Schema 让裁判模型输出结构化 JSON 评分
指标:Rubric 总分(0-100 分区间)、各子项得分的区分度(不同配置间的标准差 ≥ 10 说明 Rubric 能有效区分好坏)、评分稳定性(同一配置跑 3 次的标准差 ≤ 5 分)
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧