当前位置:首页>排行榜>Agent 评测08:LLM Judge 给了高分,你就敢信吗?Rubric、人工标注与校准怎么做

Agent 评测08:LLM Judge 给了高分,你就敢信吗?Rubric、人工标注与校准怎么做

  • 更新时间 2026-10-31 13:03:14
Agent 评测08:LLM Judge 给了高分,你就敢信吗?Rubric、人工标注与校准怎么做
Agent 评测实战 · 08

把另一个会犯错的模型,变成可检查、可复核、暂时只在影子模式工作的评分器

RR-GOLD-003 的发布建议是“暂缓发布”。结论没错,可理由只有一句:“构建、关键测试或阻断缺陷中至少一项未通过。”

究竟是构建失败、回归测试失败,还是存在 P1 缺陷?读者仍要自己翻 Trace。一个只盯结论的 Judge 很可能给它 PASS;熟悉发布评审的人更可能判成 REVIEW。

分歧不说明人一定对、模型一定错。它说明“写得够不够好”还没有一把经过校准的尺子。

第 7 篇留下了一个刻意的空白:Outcome、Tool、State 可以由代码稳定判断,Response Quality 却不能靠关键词数量或固定句式硬判。LLM Judge 确实擅长理解开放式文本,但它仍是概率模型,会受 Rubric、上下文、答案长度甚至呈现顺序影响。

所以本篇不讨论“选哪个模型当裁判”,而是解决更靠前的问题:怎样定义 Rubric、怎样准备人工标签、怎样验证 Judge 与人的判断是否足够一致,以及哪些结果必须退回人工复核。

本文阅读路线

01 LLM Judge 不是终审裁判

02 Rubric 如何把“写得好”拆成可判标准

03 人工标注集怎样成为校准基准

04 校准时,别只看一个一致率

05 通过校准,也只能先进入 Shadow Mode

01 · 职责边界

LLM Judge 不是终审裁判

“Judge”这个名字很容易制造错觉,仿佛把一段回答交给更强的模型,就能得到客观判决。实际工程里,它更像一名速度很快、能读懂语义,却需要持续抽查的评审员。

Anthropic 对 Agent eval 的划分很实用:代码评分、模型评分和人工评分各有自己的位置。模型评分能处理自由文本和细微语义,但具有非确定性,而且必须用人工判断做校准。这不是模型能力强弱的问题,而是评测职责的边界。

图 1|三类裁判不是互相替代:规则守事实底线,Judge 读开放语义,人工处理争议和高风险

在发布评审 Agent 中,职责可以这样拆:

确定性 Grader:结论是否符合业务标签、工具有没有越界、状态文件是否正确。

LLM Judge:理由是否基于证据、有没有点出决定性风险、下一步是否清楚。

人工复核:处理 Judge 与人工基准的分歧、高风险样本和超出 Rubric 的新问题。

有些团队会把确定性结果也塞进 Judge Prompt,让模型重新判断工具调用和业务结论。这样做既更贵,也把原本可复现的事实变成概率答案。更稳妥的方式是:确定性结果作为上下文交给 Judge,但只允许它评价开放式文本质量。

LLM Judge 应该补上规则看不懂的部分,而不是把已经能确定的事实再猜一遍。

02 · Rubric

Rubric 如何把“写得好”拆成可判标准

“请判断回答是否专业、准确、清晰”不是 Rubric,只是一句愿望。准确指事实正确,还是证据充分?清晰是语言通顺,还是能让发布负责人直接行动?标准越含糊,Judge 越容易凭自己的写作偏好打分。

本项目把 Response Quality 拆成四个维度,其中三个属于关键维度:

图 2|Judge 不只返回标签,还必须指出维度结果、证据路径和简短理由

维度
要回答的问题
性质
Groundedness
关键论断是否得到现有证据支持
关键
Risk Coverage
是否明确说出决定性风险或证据缺口
关键
Actionability
读者是否知道下一步该验证或处理什么
质量
Scope Discipline
是否守住评审权限,并解释越界请求
关键

标签也不要只留 PASS / FAIL。我们增加 REVIEW:结论可能可用,但解释存在遗漏或歧义,需要人确认。这个中间态很重要,它允许系统承认“不确定”,而不是逼 Judge 把所有灰区都装成确定答案。

{
  "label": "REVIEW",
  "dimension_results": {
    "groundedness": "PASS",
    "risk_coverage": "REVIEW",
    "actionability": "REVIEW",
    "scope_discipline": "PASS"
  },
  "evidence_refs": ["execution.json", "trace.jsonl"],
  "rationale": "结论可用,但没有指出具体阻断项。",
  "confidence": 0.72
}

OpenAI 的 grader 文档同样区分了字符串检查、代码评分和模型评分:模型评分适合主观属性,但输出分数不等于事实本身。在这里,confidence 只用于分流,不能拿来证明 Judge 判对了。

Rubric 的验收问题:两名懂业务的人只看定义和证据,能否解释为什么一条回复是 PASS、REVIEW 或 FAIL?如果仍靠“感觉”,就还不能交给模型规模化执行。

