怎么判断一个模型发布之后是不是变差了

模型上线之后有没有悄悄变差,这个问题很难回答。采样参数固定不了,思考过程也关不掉,同一个问题问两次拿不到同一个答案。一个开源基准项目的做法是把能固定的全部固定,剩下交给统计设计。它每天跑同一套题,连续跑三十天,只回答一个问题,同一型号的模型在发布周之后的表现是否发生了可检出的变化。

题目先筛一遍

题目不是随便挑的。项目先用四个样本筛掉模型总对或总错的题。一个总是答对的题不可能显示下降,跑它只是浪费配额。这一步从 2,336 道候选里留下模型有时对有时错的题,最后 78 道组成题库。筛选本身带偏,模型在筛选样本上的通过率是 54.7%,在新样本上重新测是 62.0%。功效计算用新样本的数字,不用筛选样本的数字。这一步最容易被跳过,也最要紧。

让工具链不成为变量

模型不可复现,就把其余全部固定。提示词冻结,命令行界面版本写进文件,运行器发现版本不一致就拒绝启动,另外留一份更新器碰不到的二进制副本。每次调用都是一轮、无工具、无配置文件、固定空工作目录。代码类题目在模型外面判分,模型本身不执行任何东西。原始日志用评测框架的原生格式只追加,不改不删。统计方法沿用公开的误差棒方法,配对逐题差分加聚类标准误。判断规则预先写死,连续两个十天窗口的 99% 区间都不含零,效应至少三个点,对照组没有同向变化。零结果和改善一样发布。

预算也要管。基准按订阅套餐的用量表计费,跑之前先看百分比余量,周用量到七成五、五小时窗口到六成,当天就跳过,改成每小时重试。题库还要审一遍。审计在 78 道题加后来排除的两道里,找出八个答案键可疑、三十道表述模糊。这些题一道没删,按预注册的敏感性分析复算。安全分类器有时会代替模型回答,或直接拒答生物和数学题,这些样本被拒收并计数,涉及的题目排除。

对照组回答另一个问题

分数变了,可能是模型变了,也可能是平台或工具链变了。项目让一个上一代型号每天跑同样的题。两个型号同向移动,问题大概出在 harness 或服务侧。验证环节先给一次已知的降级,确认这套装置看得见它,再做 A/A 检查误差棒是否诚实。

它看得见什么,看不见什么

按目前的采样量,一天跑完整套题可以在一个十天窗口里检出大约 7.5 个百分点的变化,代价是周配额的百分之三点几。输出 token 数是比准确率更灵敏的信号,推理长度一缩,token 数先动。它的上限也很清楚。把上一代型号换掉,在验证样本量内与当前型号区分不开。它测的是通过订阅客户端拿到的模型,不是接口里的原始模型。发布周只是一个参照点,不是真相,新上线的服务栈和容量压力都可能让第一周偏低。

自己要搭一套时的要点

先固定工具链和版本,再谈统计。题库只留有分辨力的题,筛选偏要用新样本校正。判断规则在拿到数据之前写下来,并留下时间戳。留一个对照组。原始日志当成不可变数据保管。

常见问题

跑三十天会不会太慢?

看要检出的幅度。十天的窗口大致对应七到八个百分点,更小的变化需要更长的序列或更高的日采样率。只想看趋势,日采样一次已经够用。

为什么不用模型当裁判?

裁判自己也会漂。这套基准全部用精确匹配,代码题把测试放在沙箱里跑,判分函数不调模型、不做网络请求。

换到接口就白做了吗?

不用重来。模型字符串是唯一和订阅套餐绑定的东西,换过去只改这一处,题、判分和分析都不动。