ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

榜单分数失真?从数据污染到私有评测的模型选型之道

榜单分数失真?从数据污染到私有评测的模型选型之道

这几年做模型选型和能力评估,我越来越觉得一件让人头疼的事:排行榜上的分数,参考价值正在肉眼可见地缩水。不是某个榜单突然变水了,而是整个"用公开分数评价模型能力"的体系,出现了系统性问题。今天这篇就围绕这个标题,把我实际测评中踩过的坑、拆解过的现象、以及我自己现在怎么绕过榜单做判断的方法,完整写一遍。文章会比较长,但基本都是实操中被反复验证过的经验。

1. 分数通胀:榜单上的数字一年比一年高,真实能力跟上了吗?

先说说最直观的感受。近两年如果你持续关注各类公开模型榜单,会发现一个规律:新模型的分数几乎是“每发布必刷新”。今天刷到 78 分,下个月就有人冲到 82 分,再过两个月 85 分都显得平常。分数上涨本身没问题,问题在于:这些分数的增长,有多少来自真实能力提升,又有多少来自评测体系的“内卷式适应”?

1.1 从绝对分数转向相对排序,你会看到另一个世界

我做过一个实验:把两年前某模型在某公开榜单上的 75 分,和今年另一个模型在同榜单上的 82 分放在一起,然后各自跑同一组我自己构建的、从未公开过的测试题。结果很有意思——两个模型的实际表现差距远没有 7 分那么大,甚至在部分领域老模型还更稳。

这不是个例。公开榜单的分数本质上是一个“相对水位”,它会随着参赛者整体水平的提升而水涨船高。但如果把所有模型都在同一时间点、同一评测集上重新测一遍,你会发现绝对分数之间的差异,往往比榜单增量看起来小得多。说白了,分数通胀主要来自新模型对评测集的“定向适应”,而不是通用能力的天翻地覆。

1.2 为什么明明知道分数虚高,厂商还是乐此不疲

站在模型发布方的角度,榜单位次是成本最低的营销素材。一个公开榜单的高分,可以被写进宣传稿、被媒体引用、被客户拿去对比。相比之下,真实业务场景的稳定运行、长尾数据的表现、极端输入下的鲁棒性,这些才是难啃的硬骨头,但短期内不容易转化为传播点。

所以你会发现一个现象:越是面向 C 端或投资方的模型,越热衷于刷榜;而真正在垂直领域深耕的模型,反而很少出现在大众关注的通用榜单上。这不是说刷榜的模型一定差,而是说榜单分数背后的动机结构,决定了它天然倾向于“表演性”而非“真实性”。

2. 数据污染的灰色地带:为什么同一个榜单会记住你练过的题

如果要给“榜单分数不可信”排一个原因优先级,数据污染(Data Contamination)排第一,应该没什么争议。所谓数据污染,指的是评测集里的题目出现在模型的训练数据里,导致模型在评测时不是“推理”出来的,而是“回忆”出来的。

2.1 评测集泄露的三个渠道,比想象中隐蔽得多

很多朋友以为数据污染就是“评测集被扒出来塞进了训练数据”,这种明晃晃的抄袭当然存在,但更多时候是灰色渠道。

第一个渠道是网络公开内容。很多评测集本身就会以论文、博客、GitHub 仓库的形式公开,而训练数据抓取是全网的,两者之间天然存在交集。即使评测集没有完整泄露,如果题目风格、主题分布、甚至部分示例被网络讨论过,模型也能学到“这类题该怎么答”的套路。

第二个渠道是间接污染。也就是评测集本身没泄露,但模型训练时见过大量同源数据。比如某个评测集是从维基百科、教科书、Stack Overflow 上抽取的,而模型训练语料也包含这些来源,那模型相当于提前“读”过答案。

第三个渠道最隐蔽:评测集的迭代版本。有些榜单会定期更新题目,但旧版本是公开的。模型训练时如果接触到旧版本,再遇到新版本里“换汤不换药”的题目,照样能拿高分。我在实际测试中见过一个案例:某个模型在公开榜单上分数很高,但当我把题目做同义改写后,它的表现立刻下降了十几个点——这就是典型的“记忆而非理解”。

2.2 拿同一道题做同义改写,是检验污染与否的廉价方法

