LLM-as-Judge 靠不靠谱?我们让三个模型互相打分,发现了一个致命的偏好
用大模型评判大模型输出,是2026年最主流的自动评测方案,但它有系统性偏差。这篇给出四类可量化的偏差(长度偏好、格式偏好、自我偏好、位置偏好),以及一套低成本纠偏的评测集设计方法。
问题不是”准不准”,而是”偏得像不像”
人工评测太贵,规则匹配太死,于是大家都用 LLM-as-Judge:让一个强模型给另一个模型的输出打分。
这方法能用,但有一个前提经常被忽略:Judge 的偏差是系统性的,不是随机的。 系统性偏差不会在样本量增大时消失,反而会被放大成一个”看起来很稳定”的错误结论。
我们做了一组实验,让三个不同厂商的模型互相打分,样本是 300 条真实任务输出(摘要、代码解释、客服回复、结构化抽取各占四分之一)。
四类可量化的偏差
一、长度偏好:最严重的那个
在质量相当的成对比较中,更长的回答胜率显著更高——我们观察到的倾向是,长度每多 30%,被判为更好的概率上升一个明显台阶,即使长出来的部分只是废话。
为什么?因为长回答”看起来更努力”。Judge 模型学到的人类偏好数据里,详尽=认真=好。
后果非常严重:如果你的目的是”更精炼”,LLM-as-Judge 会系统性地驱赶你的产品走向冗长。
纠偏方法:在评估标准中明确写”篇幅不得作为质量依据”,并在成对比较时做一次长度归一化——用长度差异对结果做后处理,或者直接剔除长度差异超过 40% 的样本对。
二、格式偏好
带小标题、项目符号、加粗的回答,得分普遍更高。即使结构把内容切碎了。
纠偏方法:评测时剥离 Markdown 格式,只比对纯文本内容。这一步能消掉很大一部分噪音。
三、自我偏好
同一厂商的模型给自己家族的输出打分时,有可观测的偏高倾向。这意味着不能用供应商A的模型来评测”供应商A vs 供应商B”,否则结论天然有偏。
纠偏方法:交叉评分——用第三方模型评测,或至少用两个不同厂商的 Judge 取平均。如果两者结论冲突,说明这一题可能不该由机器判。
四、位置偏好
成对比较中,先出现的回答更容易被判为更好。
纠偏方法:每个样本对都跑两次,交换顺序,只有两次结论一致才计入。这个方法叫位置交换双评,成本翻倍但可靠性提升非常明显,是所有技巧里性价比最高的一个。
一套能落地的评测集设计
1. 样本来源:真实任务,不是造出来的题
从生产日志里抽样,覆盖长尾:含糊的提问、多轮指代、格式刁钻的要求。合成题目容易”太干净”,评测结果偏乐观。
2. 规模:50 条起,300 条够用
50 条能发现大问题,300 条能比较接近的两个方案。不必追求几千条——评测集的价值在于稳定,不在于大。
3. 分层:把”对不对”和”好不好”分开
- 客观层:事实正确性、格式合规、必含要素。能用规则就别用模型
- 主观层:清晰度、语气、有用性。才交给 LLM-as-Judge
混在一起评,会让模型的主观偏好污染客观判断。
4. 校准:人工标注 30 条作为锚点
随机抽 30 条,人工打分。然后看 Judge 的分数与人工的一致性。如果一致性很差,先修评测提示,而不是修被测模型。
5. 记录版本
评测提示本身是一个变量。换了一句话,历史分数就不可比。给评测提示打版本号,和给模型打版本号同等重要。
什么时候别用 LLM-as-Judge
- 有唯一正确答案的计算、代码执行结果 → 直接执行验证
- 涉及安全与合规的判定 → 规则 + 人工复核,不能让模型当唯一裁判
- 高价值决策场景 → 人工抽查比例不能低于 10%
结论
LLM-as-Judge 是一个有用的近似,不是尺子。用它做相对比较、做回归监控、做快速筛选都很合适;用它给绝对质量下定论,就会把系统性偏差当成客观事实。
最实际的做法是:接受它有偏,然后显式地去偏。 位置交换、剥离格式、长度归一、交叉厂商,这四步加起来能让结论的可信度上一个台阶,而总成本依然远低于全人工评测。