开源模型评测怎么做才不被榜单带偏
基准测试的局限、数据泄漏,以及自己搭一套小评测的方法。
开源模型发布时都附一串榜单分数,但分数和"好不好用"之间的裂缝越来越大。这篇整理我对评测基准的分析框架,以及自己搭一套小评测的做法。
榜单失真的三个来源
- 数据泄漏:公开基准的题目大量进入训练语料,高分可能只是背过。判断方法之一是看模型能否复述题目原文。
- 过拟合基准:针对特定 benchmark 的训练与提示工程可以显著提分,却不迁移到真实任务。
- 指标偏食:多数榜单是选择题格式,擅长排除法不等于擅长生成;写作、规划、长上下文能力基本不在射程内。
看榜的正确姿势
先问三个问题:谁跑的(官方自评还是第三方统一环境)、用什么提示模板、置信区间多大。差两三个点的排名基本没有意义,很多基准 60 题的 95% 置信区间宽到 ±8 分。
自建小评测的最小可行版
不需要大动干戈:① 从自己的真实使用场景里抽 50–100 条输入,保留原始上下文;② 定可检查的判分规则——正则、单测、JSON schema 校验优先,实在不行才用 LLM 当裁判,且裁判要用不同家族的模型;③ 固定随机种子与解码参数,同硬件对比;④ 记录失败样本而不只是分数。一晚上能跑完的评测,比抄来的榜单可信得多。
LLM-as-judge 的坑
裁判模型有位置偏好(倾向先看到的回答)、长度偏好(偏爱更长回答)、自家模型偏好。缓解手段:交换顺序各评一次取一致结果、控制长度分桶、定期人工抽检 20 条校准。
榜单适合做初筛,不适合做决定。真正的问题永远是:在我的数据、我的任务上,它是几分。