负责任地用 LLM 当评审:在让 AI 给任何东西打分之前,先过一遍这份清单
「LLM 当裁判」(LLM-as-judge)已经悄悄变成了基础设施。我们用一个大模型给另一个模型的回答打分,判断测试到底过没过,给检索增强生成(RAG)的结果打相关性分数,做内容审核,做排序。它便宜、快,吞吐量能到人力完全碰不到的量级。但它同时也是一件测量仪器——而大多数团队部署它的时候,从没验证过这件仪器准不准。在让 LLM 给你任何重要的东西打分之前,先过一遍下面这份实用清单。(背景:我搭了一个小工具,让本地 LLM 充当测试裁判,再拿它的判断和标准答案比对打分;下面有些数字就来自这个实验。)
1. 至少用标准答案测一次
你没测量过的东西,就管不住。先准备一批你能确定正确判定的样本(标注好对/错),让裁判模型跑一遍。重点看三个数字:
- 误放行率(false-pass rate)——在它判为通过的所有结果里,实际有多少是错的?(这是最危险的方向。)
- 漏检率(miss rate)——在真正有问题的结果里,它放过了多少?
- 误报率(false-alarm rate)——它多久会把好的结果判错?(这是让人烦的方向。)
在我那次测试里,一个能力不错的开源模型漏掉了 26% 的错误输出——也就是说,四分之一的真实失败被它放行了。在依赖它之前,得先拿到属于你自己任务的那个数字。
2. 光看准确率不够,还要看置信度校准
让裁判给一个置信度,然后检查这个置信度到底有没有意义。一个校准良好的裁判,说「90% 确定」时,就该有大约 90% 的概率是对的。用期望校准误差(Expected Calibration Error,ECE)来衡量。
常见的毛病是:模型过度自信。我那次实验里,它几乎每次判断都报出接近 100% 的置信度——连判错的时候也一样(ECE ≈ 0.31)。如果置信度永远是「非常确定」,那它就不带任何信息量,你也没法靠它把难题转给人工处理。
3. 把所有变量固定住,做好版本管理
一个模型、提示词或温度会漂移的 LLM 裁判,就像一把长度会变的尺子。要固定住这些:
- 确切的模型(以及版本)
- 提示词模板
- 温度(打分用 0——你要的是确定性,不是创造力)
开放权重模型在这方面有优势:你可以锁定一个本地模型,确定它不会在你脚下被换掉。而托管端点可能被悄悄替换掉。
4.
留意 LLM 评判员已知的那些偏见——这些偏见都已被反复复现:
- 位置偏见(Position bias):在成对比较中,它偏爱第一个(或最后一个)选项。缓解办法是两种顺序各跑一遍,再取平均。
- 冗长偏见(Verbosity bias):答案越长分越高,不管内容对不对。
- 自我偏好(Self-preference):模型倾向于偏爱看起来像自己写的输出。
- 宽松偏见(Leniency):不少评判员拿不准时就默认给个 “PASS”。
如果你的评测结果会决定排行榜名次或发布决策,那这些偏见就成了你的偏见。
5. 别让它成为唯一的关卡
安全的做法不是「评判员说了算,直接发布」,而是:
- 把评判员当作成本很低的初筛,而不是最终裁决。
- 在抽样上保留标准答案兜底——持续抽查评判员,而不是只查一次。
- 低置信度或高风险的案例,交给人工或更强的检查手段。
- 把 PASS 理解为「大概没问题」,而不是「已验证」。