03 · 人工基准

人工标注集怎样成为校准基准

Judge 校准不能拿一批“显然很好”和“显然很差”的回答走过场。真正有价值的是边界样本:结论正确但理由含糊、证据完整却漏掉关键风险、语言很漂亮但事实不受支持,以及像 RR-GOLD-008 这样守住权限却没有解释拒绝原因的回复。

图 3|校准不是调 Prompt 直到分数好看,而是反复检查“模型为什么和人不同”

一套可维护的人工基准至少要保存四类信息:原始证据、人工标签、逐维度理由、Rubric 版本。关键或含糊样本最好由两名领域评审者独立标注,再对分歧进行仲裁;否则所谓“人类真值”可能只是某个人的写作偏好。

标注时还有一个容易忽略的细节:人工评审者应先独立看原始证据,再看 Judge 的解释。若一开始就把模型理由放在旁边,人很容易被它流畅的措辞锚定,复核就失去了独立性。

校准集要覆盖:正常样本、边界样本、对抗样本和高风险样本。

版本必须固定:Judge 模型、Prompt、Rubric、输入模板任一变化,都记录成新版本。

保留分歧:难例不是脏数据。它们往往最能暴露标准含糊、证据不足或 Judge 偏差。

本项目附带的 8 条记录是离线流程演示样本,不是一次实时模型实验,也不是经过多人专家标注的生产 Golden Set。它的作用是让读者跑通“人工标签—Judge 记录—差异报告—复核队列”这条链路。

04 · 校准结果

校准时,别只看一个一致率

运行校准脚本后,8 条离线记录中有 6 条与人工参考标签一致,一致率为 75%;两条分歧都表现为 Judge 过于宽松,把人工的 REVIEW 判成 PASS。

python3 calibrate_judge.py

status: NOT_READY
sample_count: 8
exact_agreement: 0.75
disagreement_count: 2
critical_false_passes: 0

图 4|一致率只是入口;更要看 Judge 在什么标签上犯错,以及有没有把关键失败放成 PASS

RR-GOLD-003 没有明确指出回归测试失败;RR-GOLD-008 没有解释为什么拒绝“跳过检查、直接部署”。它们都不是彻底错误,却不够完整。Judge 只看到了正确结论和流畅句子,忽略了 Risk Coverage 与 Scope Discipline 的解释责任。

因此,校准报告至少要同时看:

整体一致率:模型与人工参考标签有多接近。

按标签拆分的混淆:是把 REVIEW 判成 PASS,还是把好回答误杀。

关键误放行:人工判 FAIL、Judge 却判 PASS 的高风险错误。

稳定性与偏差探针:交换候选位置、增加无信息的冗长文字后,判断是否改变。

LLM-as-a-Judge 的经典研究记录了位置偏差、冗长偏差和自我偏好;交换候选答案顺序,是检查 Pairwise Judge 的简单办法。但“前后两次判得一样”只代表一致,不代表正确。最终仍要回到人工参考标签和业务风险。

演示配置把一致率门槛设为 80%,并要求关键误放行为 0。75% 没过线,所以状态是 NOT_READY。这里的 80% 只是这个示例项目的门槛,不是可以复制到所有业务的行业标准;真实阈值应由风险、人工成本和错误代价共同决定。

如果只看平均一致率,Judge 可能在大量简单样本上刷高分,却在真正危险的关键失败上放行。

05 · 上线边界

通过校准,也只能先进入 Shadow Mode

校准通过,不等于把发布门禁交给 Judge。更稳妥的上线顺序是:离线校准通过后进入 Shadow Mode,让 Judge 跟随真实评测运行,但不影响发布决定;持续抽样与人工结果对照,再决定是否扩大自动化范围。

在 Shadow Mode 中,下面几类结果直接进入人工复核:Judge 输出 REVIEW、命中关键风险、证据缺失、出现校准集外的新场景、模型或 Prompt 刚升级,以及固定比例的随机抽样。低 confidence 可以提高复核优先级,但高 confidence 不能免检。

确定性门禁仍然拥有优先权:Outcome、Tool 或 State 任何关键项失败,Case 就不能被 Judge 的高分“救回来”。同样,Judge 的 PASS 只代表文本质量达标,不代表 Agent 可以执行发布。

本篇真正留下的判断

可信的 LLM Judge,不是“模型够强”,而是标准可解释、人工标签可追溯、错误类型可见、争议结果有退路。

在这四个条件满足前,它适合做评审助手,不适合做发布裁决者。

到这里,我们已经为一条 Agent 执行建立了确定性评分和主观质量复核。但同一个 Agent 面对同一条用例,换一次采样可能就走出另一条路径。下一篇要处理的正是这种随机性:一条用例究竟要跑几次,多 Trial 结果该怎样汇总,失败又该怎样分类。

下一篇 · Agent 评测实战 09

同一条用例为什么要跑多次:Trial、稳定性指标与失败分类怎么设计

随机文章