跑分的坑:大模型评测中的刷分与数据污染问题
每当一个新模型宣称”超越 GPT-4”,开发者社区总会出现两种声音:欢呼雀跃和深度怀疑。后者往往更接近真相。大模型评测领域存在系统性的”跑分通货膨胀”问题,不了解这些坑就是让你的选型决策建立在沙滩上。
一、数据污染:考前泄题
数据污染(Data Contamination)是指评测基准的题目(或高度相似变体)出现在模型的预训练数据中,相当于考试前学生看过原题。
污染的三种形态
| 类型 | 描述 | 识别难度 |
|---|---|---|
| 直接记忆 | 训练集包含完整题目+答案 | 易(答案格式完全吻合) |
| 变体污染 | 题目被改写后纳入训练集 | 中 |
| 分布污染 | 训练数据分布与测试集高度重叠 | 难 |
这三种形态的杀伤力其实不一样,你选型时该给的权重也不同。直接记忆最好抓,因为模型给出的答案往往连原题里的错别字、单位缩写习惯都能对上,一比对训练语料爬取的公开数据集就能锁定。变体污染麻烦一点,题目被换了个说法、数字改了改,表面看是”举一反三”,实际上底层套路早就在预训练阶段刷过,模型学到的是这道题的”形状”而不是解题能力,你拿一道结构类似但换了行业背景的题去测,分数立刻掉一截。分布污染是最阴的,没有任何一道题被直接抄进去,但训练语料里同类问题的措辞习惯、陷阱设计、甚至出题人的行文风格都被模型”猜”到了七七八八,这种污染用人工比对基本查不出来,只能靠统计工具。
污染的信号
- 某模型在某基准上比同量级竞品高出 异常大的幅度(如高 15 分以上)
- 该模型在动态更新的”防污染”基准上表现明显低于静态基准
- 模型能几乎逐字背出训练集中出现过的题目答案(可用 n-gram 重叠率检测)
主流检测方法:Min-K% Prob(检测训练数据中出现过的概率异常高的序列)、Contamination Scanner 等工具。
如果你不想只当”吃瓜群众”,其实自己也能动手查一遍,不需要跑复杂的统计模型,几步土办法就能识别大半的污染信号:
- 挑几道基准原题,改变量不改逻辑,比如把数学题里的数字从 24 换成 37,把编程题的变量名从
arr换成nums,看模型是不是还能给出正确解法。如果换个数字就直接答错,大概率是背答案而非真会做。 - 让模型复述题目的”上一句”和”下一句”。如果这道题真的在训练语料里出现过(尤其是学术论文、教材、竞赛题库这类文本连续性强的来源),模型往往能大段背出题目所在段落的上下文,这是最直接的”作弊”证据。
- 用 n-gram 重叠率粗测:拿基准题目和模型输出做 5-gram(连续 5 个词/字的片段)切分,统计重叠比例。人工写的正常解答,重叠率一般在 10%-20% 左右(专业术语和固定表达会重复);如果重叠率冲到 60% 以上,基本可以判定模型在”背诵”而非”生成”。这个脚本用 Python 几十行就能写,不需要专门的工具链。
这几招不是学术级别的严谨方法,但作为开发者自查已经够用——你要的不是发论文,是别被一份灌水的跑分报告忽悠着选错模型。
二、刷榜行为:主动操纵评测
除了被动的数据污染,还存在更主动的”评测优化”:
针对基准过拟合(Benchmark Overfitting)
故意在训练数据中增加与某基准同分布的内容,或在后训练(Post-training)阶段用测试集格式大量微调。这在统计上难以与真实能力提升区分。
选择性报告
只发布表现最好的基准,忽略表现差的。厂商发布报告时,“MMLU 第一”不代表其他维度也第一——缺失的基准往往是最说明问题的。看技术报告时养成一个习惯:先看它没提什么。如果一份报告详细列了 8 个基准的分数,却唯独漏了一个业内公认的”标配”基准(比如代码类模型不提 HumanEval,或者中文模型不提 C-Eval),十有八九是那个维度表现平平甚至垫底,不值得写进去。
Prompt 工程欺骗
通过精心设计的 System Prompt 和 Few-Shot 示例,在特定基准的格式上做专门优化,而这些优化在实际使用场景中并不存在。举个具体的例子:某些跑分脚本会在 System Prompt 里预先塞入”请严格按照选项字母 A/B/C/D 回答,不要输出任何解释”这类高度定制化的指令,模型在这种强约束格式下的选择题正确率会比自由问答场景虚高不少。但你实际接入 API 做业务时,谁会天天写这种跑分专用的 Prompt?这中间的落差,就是你上线后发现”模型怎么不如榜单说的聪明”的根源之一。
人类评测操纵(Chatbot Arena 场景)
刷票、动员特定社群投票、在 Arena 开放提交阶段集中测试某类容易赢的问题。Chatbot Arena 这类”人类投票+Elo 分”的机制看起来很公平,实际上也有漏洞可钻:Elo 排名的计算逻辑跟象棋积分一样,是靠模型两两对战的胜负关系反推出来的分数,样本量小、对手分布不均匀的时候,排名会剧烈波动。厂商如果在自己模型刚上线、曝光量还不大的窗口期,集中投放到某些”己方模型擅长”的问题类型(比如闲聊、诗歌创作这类主观性强、容易讨好评委的任务),短期内 Elo 分可以冲得很高,等样本量上来、覆盖到更硬核的任务(代码调试、长文档推理)之后,排名往往会慢慢回落。所以看 Arena 榜单时,最好选”总投票数”筛选到几万次以上的模型再比,新模型刚上榜那几天的名次基本没有参考价值。
三、识别跑分水分的实用方法
| 方法 | 操作要点 |
|---|---|
| 看动态基准 | LiveCodeBench、WildBench 等持续更新题目,污染难度高 |
| 看置信区间 | 差距在统计误差范围内的排名无意义,尤其是 Chatbot Arena 相邻名次 |
| 对比新旧基准 | 同一模型在旧基准(MMLU)vs 新基准(MMLU-Pro)上的分数差距,差距大说明旧基准可能已污染 |
| 看多个独立来源 | 厂商自报 + 第三方榜单(Hugging Face Open LLM Leaderboard)+ 社区实测,三者一致才可信 |
| 自己测业务 Prompt | 最终杀手锏:你的实际任务才是真正的基准 |
四、哪些基准相对可信
| 基准 | 可信度理由 | 局限 |
|---|---|---|
| GPQA-Diamond | 专家出题,设计抗搜索 | 覆盖学科有限 |
| LiveCodeBench | 持续抓取新竞赛题 | 只测代码 |
| WildBench | 真实用户问题,多样化 | 主观评分有偏 |
| Chatbot Arena(大量对话) | 人类真实偏好,难以刷 | 偏通用对话,专业场景弱 |
| 你的业务测试集 | 最贴合实际 | 需要自建,有成本 |
五、自建业务测试集时容易踩的坑
前面说了这么多”别信榜单”,最终落脚点都是那句话:自己测才是真正的基准。但自建测试集这件事本身也有几个坑,踩了照样白测。
坑一:题目数量太少,一有波动就当真。大模型的输出天然带随机性(哪怕 temperature 设成 0,不同批次调用也可能因为服务端的负载均衡、内核版本差异出现细微不同)。如果你只测 5 条 Prompt,模型答对 4 条、答错 1 条,你没法判断这是真实能力差距还是运气。至少准备 20-50 条覆盖你业务核心场景的 Prompt,跑 2-3 轮取平均,结论才站得住。
坑二:测试集和你线上真实流量的分布对不上。很多团队图省事,拿几条”经典难题”(比如网上流传的”9.11 和 9.9 哪个大”这类梗题)当测试集,这类题确实能看出模型有没有基础的数字理解坑,但它离你实际业务(比如客服工单分类、合同条款抽取)差得很远。测试集要从你的真实历史数据里抽样,尤其要覆盖那些”看起来简单但模型老出错”的边缘 case——这些才是真正决定你上线体验的部分。
坑三:自己当裁判打分,标准来回变。人工评分最大的问题是主观漂移:你今天心情好,看到答案大致对就打 5 分;明天较真了,同样质量的答案可能打 3 分。解决办法是先写一份打分细则(哪怕只有三五条硬指标,比如”是否包含关键信息点""格式是否符合要求""是否有事实性错误”),每条 Prompt 按细则逐项打勾再算总分,而不是凭第一印象给个综合分。有条件的话找两个人独立打分,算一下一致性,分歧大的题目单独拎出来讨论,比自己一个人主观判断靠谱得多。
坑四:只测”能不能答对”,不测成本和延迟。选型不是只看效果,同样的任务,A 模型准确率 92%、响应 3 秒、每百万 token 成本 20 元,B 模型准确率 95%、响应 8 秒、成本 60 元,哪个划算取决于你的场景对延迟和成本的容忍度——高并发的实时对话场景,B 模型的准确率优势可能扛不住延迟和成本的劣势。把这三项放在同一张表里比较,比单看一个准确率数字更接近真实决策。
常见问题
如果厂商数据都不可信,我该怎么选模型? 把第三方榜单作为”初筛”,进入候选列表后必须用你自己的业务 Prompt 做最终对比测试。20-50 条覆盖边缘场景的业务 Prompt 测试,比任何榜单都更贴近你的实际使用效果。
数据污染是故意的还是无意的? 两者都有。互联网上大量公开的学术数据集会自然进入训练语料,这是无意污染;但也存在故意在测试集格式上做专项微调的情况。区分意图对用户选型没有帮助,关键是识别结果中的水分。
开源模型的评测会更可信吗? 开源模型可以被独立复现评测,理论上更透明。但开源社区上传者也可以提交经过有针对性微调的版本,Hugging Face Leaderboard 同样存在污染问题。可信度高低取决于评测机构的防污染措施,而非开闭源本身。
延伸阅读:大模型评测基准科普(MMLU/GPQA/HumanEval) · 怎么追踪大模型动态与看懂评测 · 主流大模型跑分榜单怎么看 · 返回 AI 资讯中心 · 了解 国产大模型专题
看完想自己上手试试?
力达云是国内可直连的兼容端点,一期提供 DeepSeek,注册送 ¥5 额度。