这里分享一个我常用的验证方法:改写测试。具体操作不复杂——把评测集里的题目用不同的表达方式改写一遍,保持语义和难度不变,比如把选择题改成填空题,把中文换成英文再换回来,把数值例子换一批。然后将改写后的版本跑一遍同一个模型,和原版分数做对比。

如果分数基本持平,说明模型是真的会这道题;如果分数大幅下跌,那就有理由怀疑原版分数里有“记忆水分”。这个方法不需要什么高级工具,成本也不高,但效果非常直观。我自己做过多次这样的对照测试,几乎每一次都能源源不断抓出“榜单高分但一改就废”的模型。

注意:改写测试也有自己的局限。它只能说明“模型的分数对特定表述敏感”,不能直接证明数据集一定被污染。但作为风险提示,它足够有效。如果一个模型换个说法就不会了,你在真实业务里用它的风险显然是偏高的。

3. 评测集与指标的双向“内卷”:从选择题猜答案到指标游戏

数据污染聊的是“训练数据碰到了评测数据”,但就算完全排除污染,榜单分数依然可能失真。问题出在评测集本身和评测指标的设计上。

3.1 评测集一旦固定,就开始了“军备竞赛”

公开评测集是静态的,这意味着所有参赛模型都在朝同一批题目优化。哪怕是完全良性的优化,时间一长也会出现“过拟合到评测集”的现象:模型越来越擅长做这套题,但对评测集之外的同类问题,泛化能力并没有同步提升。

这有点像考试:如果每年的考题都是从同一本题库里出,而且题目多年不换,那后来的考生自然会去背题,而不是真正理解知识。评测集的固定性,是分数通胀的制度性温床。

我见过一个典型例子:某个评测集里的数学题大多是“求解某个方程”,一个模型在榜单上得分很高,但一旦我把方程改个结构,或者给它一道需要多步推理的复合题,它就表现出明显的吃力。这说明它学到的是“识别题型格式并映射到解法”,而不是真正的数学推理能力。

3.2 选择题天然存在“排除法红利”,多项选择题更是重灾区

另一个容易被忽略的因素是题型结构。大量榜单采用单项选择题或多项选择题,这类题型天然给模型提供了额外的信息:

  • 选项本身就在提示答案范围,模型不需要从零生成答案;
  • 错误选项往往存在明显的语义差异,模型可以利用模式匹配来排除;
  • 多个选择题的答案分布存在统计规律,某些模型甚至能利用这种规律“猜对”。

我在实际评估中统计过:同一个模型,把选择题改成开放式简答题后,分数平均会掉 10% 到 20%。这个差距在数学、逻辑推理类题目上尤其明显。也就是说,榜单上的选择题分数,明显高估了模型在实际业务中“从空白开始生成正确答案”的能力,因为真实业务里没有人会给你四个选项。

3.3 指标本身的漏洞,从精确匹配到F1分数都被玩坏过

评测指标也是在动态博弈中被不断“钻空子”的。早期很多榜单用精确匹配(Exact Match),也就是模型输出和标准答案一个字不差才算对。于是就有团队训练模型“答案尽量简短”,牺牲可读性来提高命中率。后来改用 F1 分数,即按 token 重叠率计算,又有团队发现“尽量多输出可能答案”能提高命中概率,输出就开始变啰嗦。

再看代码生成评测,很多榜单用“Pass@1”,也就是一次生成的通过率。这个指标看似合理,但模型只要见过类似题目,记忆住模板,就很容易通过。反而真正需要现场调试、工具调用、错误修复的复杂工程任务,这类指标根本测不出来。

很多榜单分数反映的是“模型在规则明确、场景封闭、格式受限的模拟考试里能考多好”,而不是“模型在信息混乱、需求模糊、环境动态的真实任务里能做好什么”。评测指标是被设计出来的,它天然滞后于模型的进化。

4. 榜单不会告诉你的几个失真场景,以及我自己现在怎么选模型

前面讲了数据污染、评测集固化和指标漏洞,下面聊点更贴近实操的内容:面对一个高分榜单模型,我在做真实技术选型时会做哪些额外验证。这些方法不复杂,但基本能过滤掉一半以上的“榜单水分”。

