用 200 条人工标注的评测集对比两版模型,一致率从 88% 掉到 80%,看着像明显回退,换一批 200 条重跑又变成 86%,团队对结论争执不下。

真正麻烦的地方在于,几个原因的现象几乎一样。样本量太小,8 个点的差异在置信区间内;评测集类别分布与线上请求分布不一致;标注本身有歧义,两人标注一致率只有 0.8;两次评测的 prompt 与解码参数不一样。

算差值的置信区间

python -c "import math;p=0.84;n=200;print(1.96*math.sqrt(p*(1-p)/n))"

随后按类别分层统计而不是只看总体

python -c "print({'refund':(30,26),'logistics':(40,39)})"

再往下扩大到 1000 条重跑一次

python -c "print({'n':1000,'delta_ci':0.025})"

固定 prompt 版本与 temperature 再评

python -c "print({'prompt':'v11','temperature':0})"

这类改动我都写进变更记录,过两周再出问题时能对上号。

改完先别撤,确认这几项。1000 条评测下两版差值缩小到 2 个点以内且置信区间跨零,分层结果没有单类崩塌。

提醒一点。小样本评测只能看方向不能下结论,先把样本量补到能覆盖类别的最小规模,再谈模型好坏。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189