用 gpt-4o 当裁判评 4 个模型的回答,prompt 里附了 ground_truth,结果所有模型平均分从 3.6 涨到 4.3,模型之间的差距几乎消失。

一开始怀疑是「评分 rubric 太宽,缺少扣分项」,查了一圈,方向不对。

原因不止一个,得分开看。看到参考答案后裁判倾向判断相似度而不是正确性。也可能是长答案更容易拿高分,长度偏差被放大。

少数情况下是裁判与被测模型同源,存在自偏好。

去掉参考答案只保留 rubric 再跑一轮

python judge.py --no-reference --rubric rubric.md --out scores2.json

接着把答案顺序打乱做位置对照

python judge.py --shuffle --n 2 --out scores3.json

随后改成两两对比而不是绝对打分

python pairwise_judge.py --pairs pairs.json --out wins.json

计算两次评分的一致性

python -c "import json;print(json.load(open('scores2.json'))['agreement'])"

那几天正好在做别的变更,先把时间线对齐才敢动手。

恢复的判定其实很直接。去掉答案后各模型分数拉开到 0.8 分以上,两次评分的排序相关系数超过 0.9。

补一句。裁判看到标准答案就会往相似度上靠,评正确性时只给 rubric,评相似度时才给参考答案,两种任务要分开。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189