4.1 自建私有评测集,加入“动态未知题”

我现在的习惯是,不管公开榜单分数多高,都要用一套自己维护的私有评测集做交叉验证。这套评测集有几个特点:

  • 题目结构模拟真实业务:包括多轮对话的上下文依赖、跨文档信息整合、需要外部工具配合的复合任务,而不是单纯的单轮问答;
  • 动态更新:每个季度加一批新题,重点覆盖当前模型容易“死记硬背”的领域;
  • 题型多样:同一道能力题会出选择题、填空题、开放问答、代码补全等多种变体,避免“偏科”;
  • 与公网隔离:所有私有评测题目绝不上传公开平台,最大限度避免训练数据接触。

每次选型,我会把同一个模型在公开榜单分数和私有评测分数之间做个差值对比。如果落差过大,即使榜单排第一,也基本上不会纳入候选。这个习惯已经帮我避过好几次“看起来很美,实际很脆”的坑。

4.2 从“看绝对分”转向“看能力剖面”,胜于看排名本身

还有一个思路上的转变:榜单是给大众看的,选型要对自己负责。我现在看模型能力,不再关注总分和排名,而是把能力拆成一组剖面图:

  • 指令跟随能力(能不能严格按要求执行格式和约束)
  • 长上下文中的记忆保持(这个榜单很少测,但业务里极重要)
  • 对抗性输入的鲁棒性(乱序、缺字、口语化、负面表述)
  • 工具调用和结果反思能力(真实工程里最常用的链路)
  • 多语言和少资源语言的表现(如果业务有国际化需求,必须单独验证)

榜单给出的是一个合成总分,而这个总分把不同维度的强项和弱项搅在一起,很难看出模型适合什么业务场景。比如一个模型写作能力很强,但代码能力偏弱,总分可能和另一个代码强、写作弱的模型差不多,但如果你的业务主要是代码生成,只看总分去选型就会选错。

4.3 我常用的一套“三问”法,推荐你也试试

最后分享一个评估任何模型时我都会过一遍的“三问”流程。完成这三个问题,比盯一个排行榜数字管用得多:

  1. “这个模型在何种约束下被评测?”评测集的分布、难度、题型、是否公开、是否有动态更新机制,这些信息比总分重要得多。如果一项评测连题目来源和更新频率都不披露,那它的分数就必须打折扣;
  2. “我自己的数据,在这个模型上表现如何?”抽出业务数据里最典型的 5 到 10 个任务,跑一遍真实场景的测评,这是唯一的“真评测”。不要用公开榜单上的同类题代替,真数据永远是最有说服力的;
  3. “如果这个模型的分数虚高 15%,对我的业务影响有多大?”这是一个风险预估问题。如果模型在关键路径上失败,代价是不可接受的,那即使榜单分数再高,也要做好备选方案或增加人工兜底,不能因为“分数高”就放松警惕。

这三个问题不复杂,但能让你从“看分数选模型”切换到“看适配度选模型”。说实话,适配度才是业务里真正重要的东西,榜单总分只是一个参考锚点。

4.4 换个思路:用低分模型的失败样本,反过来校准榜单

这招算是我自己摸索出来的一个“反向用法”。既然高分模型的分数有水分,那就不妨看看低分模型的失败案例。具体做法是:找一个排在榜单末尾但能力分布相对清楚的模型,把它答错的题目拉出来,逐题分析错误原因。

这个过程的价值在于:它能在一定程度上还原评测集到底在测什么、不测什么。如果低分模型的错误集中在某种特定题型上,说明评测集在这类任务上区分度大;如果在另一些题型上所有模型都对,那这一块基本属于“送分题”,参考价值有限。

这样做上几次之后,你对一个榜单的信息含量就会有更具体的判断,而不是被一个孤零零的总分牵着走。

我也越来越觉得,真正可信的模型能力判断,正在从“公开的静态榜单”转向“私有的、动态的、与业务对齐的验证体系”。这未必是坏事,反而可能把行业从“刷分军备竞赛”拉回到“真实能力比拼”的轨道上。对每个需要认真做模型选型的人来说,与其追逐不断跳动的分数,不如把精力花在建设自己的评测体系上——别看别人考了多少分,要看自己手里的题,它到底能不能做。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进