用 gpt-4o 做裁判给两版回答打分,A 版简洁 80 字,B 版 400 字但信息更少,跑了 200 条后 B 平均高 0.7 分,人工复核认为 A 更好。

一开始怀疑是「打分档位描述里完整与简洁两条互相冲突」,查了一圈,方向不对。

原因不止一个,得分开看。评分提示里没有约束长度,裁判把篇幅当成详尽。也可能是参考答案本身很长,短答案被判覆盖不足。

不容易想到的是,单次绝对打分,没有做成对比较。

量化长度与分数的相关性

python -c "import pandas as pd;d=pd.read_csv('judge.csv');print(d[['len_a','score_a']].corr())"

评分提示里加与长度无关的硬约束

python judge.py --prompt rubrics_v2.txt --pairwise

随后改成成对比较并随机换序

python judge.py --pairwise --shuffle-order --n 200

等前面都确认过,再抽三十条人工复核校准

python sample_review.py --n 30 --out review.csv

改完先别撤,确认这几项。长度与分数的相关系数降到 0.2 以下,成对比较的一致率与人工复核超过 0.8。

裁判的偏好是提示词写出来的,不加约束它就会奖励篇幅,成对比较比绝对打分稳。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189