7.6 分数的误差棒:这个差距是真的吗
一个每天都在发生的错误
你的评测集跑完了。旧版本 72 分,新版本 75 分。
+3 分,改进有效,上线。
这个判断有很大概率是错的——而且错的方式很具体:如果你换一批题重跑,名次完全可能翻转。
原因不是评测集造得不好,而是一件更根本的事:
评测不是「测量」,是「抽样」。
你的 100 道题,是从「用户可能问的所有问题」这个无限大的池子里抽出来的一小把。抽到的这把恰好偏容易或偏难,都会让分数上下浮动。你量到的从来不是真实水平,而是真实水平加上一层抽样噪声。
物理实验里没人敢报一个不带误差棒的测量值。评测该用同一个标准。
亲手看看这层噪声有多厚
请按顺序做四个实验:
实验 ①:看默认状态。 100 题、72 分 vs 75 分。看那两根误差棒——它们重叠了一大半。差值的 95% 置信区间是 −9.2 ~ +15.2 个百分点,跨过了 0。意思是:「新版本更好」和「新版本更差」这两 种可能,你手上的数据一个都排除不掉。
实验 ②:把题目数量往右拖。 看误差棒怎么收窄。注意收窄的速度——题目翻 4 倍,误差棒只缩一半(因为它按 走)。这是评测最讨厌的经济学:精度每提高一倍,成本要翻两番。
实验 ③:拖到 1000 题,再看。 区间收到了 −0.9 ~ +6.9——还是跨 0。一千道题,仍然判不出 3 个百分点的差距。多数团队的评测集远小于这个数,却在为 1~2 分的波动开会。
实验 ④:点「配对:考同一批题」。 区间立刻从 −9.2 ~ +15.2 收到 −7.0 ~ +13.0,所需题量从约 3400 降到约 2300。什么都没多做,只是让两个模型考了同一批题。
配对为什么白赚
实验 ④ 那个收益值得单独说,因为它是这一节唯一「不花钱」的一招。
假设你的评测集里混着一道特别难的题和一道特别水的题。如果两个模型各考各的(各抽 100 题),A 可能多抽到几道水题、B 多抽到几道难题——这份运气差异全部算进了它们的分差里。
而如果两个模型考同一批题,题目的难易对两边同时起作用。做差的时候,这部分共同的波动被抵消掉了。剩下的才是模型之间真正的差异。
经验上,配对设计能让差值的方差降低约三分之一——换算成成本就是同样的结论少考三分之一的题。
推论也很实用:别拿「我们上个月测的 72 分」和「今天测的 75 分」比,除非两次用的是同一批题、同一套判分逻辑。跨批次比较等于放弃了配对带来的全部好处,还额外引入了评测集本身变化的干扰。