用 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,评相似度时才给参考答案,两种任务要分开。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
