Research2026年6月8日2,672 字约 8 分钟

榜单上的分数,究竟在测什么?

从任务、数据到评分规则——读懂 benchmark 分数的能力边界,以及怎样读榜才不容易被误导。

每当有新的大模型发布,行业讨论往往不会从「它聊起来是否自然」或「它能否写出一篇像样的文案」开始,而是先摆上一张成绩单:MMLU、HumanEval、GPQA、SWE-bench 各得多少分,Chatbot Arena 排在第几位。这些数字看起来客观、整齐,也最容易被转述和比较。但对刚进入这一领域的读者而言,一个更根本的问题常常被跳过:这些分数究竟在测量什么?高分是否意味着模型更聪明、更可靠,或者更适合你的具体业务?

本文先从整体入手:benchmark 是什么、通常由哪些要素构成、分数如何产生,以及读榜时应如何避免被单一数字牵着走。

一、Benchmark 是什么?

Benchmark 是一套标准化测试,用于在相同任务、相同规则下比较不同模型或系统的表现。一个常用的类比是:若模型是学生,benchmark 就是考试卷。这个比喻有助于建立直觉,但只说明了问题的一半。

在 AI 评测语境中,benchmark 远不止「一组题目」。它还包括测试数据的来源与构成、输入与输出的格式约定、评分规则、运行环境,以及将多次测试结果汇总为单一指标的方式。换言之,benchmark 是一套完整的测量协议,而不是可以随手替换的题库。

这一点之所以重要,是因为我们在新闻稿和 leaderboard 上看到的「某模型在某项 benchmark 上得到 XX 分」,并不是天然存在的客观事实,而是在特定规则下计算出来的结果。规则一旦改变——例如更换提示模板、允许工具调用、调整采样策略——分数的含义也会随之改变。

二、为什么需要 Benchmark?

现代 AI 系统能做的事情太多,以至于「强」本身是一个过于模糊的判断。一个对话模型可以同时承担写作、编程、数学推理、文献摘要、检索增强、多模态理解乃至工具调用;若缺少共同的测量框架,比较很容易退化为个人体验:有人觉得回答更自然,有人觉得代码写得不错,有人则被生成图像的质量打动。这些反馈并非没有价值,但它们在问题设置、用户偏好和随机性上差异很大,难以支撑可复现、可辩护的结论。

Benchmark 试图把比较拉回到同一套条件下的测量。不同 benchmark 关注的能力维度并不相同:MMLU 侧重广博的多学科知识与推理,HumanEval 检验函数级代码能否通过单元测试,SWE-bench 要求模型在真实代码仓库中修复 issue,Chatbot Arena 则通过大规模人类偏好投票来排序。它们共享「benchmark」这一标签,却往往在回答不同的问题。

因此,读榜的第一条原则不是先问「谁分最高」,而是先问:这张卷子到底在考什么?

三、一个 Benchmark 通常由什么组成?

从工程与方法论角度看,大多数 benchmark 都可以拆成六个彼此关联的部分。理解这六部分,比记住某一个榜单名次更有长期价值。

任务(Task)

任务定义了 benchmark 试图刻画的能力类型。以 MMLU 为例,它覆盖 57 个学科领域,从初等数学、美国历史到计算机科学与法律,旨在评估模型的通识知识与问题解决能力。HumanEval 则聚焦代码生成:模型根据函数 docstring 生成实现,并通过隐藏测试检验功能正确性;OpenAI 在 Codex 论文中将其作为代码模型评测的重要基准。SWE-bench 再进一步,要求模型面对真实 GitHub issue,在完整仓库上下文中提交 patch——其原始论文包含来自 12 个 Python 开源项目的 2,294 个软件工程问题。

数据(Data)

数据决定了「题目从哪来」,也深刻影响 benchmark 的难度与代表性。数据可能来自标准化考试、专家命题、人工标注、用户对话日志、GitHub issue、科学文献或网页问答。来源不同,benchmark 的气质便不同。GPQA 采用生物、物理、化学方向的研究生级别选择题(共 448 道),论文指出非专家即便可以联网检索也难以作答,因而更接近高难专业考试。Chatbot Arena 走另一条路径:用户在匿名条件下比较两个模型的回答并投票,平台在论文发表时已积累超过 24 万票,其性质更接近大规模「群众评审」。

输入与输出格式(Format)

格式决定了模型「看到什么、要产出什么」。有的 benchmark 是四选一的选择题,有的是开放问答,有的是完整函数或 patch,还有一类只比较相对偏好而不设唯一标准答案。格式越简单,通常越便于自动评分与规模化对比,但也越容易与真实部署场景产生距离——这也是早期 benchmark 普遍偏向选择题的重要原因之一。

评分规则(Scoring)

