这篇学完你能回答什么
- LLM-as-Judge 是什么?它自己有哪些偏差,各自有多大?
- 怎么校准一个 judge?校准集要多少条、看什么指标才算合格?
- 什么场景绝对不该用 judge,该用什么替代?
从一个真实故障讲起
一个营销文案生成功能改了一版 prompt,团队想验证新版是不是更好。做法很标准:拿 200 条真实需求,新旧两版各生成一次,用一个大模型做成对比较(pairwise comparison)——「下面是同一需求的两个文案,哪个更好?」
结果:新版胜率 68%。团队发了。
两周后业务侧反馈,这个位置的点击率掉了 9%。复盘会上有人做了一件很随手的事:把 A/B 的呈现顺序对调,用同一批数据重跑了一遍。
新版胜率变成 41%。
新版放在前面时它赢,放在后面时它输。judge 真正在评的,有很大一部分是「谁排在前面」。
再往下查还叠了第二层:新版文案平均比旧版长 40%(改 prompt 时加了「补充一句行动号召」),而 judge 在判据不明确时系统性偏好更长的答案。位置偏差和冗长偏差同向叠加,把一个实际更差的版本推成了 68% 的胜率。
复盘时一个同事的话最值得记住:「我们花了三周校准被评的模型,花了零分钟校准评的那个。」
改了一版文案 prompt
加了「补充一句行动号召」
大模型成对比较断点
只按一个呈现顺序评了一遍
新版胜率 68%,发了
做法很标准,没人觉得有问题
点击率掉 9%
两周后业务侧反馈
把 A/B 顺序对调
同一批数据重跑,胜率变 41%
核心概念:先打比方,再给定义
打比方:LLM-as-Judge 不是一把尺子,是一个新招来的评委。
你不会因为他口才好就让他判终审。你会先拿一批已有定论的卷子给他判,看他准不准、在哪类题上偏、和资深评委一致率多少。judge 唯一的合法上岗方式,是先被人评一遍。
术语(首次出现,中英对照 + 人话):
- LLM-as-Judge(大模型判分 / 模型评委):用一个大模型给另一个模型的输出打分或排序。人话:让 AI 批 AI 的卷子。
- 判据 / 评分细则(rubric):告诉 judge「什么算好」的那段文字。人话:批卷标准。
- 位置偏差(position bias):成对比较的结果受呈现顺序影响。人话:谁写在前面谁占便宜。
- 自我偏好(self-preference / self-enhancement bias):judge 偏袒和自己同源的输出。人话:给自家孩子打高分。
- 冗长偏差(verbosity bias):更长的答案更容易被判为更好。人话:话多显得有理。
- 一致性系数 κ(Cohen's kappa):两个评判者的一致程度,扣掉「瞎猜也能蒙对」的部分。人话:judge 和人有多像,且不算运气分。
judge 有三种形态,代价和用途完全不同:
| 形态 | 做什么 | 适合 | 主要毛病 |
|---|---|---|---|
| pointwise 单条打分 | 给一条输出打 0/1 或 1–5 | 门禁、线上监控 | 分数漂移,跨版本不可比 |
| pairwise 成对比较 | 两条里选一条更好的 | 选型、排序、A/B | 位置偏差;成本 ×2(要正反各评一次) |
| reference-based 对参考答案判 | 对着标准答案判命中/忠实 | 有标注的回归 | 需要标注;只能判「像不像参考」 |
口才好,不代表他判得准
你却已经拿他的分在决定发不发 —— 而没人评过他
输出是对某条判据的预测
既然是预测,它就有准确率、偏差、漂移和版本 —— 它也会错,也会漂
看他准不准、在哪类题上偏
以及他和资深评委的一致率是多少
先被人评一遍,才谈用它的分
人工标注的校准集、一个一致性指标、一个钉死的版本号 —— 缺任何一样,分数就不能当决策依据
原理拆解
| κ | 含义 | 该怎么办 |
|---|---|---|
| < 0.40 | 判据本身有问题 | 重写 rubric,别调 judge |
| 0.40 – 0.60 | 勉强可用 | 只能看趋势,失败样本必须人工兜底 |
| 0.61 – 0.79 | 好 | 可上线,但要持续监控 |
| ≥ 0.80 | 很好 | 可以进 CI 当自动门禁 |
第 ② 步最容易被跳过,也最能救命。两个标注者对同一条判据的 κ 只有 0.45,那不是 judge 的问题,是判据没定义清楚 —— 此时怎么调 judge prompt 都是白费。
swap 不消除偏差,它把偏差暴露成「平局」。正反各评一次能把准确率从 80.0% 提到 87.8%,代价是成本翻倍、外加一批要人工裁决的不一致对。而那批不一致对正是最好的判据诊断样本:judge 在哪摇摆,判据就在哪没写清。
一、第一件要接受的事:judge 是一个分类器
judge 输出的不是「真相」,是一个模型对某条判据的预测。既然是预测,它就有准确率、偏差、漂移和版本。
被评系统 judge
输入 ──► 输出 ──────────► 分数 ──► 决策(发不发 / 好不好)
▲
│ 这里也是一个模型,
│ 它也会错,也会漂,
└─ 而且没人测过它冻结口径:任何 LLM-as-Judge 上线前必须具备三样——人工标注的校准集、一个一致性指标(κ 或 TPR/TNR)、一个钉死的版本号。缺任何一样,它的分数不能当决策依据。
二、偏差谱系:不是「听说有」,是有量表的
CALM 基准(Justice or Prejudice,arXiv 2410.02736)对 12 类偏差给出了鲁棒率(1.0 = 完全不受影响)。以当时最强的两个 judge 为例:
| 偏差类型 | 人话 | GPT-4-Turbo | GPT-4o |
|---|---|---|---|
| 位置 | 换个前后顺序结论就变 | 0.818 | 0.776 |
| 从众 bandwagon | 告诉它「80% 的人选 A」 | 0.638 | 0.791 |
| 情感 sentiment | 语气自信/讨好的答案占便宜 | 0.653 | 0.699 |
| 权威 authority | 编一个不存在的引用就能抬分 | 0.729 | 0.790 |
| 干扰 distraction | 塞进无关信息就改判 | 0.846 | 0.787 |
| 冗长 | 长答案占便宜 | 0.915 | 0.977 |
| 自我增强 | 偏袒自己(该测法下按错误率计) | 1.16% | 1.74% |
三条人话结论:
- 位置偏差量级最实在:约 1/5 的判断会随顺序改变。开篇的 68% → 41% 不是极端案例,是这个量级的自然后果。
- 从众和情感的鲁棒率只有 0.65 左右,比位置偏差更糟。意味着判据里千万不能出现「大多数用户偏好 A 风格」这类引导语,也意味着语气笃定但内容错误的答案,比语气谨慎但正确的答案更容易赢。
- 冗长偏差反而相对可控——判据里写一句「简洁不加分也不减分,只看是否覆盖要点」就掉得很快。真正难治的是那些你没写进判据的维度。
关于自我偏好,另有一份 2026-04 的专项研究(arXiv 2604.22891)用「等质量对」构造法,在 20 个主流模型 × 100 题上把 judge 分成四类:客观型 / 马基雅维利型(有能力分辨却系统性偏袒自己)/ 无能随机型 / 反向偏见型。关键工程结论是:把「整体打一个分」换成按维度的成对强制选择,在高偏差模型上平均降低自我偏好 31.5%,不需要重训。
注意这两份研究的量级并不一致(CALM 测出自我增强错误率只有 1–2%,专项研究测出显著偏差)。方向一致、量级取决于测法。 所以正确态度不是背数字,是用你自己的标注集测你自己的 judge。
三、位置偏差为什么「消不掉」
标准做法是 swap-and-average:同一对答案,正序评一次、逆序评一次,两次一致才算数。
它确实能提准确率(公开实验里 80.0% → 87.8%),但要看清它的真实机制:
正序判 A 胜 ┐
├─► 两次一致 ──► 采信
逆序判 A 胜 ┘
正序判 A 胜 ┐
├─► 两次矛盾 ──► ???
逆序判 B 胜 ┘swap 不消除偏差,它把偏差暴露成「平局」。 代价两条:评测成本直接翻倍;产生一批需要人工或第二 judge 裁决的不一致对。
分水岭就在这里:
- 「judge 有位置偏差」→ 读过博客
- 「所以我们做了正反互换取平均」→ 读过论文
- 「互换之后不一致的那批才是重点。我们把它单独捞出来人工看,结果发现是判据里两条标准互相打架——一条要求『简洁』一条要求『覆盖全面』,judge 在两者冲突时随机倒向一边,而顺序决定了它先看到谁。」→ 真做过
最后这句点出一件重要的事:不一致对是最好的判据诊断工具——judge 在哪些样本上摇摆,就说明判据在哪里没写清楚。
四、【本篇最关键】judge 只在「有参照物」时可靠
这条比所有偏差都重要:它决定 judge 能不能用,而不是用得准不准。
| 评测目标 | 参照物在哪 | judge 可靠吗 |
|---|---|---|
| 忠实度 / 有据性(有没有超出给定来源) | 就在 prompt 里——源文档和答案一起给它 | 可用,本质是文本蕴含判断 |
| 格式与结构合规(有没有分点、有没有引用编号) | 在判据里,可枚举 | 可用,但更该用代码判 |
| 客观正确性(这件事是不是真的) | 不存在——judge 得自己「知道」 | 不可用 |
第三行是重点。让一个模型去判另一个模型说的是不是事实,你只是在测两个模型的知识重合度——本质是把幻觉问题转嫁给另一个会幻觉的模型。两个模型共同不知道的事,judge 会自信地判「正确」。
客观正确性只有两条合法路径:事先标好的金标准,或可执行的验证(跑代码、查库、调 API 拿真值)。 这正是 Q1-05 埋下的口径:「对来源忠实」和「客观正确」是两个难度完全不同的评测目标。
五、判据形态:最差的是「一个 1–5 的总体质量分」
这里有一处真实的分歧,值得如实写出来:
- Anthropic 官方指引倾向:judge 输出离散值(correct/incorrect 或 1–5),判据具体到可证伪(「答案必须在第一句提到 Acme Inc.,否则直接判错」),并先推理再打分、然后丢掉推理。
- 实践派主流主张:只用二元 pass/fail。理由是相邻刻度差异高度主观,3 分和 4 分的边界连人类标注者之间都对不齐,κ 自然上不去。
这两条的分歧点其实是「这个分数要去做什么决策」:
要做门禁(二元决策:发 / 不发)
→ 用二元判据。把复杂性放进「多个二元维度」,不是「一个连续分数」
是否有据(0/1)|是否覆盖必答要点(0/1)|是否越界(0/1)
综合质量 3.7 分
要做排序(挑最优、选型)
→ 才需要有序刻度;而且此时应该用 pairwise,不是 pointwise 打分最差的形态是「一个 1–5 的总体质量分」:既做不了门禁(3.6 和 3.8 差在哪没人说得清),又不可比(judge 一换版本整体漂移)。它唯一的作用是让看板上有个数字在动。
六、校准流程(五步,可直接背)
① 抽样 从真实流量分层抽,覆盖各失败类别,不要只抽典型样本
② 人工标注 按每条判据独立标注,二元优先;至少两个人标一部分,先测人和人的一致率
③ 跑 judge 同一批样本跑一遍,逐判据比对
④ 算指标 κ(整体 + 逐判据);类别不平衡时必须同时看 TPR 和 TNR
⑤ 改判据 针对 κ 最低的那条改写、补例子、或拆成两条 → 回到 ③
经验值:改 2~4 轮才能把 κ 顶到 0.8第 ② 步的「先测人和人的一致率」最容易被跳过,也最能救命。 两个标注者对同一条判据的 κ 只有 0.45,那不是 judge 的问题,是判据没定义清楚——此时怎么调 judge prompt 都是白费。
工程实践(截至 2026-08)
κ 的验收阈值(沿用 Landis & Koch 传统,AWS 示例仓采用同一套)
| κ | 含义 | 该怎么办 |
|---|---|---|
| < 0.40 | 判据本身有问题 | 重写 rubric,别调 judge |
| 0.40 – 0.60 | 勉强可用 | 只能看趋势,失败样本必须人工兜底 |
| 0.61 – 0.79 | 好 | 可上线,但要持续监控 |
| ≥ 0.80 | 很好 | 可以进 CI 当自动门禁 |
校准集要多少条:由「它替你做多大的决策」决定
| judge 的用途 | 校准集规模 | 验收指标 |
|---|---|---|
| 只看趋势(线上监控曲线) | 每判据 20–30 条 | κ ≥ 0.6 即可 |
| 当 CI 门禁(能拦住发布) | 100 条起 | κ ≥ 0.8,且必须报 TPR 和 TNR 两个数 |
| 替代人工验收 / 对外承诺 | 200–500 条,分层抽样 | 另留一份从不参与判据迭代的保留集 |
两条经验值:每条判据低于 10 条标注时,κ 的置信区间宽于 ±0.30,这个数字本身已经没有意义。优先标注人机分歧样本(而不是随机抽)大约能把标注量砍掉一半。
judge 的版本管理(最容易漏、后果最大)
judge 是代码,不是配置。模型、prompt、判据文本,任何一处改动都要升版本号,并和它产出的每个分数绑在一起存。
原因很直接:judge 换版本之后,历史分数全部不可比。 一条从 0.72 涨到 0.81 的质量曲线,如果中间悄悄换过 judge 模型,它什么都不能证明。正确做法是换 judge 时用新 judge 把历史基线重跑一遍,两条曲线并排画。judge 也会自己漂(上游模型静默升级、判据被顺手改了一句),约每季度重校准一次是当前的通行节奏。
成本
judge 是一次额外的模型调用。离线门禁全量跑可以接受;线上监控必须采样——基线约 2%,高风险/刚改过的路由提到 20%,并且必须异步、不在关键路径上。用小模型做 judge 是 2026 的主流省钱手段,但换小模型必须重走一遍校准——判据越主观,小模型掉得越多。
三段式
| LLM-as-Judge | |
|---|---|
| 解决什么 | 无标准答案场景下的自动化打分,把人从每一次回归里解放出来 |
| 代价是什么 | 引入一个自己会错、会漂、有系统性偏差的评判者;每条样本多一次模型调用;judge 版本一换,历史分数全部作废 |
| 什么时候不该用 | ① 能用代码判的(JSON 合法性、数值区间、有没有调过某个工具、是否命中关键词)——承接 Q3-19「能代码判的用代码判」;② 判客观正确性(没有参照物);③ 需要绝对分数对外承诺或当团队 KPI 的场合——那会立刻催生对着 judge 优化的行为 |
避坑清单
- 判据里不要出现引导语。 「大多数用户更喜欢简洁的表达」这种句子会直接触发从众偏差(鲁棒率 0.638)。
- 成对比较一定要匿名化。 别把「新版 / 旧版」「我们的 / 竞品的」写进 prompt。
- 别用同族模型评自家输出,或至少交叉验证一次。但要清楚:换 judge 家族是止痛药,测量才是解药。
- 别让 judge 同时判五个维度输出一个总分——拆成五个独立的二元判断,每个单独算 κ,并让它带上理由,方便在 κ 掉时定位。
| 形态 | 做什么 / 适合 | 主要毛病与点评 |
|---|---|---|
| pointwise · 多个二元维度门禁默认 | 是否有据(0/1)|是否覆盖必答要点(0/1)|是否越界(0/1) | 门禁的正解:把复杂性放进多个二元维度,而不是一个连续分数 |
| pointwise · 1–5 总体质量分 | 给一条输出打一个综合分 | 最差的形态:3.6 和 3.8 差在哪没人说得清,换版本还整体漂移;唯一作用是让看板上有个数字在动 |
| pairwise 成对比较 | 两条里选一条更好的;用于选型、排序、A/B | 位置偏差;成本 ×2 —— 要正反各评一次 |
| reference-based | 对着标准答案判命中 / 忠实;用于有标注的回归 | 需要标注;只能判「像不像参考」 |
- CALM 基准(arXiv 2410.02736)
- 鲁棒率 GPT-4-Turbo / GPT-4o:位置 0.818 / 0.776,从众 0.638 / 0.791,情感 0.653 / 0.699
- 校准集要多少条
- 只看趋势每判据 20–30 条、κ≥0.6;当 CI 门禁 100 条起、κ≥0.8 且报 TPR 和 TNR
- 标注量能砍一半
- 每条判据低于 10 条标注时 κ 的置信区间宽于 ±0.30;优先标注人机分歧样本
- 适用边界
- 判对来源忠实可以(源文档就在 prompt 里);判客观正确性不行 —— 没有参照物
- 版本管理
- 模型、prompt、判据文本任一处改动都升版本号;换 judge 要把历史基线重跑一遍,两条曲线并排画
- 线上必须采样
- 基线约 2%,高风险 / 刚改过的路由提到 20%,且必须异步、不在关键路径上
面试视角
- ① 是什么一句话 + 三种形态(pointwise / pairwise / reference-based)
- ② 有什么问题位置、冗长、自我偏好、从众 —— 给量级,不给形容词
- ③ 怎么治校准五步:抽样 → 人工标注 → 跑 judge → 算 κ / TPR / TNR → 改判据
- ④ 边界能代码判的别用它;判客观正确性不能用它
- ⑤ 工程化版本号、重校准周期、线上采样率、成本
- 「judge 会有位置偏差和自我偏好」—— 只有名词,说不出量级
- 「我们用 GPT 打分,挺准的」——「挺准」没有对照物
- 「让 judge 打 1–5 分取平均」—— 最典型的形态错误
- 判客观正确性也用 judge,没意识到这是把幻觉转嫁了一次
- 「换个更强的模型当 judge 就行」—— 把校准问题当模型问题
- 说得出自己 judge 的 κ 是多少、在多少条标注上算的、哪条判据最低
- 「把『专业』拆成『术语正确』和『不臆造数字』之后 κ 从 0.52 到 0.81」
- 拆成多个独立的二元判断,每个单独算 κ,并让 judge 带上理由
- 主动区分「对来源忠实」和「客观正确」,并说明后者为什么不能交给它
- 提到 judge 版本号和历史基线重跑 —— 生产里被坑过的人才会说
面试官会怎么问
- 「LLM-as-Judge 是什么,你们用过吗?」(送分题)
- 「它自己有什么偏差?」(第一刀:说不说得出具体哪几种、量级多大)
- 「怎么校准?」(第二刀:有没有人工标注集和一致性指标)
- 「什么情况你不会用 judge?」(第三刀,最能区分的一刀)
答题结构建议
① 是什么 一句话 + 三种形态(pointwise / pairwise / reference-based) ② 有什么问题 位置、冗长、自我偏好、从众——给量级,不给形容词 ③ 怎么治 校准五步:抽样 → 人工标注 → 跑 judge → 算 κ/TPR/TNR → 改判据 ④ 边界 能代码判的别用它;判客观正确性不能用它 ⑤ 工程化 版本号、重校准周期、线上采样率、成本
分水岭信号
暴露只读过:
- 「judge 会有位置偏差和自我偏好」——只有名词,说不出量级,也说不出怎么测出来的。
- 「我们用 GPT 打分,挺准的」——「挺准」没有对照物。
- 「让 judge 打 1–5 分取平均」——最典型的形态错误;「换个更强的模型当 judge 就行」——把校准问题当模型问题。
- 判客观正确性时也用 judge,且完全没意识到这是把幻觉问题转嫁了一次。
证明真做过:
- 说得出自己 judge 的 κ 是多少、在多少条标注上算的、哪条判据最低。
- 说得出判据改过几轮、每轮改了什么(「把『专业』拆成『术语正确』和『不臆造数字』之后 κ 从 0.52 到 0.81」)。
- 主动区分「对来源忠实」和「客观正确」,并说明后者为什么不能交给 judge。
- 提到 judge 版本号和历史基线重跑——几乎只有在生产里被坑过的人才会说。
- 被问「怎么发现位置偏差的」时,能说出「顺序对调重跑一遍」这个五分钟的动作。
小结与延伸
三句话小结:
- judge 是分类器不是尺子。上岗前必须先被人评一遍:校准集、一致性指标、版本号,三样缺一不可。
- 偏差有量表——位置约 1/5 翻转,从众和情感的鲁棒率只有 0.65 左右;swap 不消除偏差只把它暴露成平局,而那批平局是最好的判据诊断样本。
- judge 只在有参照物时可靠。判忠实度可以,判客观正确性不行——那是把幻觉转嫁给另一个会幻觉的模型。
延伸阅读(本教程内):
继续深入
本篇归属第 5 章「评测与可观测」,去做这一章的题。