English version: Validity engineering for LLM-as-judge。“LLM 应用工程”系列第 9 篇。本篇的一手数据来自一个写作判断蒸馏对照实验(实验本身的设计与结论是第 12 篇的主题),全部数字取自该项目的实验日志、运行台账与源码。
问题:评委本身是个没被测量的概率部件
配对评判(pairwise LLM-as-judge)是 LLM 应用质量评估的主流做法:让模型比较 A、B 两稿哪篇更好,统计胜率。它绕开了绝对打分的刻度难题,但引入了一个更隐蔽的问题——评委自己也是概率部件,它的裁决凭什么可信?
这不是假想的风险。我们的实验里真实发生过两次:首轮实验的主评委是 llama-3.3-70b,事后测得它与质量锚的 QWK 只有 0.10——接近随机,整轮实验作废;后一轮里,claude-sonnet-4.6 判 B>A、gpt-4o 判 A>B,同一批稿子两个评委结论相反,汇总裁决只能记“模糊”。如果回答不了“哪个评委可信”,胜率表就只是另一组随机数。
本文把我们收敛出的做法称为效度工程(validity engineering):在消费评委的任何裁决之前,先用独立证据证明评委测的确实是你以为它在测的东西。它由五个机制组成:准入、锚独立性、刻度诊断、偏置控制、上岗验收。
机制一:评委准入——真人分锚与 QWK 门线
准入的做法:让候选评委给一组带质量分的锚文本打分,与锚分算 QWK(Quadratic Weighted Kappa,序数一致性指标)。门线直接写在 qwk_anchor.py 的模块注释里:“≥0.5 → 评判可信,配对胜率结论才值得信;<0.3 → 先回去改 rubric”,0.3–0.5 记“勉强”。
对四个候选评委的实测结果:
| 评委 | QWK | 裁定 |
|---|---|---|
| claude-sonnet-4.6 | 0.55–0.61 | 留任(主评委) |
| qwen3.7-max | 0.571 | 留任(交叉评委) |
| gpt-4o | 0.281 | 淘汰(<0.3 不可信) |
| llama-3.3-70b | 0.10 | 淘汰;其担任主评委的首轮实验整轮作废 |
淘汰不是学术洁癖:gpt-4o 正是上文那次“两评委结论相反”的当事方,剔除它之后,裁决回归了可信评委的判断力本身。但这一轮 QWK 是对合成锚算的——这引出下一个机制,也是整个体系里最贵的一课。
机制二:锚必须独立于被评系统——一次循环自证事故
事故由一句用户质疑触发:“测试数据是不是没代表性?”核查发现,方案指定的三个真实数据集(arXivEdits / peS2o / ASAP)一条都没有下载成功——URL 早已 404、Kaggle 登录从没做、脚本还忽略了系统代理。全程跑在种子与合成兜底数据上:exemplars 13 篇、金标准对 5 对(手编)、合成对 8 对、锚 39 篇——锚分是合成的,不是真人的。
后果是结构性的:所谓“QWK 锚”实际是评委在对齐程序自己的降级规则——循环自证。历史 QWK 0.51–0.61 全部作废,不构成任何真人可信度。值得说明的一个不对称:作废的是“过线”结论;“出局”结论反而站得住——连合成锚的粗糙排序都对不齐的评委,更不可能对齐真人(这是我们的推断,非独立实验)。
修复是把真实数据真正接通:arXivEdits 取 200 对真实专家修订(按 intention 字段筛选写作质量类改写、弃琐碎 typo,中位长度差 27 字符);ASAP 2.0 取 120 篇真人整体分作文(1–6 分每档 20 篇分层采样,保证 QWK 有跨度)。教训一句话:锚必须来自被评系统之外,否则 QWK 度量的是评委与你自己代码的一致性。
机制三:QWK×Spearman 联合诊断——刻度压缩不等于排序失效
真人锚就位后,首个真 QWK = 0.323:模型均分 2.32 vs 人类 3.50,系统性偏严约 1.2 分。多代理调研的诊断是三重根因:偏严刻度错位、genre/rubric 错配(拿物理报告 rubric 打英文议论文)、以及单篇绝对打分这一用法的天花板本就低(项目内调研给出 ASAP holistic 零样本约 0.60 的参考值,未独立核验)。
修因走零/低成本路线:换 ASAP holistic 六档 rubric、删全部“严格”措辞(system prompt 由“严格”改为“校准良好”)、加满量程先验;few-shot 因当前锚数据无 train/eval 切分会泄漏,暂以注释关闭。修前修后:
| 指标 | 修前 | 修后 |
|---|---|---|
| QWK | 0.323 | 0.456 |
| Spearman | — | 0.813 |
| Pearson | — | 0.788 |
| 系统偏移 | -1.18 | -0.87 |
| 模型均分 | 2.32 | 2.63(人类 3.50) |
QWK 仍未过 0.5,但关键发现在另一个数字上:Spearman 0.813 ≫ QWK 0.456。qwk_anchor.py 里的诊断规则一句话概括:“Spearman 高而 QWK 低 → 纯刻度问题(重标定可救);两者都低 → 排序信号本身弱。”混淆矩阵给出实锤——评委从不给 5 或 6 分,人类 5、6 档共 40 篇全被压进 3–4 列。这是一个排序强、打分保守的评委,不是一个瞎打的评委。
结论落在用法上:**配对评判只消费排序(评委强项),不消费绝对刻度(评委弱项)——配对胜率作为主信号有底气;单篇绝对打分不可用。**刻度可经事后单调重标定部分校正,但合法性有三个前置条件(经对抗校验确认):映射单调、用 held-out/CV 报数、参数不跨域迁移——5-fold 复现证明 in-sample 重标定会虚高。且重标定救不了高分段:人类 5 与 6 在评委眼里完全分不开(都打 3/4),这是真实天花板。
机制四:偏置控制——位置交换、身份遮蔽、rubric 罚冗余
LLM 评委有位置偏好(偏爱先出现或后出现的一篇)。对策是协议级的:每对稿子按 (A,B) 和 (B,A) 两个顺序各评一次,两次不一致就记平局,绝不产出伪裁决。核心逻辑四行(eval_judge.py):
sys_ab = _MAP_AB[_one_order(domain, a, b, rubric, cf)] # 顺序① first=A
sys_ba = _MAP_BA[_one_order(domain, b, a, rubric, cf)] # 顺序② first=B
consistent = (sys_ab == sys_ba)
decided = sys_ab if (consistent and sys_ab != "tie") else "tie"
这个设计还顺带产出一个评委质量信号:交换一致率。实测 claude-sonnet-4.6 在 N=30 上交换一致率 93%(28/30),pilot N=8 上 8/8;而 qwen3.7-max 多在 0.2–0.5,其胜率大量由平局构成——协议自动把弱评委的不稳定吸收成 tie,而不是让它污染结论。
另两项配套:身份遮蔽(评委看不到哪篇出自哪条流水线);长度偏置靠 rubric 治而不靠祈祷——评判提示词明确写入“更长不是优点、信息密度低按冗余扣分、实质相当不得因更长而选”。
机制五:重建验收——先判已知强弱对,再判新稿
准入与诊断之外还有最后一道上岗闸门,项目内称“ICAI 式验收”(reconstruction):把已知强弱对(金标准好稿 vs 降级弱稿)交给带 rubric 的评委挑“更好的一篇”,挑对率 ≥0.7(代码常量 GATE_THRESHOLD = 0.7)才允许它评判新稿,同时报告交换一致率。逻辑是朴素的:连已知答案都挑不对的评委,没资格裁决未知。
成本边界也写进了模块注释:每对 ×2 次交换是真实 LLM 调用,会烧 token——所以这道闸门定位在开发/离线侧,默认不进客户实时链路。
全景:评委的上岗流程
绝对打分不可用] D --> E[重建验收:已知强弱对挑对率 ≥ 0.7] E -->|不过| Y E -->|通过| F[上岗:位置交换两评
不一致记平、身份遮蔽、rubric 罚冗余]
适用边界
按惯例,说清楚这套做法的边界,以及它本身没有解决的问题:
- **同族评委的自我偏好必须声明。**我们的主评委 claude-sonnet-4.6 与做 skill 提炼和对抗核查的 Claude Opus 同属一族,实验的“强”结论全部来自这一同族评委,存在“Claude 认得 Claude 式 reasoning”的自我偏好风险。破解只有两条路:非同族第三方评委,或人类锚复核。
- **锚域不等于目标域。**英文锚只证明评委判英文议论文可信,证明不了它判中文物理报告可信——这是外部效度缺口。生产侧移植版的 docstring 把这条告诫写死:配对评委在中文域可靠性未验证,默认不跑实时链路。
- **高分段分辨力未经验证。**Spearman 0.81 主要由中低分区驱动;而配对比较恰恰发生在“两篇都不算差”的区间——评委在该区间的排序能力是一个未单独检验的假设,上端量程塌缩对它是真实威胁。
- **LLM 评委不替代人类锚。**当全部偏好证据来自 LLM 评委时,无法排除 LLM-judge 的系统性偏好;实验的人类盲评(30 对)在写作时仍在采集中,这被诚实地列为最致命局限。
- **可确定性检测的失败模式不要用评委。**丢内容、结构劣化这类问题用零 token 回归门就够(见第 11 篇)——更对,且每轮省一次评委调用。评委只该出现在确定性判据够不着的偏好层。
参考
- arXivEdits——真实专家修订数据集(schema 为
sentence-1/sentence-2+intention);本项目按 intention 筛选写作质量类改写,取 200 对作强弱对。 - ASAP-AES 2.0——英文作文真人整体分(1–6)基准;经 Hugging Face 镜像
jatinmehra/Automated-Essay-Scoring-2.0获取,分层采样 120 篇作可信度锚。 - 一手记录:本文全部数字出自该项目的实验日志与机读运行台账(journal / runs.tsv),QWK 逐篇 (id, human, model) 落盘于
results/qwk_scores.csv以支持复算与重标定。