用 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 个点以内且置信区间跨零,分层结果没有单类崩塌。
提醒一点。小样本评测只能看方向不能下结论,先把样本量补到能覆盖类别的最小规模,再谈模型好坏。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
