同一套题、同一份配置,别人照着跑一遍,结果应该和报告里的差不多,这就是评测里的可复现。它是 AI 大模型评测的基本操守:一份不能复现的报告,和一个编出来的故事没有区别。
同样条件同结果意味着什么
意味着整条评测链路都被钉死了:题目版本、提示词模板、采样参数、模型权重的确切版本号、判分脚本,甚至运行环境,全部交代清楚,任何人拿着这些材料重跑,都能得到对得上的数字。可复现不要求逐位一致——模型输出有随机性,分数允许小幅浮动——要求的是结果落在同一水平线上,结论方向一致。它考验的是一个团队的工程纪律,比拼的往往不是聪明,而是耐心。
哪些变量会让分数漂移
常见的有五类。采样参数:温度、采样上限不同,分数自然不同,这是最大的暗坑。提示词措辞:同一个要求换个说法,成绩能差好几分,提示词必须原样记录。题目版本:题库更新后新旧分数不可比,版本号要跟着走。判分方式:脚本逻辑改一行,全盘数字都会变,脚本也要有版本管理。模型侧变更:同名模型悄悄热更新,昨天今天测出来的就不是同一个东西。这些变量叠加起来,足够让两份「相同」的评测差出一个名次。所以严肃团队会在评测前先做一次「变量清点」,把所有可能动的旋钮逐个钉死,评测启动后不再碰它们。
五个变量、各自要钉死的材料与排查次序,一栏对照。
| 漂移变量 | 分数会怎么变 | 要钉死的东西 | 排查时的次序 |
|---|---|---|---|
| 采样参数 | 温度、采样上限不同,分数自然不同,是最大的暗坑 | 关键运行参数写进配置文件 | 第一站:先对配置 |
| 提示词措辞 | 同一个要求换个说法,成绩能差好几分 | 提示词逐字记录,附修改历史 | 第一站:确认逐字一致 |
| 题目版本 | 题库更新后,新旧分数不可比 | 题目清单带版本号与入库时间,核对条数 | 第二站:再对题目 |
| 判分方式 | 脚本逻辑改一行,全盘数字都会变 | 判分脚本固定版本,原始输出留档 | 第三站:用同批原始输出跑对方的脚本 |
| 模型侧变更 | 同名模型悄悄热更新,昨天今天测的不是同一个东西 | 模型权重的确切版本号与日期 | 最后一站:才怀疑模型 |
复现一份报告要留什么
最低限度四样:完整的题目清单与版本号、逐字的提示词模板、关键运行参数、判分脚本的固定版本。再加两项更稳妥:原始输出留档,方便事后重新判分;随机种子固定下来,让可复现程度更接近逐位一致。ModelScope 等平台上不少公开评测项目都把题目和脚本打包挂出,这种做法值得推广;智谱清言的团队在公开评测材料里也强调过配置留档的重要性。材料越全,别人复现的成本越低,报告的可信度也越高。
可复现留档清单
- 题目清单与版本号,标注每道题的入库时间
- 提示词逐字记录,附修改历史
- 采样参数与运行环境写进配置文件
- 判分脚本固定版本,原始输出留档备查
对不上数字时怎么办
按顺序排查五件事:先对配置,确认参数与提示词逐字一致;再对题目,核对题库版本和题目条数;然后对判分,用同一批原始输出跑对方的脚本;接着考虑随机性,若差距落在正常波动范围内,可以参考置信区间和评测方差来判断是不是虚惊一场;最后才怀疑模型侧变更。排查下来仍对不上,就把两边材料摆出来公开讨论,多数分歧最终都出在「以为一致、其实没对齐」的地方。想更深一层,复现本身也是评测的性价比的组成部分,材料齐整的评测能为后续复用省下大笔重复劳动;配合自建评测使用时,留档纪律同样适用。
可复现在开源社区的实践已经比较成熟:数据、脚本、配置打包发布,附一条一键运行入口,他人复现的成本从几天降到几小时。闭源模型场景下虽然看不到内部,但通过网关固定调用参数、记录版本戳,也能做到大体复现。还有一个提醒:复现结果与原报告有小幅出入属于正常现象,重要得多的是结论方向一致——如果复现后排名翻转、结论相反,那才需要认真追究原因,通常是某个环节没对齐,而不是谁在说谎。
关于可复现的三个常问问题
- 模型有随机性,怎么谈复现?:固定参数与种子后多次运行取统计结果,复现的是同一水平线上的结论,而非逐字相同的回答。
- 闭源模型没法看内部,还能复现吗?:能,通过固定调用参数、记录模型版本号与日期来逼近,只是精度天然受限。
- 复现失败就说明对方造假吗?:不一定,更多是配置没对齐或条件有暗差,先走完排查流程再下判断。