评分规则是 benchmark 的灵魂。常见指标包括准确率、代码通过率、人类偏好胜率,以及基于 Elo 或 Bradley–Terry 模型的排序分数;更完整的框架还会同时考察校准、鲁棒性、公平性、偏见、毒性与效率等维度。HELM 便是多指标评测的代表性工作,它提醒研究者:答对更多题目,并不自动等于模型值得在生产环境中信任。 模型可能在英文 benchmark 上表现优异,却在中文、方言或小语种任务上明显失分;也可能推理能力强,但推理成本过高。

运行环境(Runtime)

Benchmark 不仅包含题目与答案,还包含运行环境。代码类评测可能固定 Python 版本、依赖与测试脚本;SWE-bench 需要构建项目、应用 patch 并执行测试;MLPerf Inference 等系统级 benchmark 还会规定模型、数据集、精度与延迟约束。环境越接近真实系统,结果通常越有参考价值,复现难度也越高——而这些条件都会直接进入最终分数。

汇总方式(Aggregation)

当 benchmark 包含多个子任务或多个难度层级时,如何合成「一个数」往往充满争议:是简单平均还是加权平均?困难题与简单题是否同等对待?失败样本是否剔除?报告 best-of-N 还是 mean?一个模型可能在数学子项上领先,却在事实问答上表现平平;在英文任务上稳定,却在中文任务上波动。表格里的总分会把这些差异压扁,因此读 benchmark 时,子项分数往往比 headline 数字更有信息量。

四、为什么 Benchmark 会越来越难?

Benchmark 变难,很大程度上是因为模型在变强。当某项早期 benchmark 的分数普遍接近上限时,它的区分度就会下降——如同一场几乎人人都考 98 分的考试,很难再用来分辨顶尖选手之间的差异。于是社区会提出新的、更贴近真实工作的测试。

若从能力要求的变化来理解这一趋势,可以大致看到一条演进路线:早期 benchmark(如 MMLU)主要检验知识与语言理解;随后出现面向代码与数学的评测(如 HumanEval);再往后,SWE-bench 等任务把模型推入真实仓库与 issue 修复场景;Chatbot Arena 则将人类偏好纳入排序;MLPerf 等则关注系统与部署效率。这条时间线并非严格线性,但方向相当清晰:评测正从「会不会答题」转向「能不能完成真实工作」。

五、Benchmark 分数能说明什么?

在正确使用的前提下,benchmark 分数至少有三类稳定价值。

第一,它提供在特定任务类别上的相对位置。 若两个模型在完全相同的 MMLU 设置下分别得到 85 与 75,通常可以认为前者在这套多学科选择题任务上表现更好——前提是评测配置透明且可比。

第二,它有助于诊断短板。 模型可能在对话体验上流畅,却通不过代码测试;可能在 HumanEval 上表现突出,却在 GPQA 这类专家科学问答上失分;也可能英文 benchmark 领先,中文任务明显掉队。Benchmark 因此不仅是排名工具,也是能力剖面图。

第三,它会影响社区的研究与产品优先级。 SWE-bench 的普及推动了对 agent、工具调用、长上下文与仓库理解的关注;GPQA 抬高了专家级推理与可监督性的门槛;HELM 等框架则把安全、公平与效率拉进主流讨论。设计良好的 benchmark 会反过来塑造模型训练与部署的方向。

六、Benchmark 分数不能说明什么?

Benchmark 分数不能自动外推到「所有场景都可靠」。MMLU 高分不保证开放对话中的事实准确;HumanEval 高分不保证大型工程项目的可维护性;SWE-bench 高分也不意味着设计优雅或符合团队规范。Chatbot Arena 排名靠前,同样不等于在专业任务上更正确——人类偏好有时会奖励流畅、礼貌与篇幅,而非严格的事实性。

此外,还有几类在读榜时容易被忽视的风险。数据污染会让模型「见过原题」而非「学会能力」;榜单过拟合会使分数随针对性优化而上升,真实能力未必同步提升;题目质量问题(歧义、错标、覆盖不足)在专业问答与代码任务中并不罕见;评测设置不透明——例如一方使用检索与工具而另一方没有——会直接破坏可比性;而单一总分则可能掩盖与你业务无关甚至相反的能力结构。你关心的是写代码、客服、研究写作、财报分析还是端侧部署,对应需要的「考试」本就不应相同。

七、总结

Benchmark 既容易被神化,也容易被一概否定:前者把它当作能力的唯一证据,后者因 benchmark 本身的不完美而拒绝一切量化比较。两种极端都不可取。

更稳妥的做法,是把 benchmark 当作测量工具——但在使用之前,先弄清楚它量的是长度、重量还是温度。没有哪一种工具能描述世界的全部;但若完全拒绝测量,连最基本的横向比较都会退化为各说各话的经验判断。希望这张地图能帮你带着问题去看每一次新模型发布时的那张成绩单。