模型横评怎么做才不算耍流氓
模型对比的文章很多,但大多数只给结论不给方法。下面四个地方,是最容易在无意或有意中做出「好看但不真」的结果。
一、题目集:来源决定结论
如果题目集来自某个模型的训练数据分布,那个模型天然占优。三个可执行的自检:
- 题目是否公开可查、能否被复现
- 是否覆盖多个领域,而不是集中在单一任务上
- 是否包含「两者都答错」的题——只统计一方答对的题,会系统性夸大差距
二、采样参数:温度不是中立的
温度 0(贪心)适合有唯一答案的任务,但对开放式生成会显得呆板;温度 0.7 更接近真实使用,但方差大得多。
更隐蔽的是 top_p、重复惩罚、最大长度。不同的参数组合可以让同一个模型在同一个题集上相差 10 个百分点以上。
规则:对比时所有模型必须用完全相同的采样参数,并在文中明确写出。
三、重复次数:单次运行说明不了什么
生成式任务有随机性。只跑一次,得到的差异可能完全来自采样噪声。
每个模型每条题跑 N 次(建议 N ≥ 5)
汇报均值 + 标准差,而不是只报均值
若两个模型的均值差小于 2 倍标准差,应当说「无法区分」
四、置信区间:把「差不多」说清楚
100 道题上的 3 个百分点差距,其 95% 置信区间大约是 ±9 个百分点。也就是说,这个差距在统计上并不显著。
常见的错误写法:「A 比 B 高 3%,说明 A 更强」。正确的写法:「A 比 B 高 3%(95% CI: −6% ~ +12%),在当前样本量下无法判定优劣」。
一个可用的汇报模板
| 项目 | 必须写明 |
|---|---|
| 模型 | 名称、版本、量化等级、推理后端 |
| 参数 | temperature、top_p、max_tokens、重复惩罚 |
| 题集 | 来源、题数、领域分布 |
| 统计 | 重复次数、均值、标准差、置信区间 |
| 硬件 | 卡型、显存、是否量化、批大小 |
一句话总结
可复现 > 好看。把参数、题集、重复次数写清楚,结论才有意义;否则再精确的小数点也只是装饰。