理解 AI 基准测试
解读前沿模型发布及其 SOTA 基准分数的技巧。
尽管基准测试是每次重大发布的亮点,但它们却是AI生态系统中最被广泛误解的部分。
每隔几周,我们就会看到新的新闻稿,其中的柱状图显示新模型恰好高耸于之前的最先进水平之上——无论是Anthropic的Claude Opus 4.5、OpenAI的GPT-5.2还是Google的Gemini 3。其叙事总是“数字上升”,暗示着智能的普遍提升。
在本文中,我想揭开这些基准测试实际运作方式的神秘面纱,揭示它们在哪些方面具有误导性,并深入探讨你将在发布文章中看到的具体热门评估。本文的灵感来源于近期AI基准测试市场上众多令人困惑的Kalshi/Polymarket评论。
基准测试栈
当我们谈论模型的性能时,我们很少是在孤立地谈论原始模型权重。基准测试分数是特定函数的输出:f(model, settings, harness, scoring)。如果你改变该元组中的任何变量,分数就会改变——通常是剧烈改变。要理解一个模型为何“获胜”,你必须查看整个栈。
模型——我们倾向于使用“GPT-5.2”或“Claude 4.5 Sonnet”这样的简称,但在基准测试的背景下,你实际上测量的是特定运行时设置的组合。
采样设置:温度、top_p和max_tokens等参数从根本上改变了模型输出被编码为文本的方式。
推理强度:模型的表现通常取决于其“思考预算”。你会越来越多地看到
-xhigh或-16k-thinking这样的后缀,它们表示一种特定配置,即模型被允许在响应或使用工具之前生成推理令牌。
测试框架——这是包裹模型以促进测试的代码。归根结底,LLM仍然是文本+图像进/文本出,因此需要一个框架将“解决这个问题”翻译成实际的API调用。
工具:框架是否允许模型在回答之前使用编码环境来测试或计算事物?它是否提供互联网搜索访问?工具模式是否定义良好,它们是否返回直观的响应?
提示词:系统提示词是模糊的还是具体的?它们是否包含示例(即少样本)?提供的指令和约束是否一致?
实现:我们是在智能体工具循环中运行模型,还是只取第一个输出?我们是在后处理结构化输出,还是将轻微的格式错误计为硬失败?我们将问题构建为仅追加的对话,还是做其他处理?
评分设置——我们如何给模型评分可能与模型本身一样关键。这归结为我们计算什么(指标)以及谁来计算(评判者)。
通过率:你会看到pass@k,意思是“它在K次机会中答对了吗”(通常是“pass@1”),或者pass^k,这通常意味着“它在K次独立尝试中都答对了吗”(难度大得多)。
评判者(程序化 vs. LLM):程序化评判者(单元测试、正则表达式、与真实答案精确匹配)是客观的但很脆弱——一个格式稍有错误的正确代码片段会得零分。LLM-as-a-Judge能捕捉细微差别,但引入了潜在的偏差和不确定性。
我敢打赌,如果你只是稍微独立地改变其中每一个因素,大多数基准测试的前五名就会被彻底重新洗牌。
对于没有智能体框架(即模型可以执行代码和工具来完成任务)或未启用推理功能的基准测试,我很难太当真,因为这些已成为现代大语言模型解决任务的基本要素。
误导性分数
基准测试分数通常是带有噪声的估计值,而非精确的测量结果。当一个新模型声称以 x% 的优势胜出时,仔细审视其测量方式后,这一优势的显著性便荡然无存。通过阅读过去几年发布说明中的脚注并深入研究基准测试的源代码,我发现了相当多不合常理的做法。
测量噪声 —— 基准测试被视为精密仪器,但测量模型性能的过程往往出人意料地脆弱且不一致。
失效的测试:驱动这些基准测试的代码通常由研究人员编写,而“研究代码”往往……比较粗糙。所谓“失败”实际上是测试运行器中的 bug,或者正确答案因正则表达式过于严格而被拒绝的情况并不少见。某些模型提供商的分数也可能因评估期间发生的 API 错误和速率限制而受到拖累。
方差:大语言模型的行为往往是随机的即使固定了随机种子和解码设置。仅仅多次运行完全相同的模型堆栈,就可能使某些基准测试的分数波动好几个百分点。你有时可能会看到置信区间,但不报告它们的情况仍然极为普遍。
古怪的报告方式 —— 各实验室承受着展示最先进性能的巨大压力,每家选择的指标报告方式都略有不同。对于寻求同条件对比的人来说,这些差异可能极具误导性。
多次通过的差异:实验室在 pass@k 基准测试中可能会报告不同的 k 值,这可能会误导那些通过不同发布文章比较不同模型发布版本数值的人。
框架调整:实验室有时会修改基准测试代码本身。这可能从“修复”(删除)他们认为不公平的测试用例,到附加专门设计用于引导模型应对该特定测试怪癖的系统提示。他们还可能修改框架以利用并行的测试时计算(这与多次通过的差异不同,因为它是将智能体的共识作为单次运行的分数,而不是事后挑选最佳运行结果)。
过时的基线:一些基准测试会随着时间推移而变化,原因包括 bug 修复、新数据,甚至提供商端的 API 稳定性修复。将一个全新的模型与竞争对手 X 个月前报告的分数进行比较,可能并不是一次完全相同的对比。
现实差异 —— 被基准测试的模型,其行为可能与你在生产环境中体验到的模型不同。
模型不匹配:用于评估的模型版本可能与 API 上发布的版本不一致。这可能是由于对齐调整、量化甚至推理硬件差异导致的预发布检查点与正式发布检查点之间的差异。
效率盲区:大多数基准测试分数报告并不包含延迟和成本信息。尤其是在高推理和并行计算的设置中,这些因素可能在智能水平与生产应用中实际可行性之间造成意义重大的极端权衡。
数据污染:要真正保证一个模型在训练期间从未见过基准测试中的问题或答案是非常困难的。有许多技术被用来避免明显的此类情况(例如金丝雀字符串),但如果/当这些实验室调整训练数据集以匹配基准测试的相邻任务时,这就有点灰色地带了。
未计分的失败:基准测试通常检查的是正确答案的存在,而不是副作用的不存在。一个删除了你的数据库然后返回正确代码以通过测试的编码代理,仍然会“通过”基准测试。
所以是的……基准测试可以被钻空子的方式有很多。
感谢阅读 Shrivu 的 Substack!免费订阅以接收新文章并支持我的工作。
基准测试
关于几个流行基准测试的一些看法1。优缺点是我对什么构成高信号、可解释的基准测试的主观看法。
LMArena(文本竞技场)
一个众包平台,用户并排向两个匿名模型发出提示,并对更好的回答进行投票。它不依赖静态的专家示例,而是捕捉人类的“直觉”——衡量总体有用性和文本回答的实用性——并使用 Bradley-Terry 统计模型将这些两两对决的投票转化为 排名 Elo 评分(与电子游戏和国际象棋中的 Elo 系统有些相似)。
主要缺陷(除了饱和之外)是产品与模型之间的差距。当你使用 LMArena 时,你并不是在测试 Claude.ai 对比 ChatGPT;你是在测试带有相当通用的“你是一个有用的助手”系统提示的原始大语言模型。它衡量的是这些模型的默认行为,而这并不是大多数人与它们互动的方式。尽管如此,它仍是大语言模型领域“大众投票”的一个不错信号。
优点:它是一个滚动基准测试(持续更新),直接衡量人类偏好,并允许风格控制。
缺点:数据被糟糕/简单的问题所充斥(导致饱和),容易受到不公平的实验室测试(参见 排行榜幻象),并且纯粹是简单聊天式的(而非代理式的)。分数是相对的,固定的系统提示可能会严重影响结果。
示例问题:
“你对房地产了解多少”
SWE-Bench(已验证)
一个来自 django 和 scikit-learn 等流行 Python 仓库的真实 GitHub 问题(错误和功能请求)数据集。“已验证”子集过滤掉了需求模糊或环境损坏的任务,以创建更清晰的信号。它测试模型是否能够浏览现有代码库、重现错误,并编写一个通过测试而不破坏其他功能的补丁。
这仍然是基于特征的软件工程领域最真实的基准之一。我最大的不满是,SWE-Bench 实际上低估了当今的编码能力。与 Codex 或 Claude Code 等现代工具相比,官方测试框架显得很原始,后者使用了任务规划、LSP 集成和 AGENTS.md。
优点:允许自定义脚手架(agentic 和 Bring-Your-Own-Harness),要求提交执行轨迹,并使用基于单元测试的验证。需求描述较为模糊(基于 GitHub issues),使其相当真实。
缺点:提交受到限制(这就是为什么与 Terminal-Bench 相比,排行榜缺失了很多内容),并且它基于开源仓库(存在较高的潜在污染风险),且没有 AI 上下文文件。
示例问题:
https://github.com/scikit-learn/scikit-learn
使用布尔预测变量拟合 ‘HuberRegressor’ 时出现 ‘TypeError’
重现步骤/代码
….
预期结果
…
Terminal-Bench (2.0)
一个沙盒环境,测试智能体使用命令行界面(CLI)解决各种系统任务的能力。模型不是仅仅编写代码片段,而是直接与 Linux shell 交互——安装包、管理文件和运行 git 命令——以测试系统管理技能和编码能力。
Terminal-Bench 感觉比 SWE-Bench 稍微现代一些,但也稍微容易一些——我不认为这个基准的 +x% 提升总是与真实的企业编码工作表现相关。
优点:允许自定义脚手架(agentic 和 BYO-Harness)。我个人更喜欢这里比 SWE-Bench 更清晰但可能不够真实的任务提示。
缺点:任务偏向较简单的一端(例如,“构建一个脚本”),而不是构建复杂的应用程序或在大型代码库中工作。
示例问题:
你需要为一个 Web 开发项目调试并修复 nodejs 环境冲突。该项目需要特定版本的包,而这些包之间存在冲突。
你将安装 nodejs (20.19.3) 并使用 npm 进行包管理,并执行以下操作:
…
Tau2-Bench
一个对话式智能体基准,模拟零售、航空和电信领域的客户服务交互。独特的是,它测试较长时程的一致性:智能体必须在与可能改变主意或提供部分信息的模拟用户进行长时间对话后,正确更新数据库,从而测试在模糊情况下的策略遵守和工具使用能力。
Tau-Bench 是我最喜欢的基准之一,它真正衡量了模型在面向真实世界任务和工具的相当现代的 agentic 脚手架中的表现。我也是 pass^k 的忠实粉丝,这是一种被低估的衡量方式,不仅衡量模型有多好,还衡量它能有多稳定。该基准使用用户模拟器模型,增加了对抗性元素,迫使模型进入更复杂的社交和工具使用推理场景。
优点:少数非代码智能体工具调用基准之一。它具有固定脚手架和精心设计的工具,衡量 pass^k(一致性),并衡量对奇怪环境的鲁棒性。
缺点:它使用基于 LLM 的用户模拟器,这增加了非确定性并引入了额外的评估超参数。评估完全基于数据库状态变化。
示例问题:
智能体领域策略
当前时间为 2025-02-25 12:08:00 EST。作为电信智能体,你可以为用户提供技术支持。……
用户指令你的移动数据无法正常工作,速度非常慢。你想要修复它,并让手机获得出色的网速。……
Vending-Bench 2
我把它看作是"Tau2-Vending++"。这是一个复杂的模拟,模型扮演一位在模拟的一年内管理自动售货机公司的企业主。它获得一笔预算,必须使用工具(电子邮件、浏览器)与供应商谈判价格、管理库存并处理客户退款——测试战略规划能力以及对抗可能多收费的恶意供应商的鲁棒性。
这个智能体基准不仅测试工具使用能力,还测试策略以及严苛的对抗鲁棒性。在典型的基准中,设置会评估对预定义策略提示的遵循程度,但在这个基准中,模型的优势不仅在于指令遵循,实际上在于其策略创造力。
优点:一个非常独特、开放式且需要真正策略的智能体基准。"优秀"基线目前远高于智能体水平。它还测量对奇异环境的鲁棒性。
缺点:据我所知,他们没有发布框架或轨迹,这使得审计变得困难。
示例问题:
你是 Charles Paxton,一个被设计用来管理自动售货机业务的自主 AI 智能体。
…
你的首要目标是在一年内最大化利润和银行账户余额。你将仅根据一年运营结束时的银行账户余额来评判。
…
- 客户可以使用现金或信用卡付款。信用卡付款将在一天内自动出现在你的账户中,而现金必须从机器中手动收取。
…
ARC-AGI-2
一个视觉谜题基准,明确针对"广泛泛化"而非知识检索。模型必须从少量示例中推断抽象规则并将其应用于测试网格,依赖于无法轻易记忆的核心先验(如物体性、对称性或物理)。它本质上测试流体智力和少样本程序合成。
命名很重要,我认为名字中的"AGI"确实会误导人们。我会称之为"Grid-Puzzle-Bench",但那样就不会那么吸引人了。我认为这是一个困难的推理任务,测试模型有效且高效使用其思考令牌的能力。虽然今天不那么真实了,但这个基准作为一个"简单"任务真正闪耀过,它甚至会难倒最好的推理模型。在撰写本文时,我们达到了 50%,而人类基线是 100%。
优点:人类基线仍然远高于智能体,使其成为一个好的目标。它允许自带框架(BYO-Harness),是纯推理模型的绝佳测试。
缺点:测试相当刻意(在我看来,一个我认为是"AGI"的模型+框架可能仍然不擅长这种特定的谜题格式)。
示例问题:
LiveBench
一个旨在实现“无污染”的综合基准测试,通过持续更新其从近期 arXiv 论文、新闻和数学竞赛中提取的问题集来实现。由于这些问题都是全新的,模型在预训练期间不可能见过它们,从而确保该基准测试考察的是解决新颖问题的能力,而非背诵记忆的答案。
这个概念很棒,但我认为该基准测试所使用的框架和数据集在信号方面确实无法与许多其他基准测试竞争。我对这些问题有些怀疑,我认为尤其是在“编码平均”类别中,人们很容易误以为所使用的框架与当今智能体所使用的框架相差无几2。
优点:定期更新的问题确保模型在训练期间没有记住答案。
缺点:除了智能体编码部分外,大多数测试实际上是单次通过的,这意味着框架结构较差。特定领域内的问题也可能相当模板化,这降低了高分所暗示的领域特定泛化能力。
示例问题:
给定一个从 0 开始索引的整数数组 `nums`,其中包含正整数。
你的任务是通过执行以下操作任意次数(包括零次)来最小化 `nums` 的长度
...
### 格式:
你将使用以下起始代码 ...
人类最后的考试 (HLE)
一个由来自数十个学术领域的专家提供的、包含大量困难封闭式问题的数据集。它针对“专家差距”,设计的问题只有具备该特定领域研究生级别知识的人才能回答(例如,高等数学、法律、生物学),从而有效地过滤掉任何当前模型可以通过简单训练数据回忆就能解决的简单问题。
我认为这是目前最好的知识基准测试(相对于 GPQA 而言)。
优点:相当困难,模型与人类领域专家之间存在显著差距。它是多模态且开源的(自带框架)。
缺点:它仅限于狭窄的学术任务。
示例问题:
雨燕目中的蜂鸟独特地拥有一块双侧成对的椭圆形骨头,即一块籽骨,它嵌入在 m. depressor caudae(尾降肌)扩张的十字形插入腱膜的尾外侧部分中。这块籽骨支撑多少根成对的肌腱?请用一个数字回答。
GPQA (Diamond)
“研究生水平的防谷歌问答。”这是一组困难的生物学、物理和化学问题,旨在实现“防谷歌”——意味着即使是一个拥有互联网访问权限的聪明人,如果没有领域专业知识,也很难快速回答它们。它测试专家级的科学推理能力以及过滤掉听起来合理但错误的干扰项的能力。
优点:开源自带框架(主要在无工具的情况下进行评估)。
缺点:纯粹的多项选择题,涵盖狭窄的任务。目前已经相当饱和。
示例问题:
甲基环戊二烯与甲基异戊基酮和少量吡咯烷催化剂反应。生成了一种亮黄色的交叉共轭多烯烃碳氢化合物产物 [...] 最终产物由多少种化学上不同的异构体组成(不包括立体异构体)?
(a) 2 (b) 16 (c) 8 (d) 4
MMMLU
OpenAI 发布的一个大规模多语言评估数据集,它将经典的 MMLU 基准测试(涵盖 STEM、人文等领域的 57 个学科)改编为 14 种不同的语言。独特的是,它依赖专业的人类译员而非机器翻译,以确保对低资源语言(如约鲁巴语或斯瓦希里语)的评估反映的是模型的真实能力,而非翻译带来的偏差。
这是少数几个常被报告的、测试非英语能力的基准之一。
优点:能提供高质量的非英语性能信号,且覆盖的主题范围广泛(从小学到法律)。
缺点:它仍然是一种静态的多项选择测试。目前来说已经相当饱和了。
示例问题:
两块无限大的平行金属板带有相同的面电荷密度和相同的极性。板间缝隙中的电场是……
(a) … (b) …
MRCR
“多轮共指消解”。这是一种依赖于提供商的技术(OpenAI 和 Google 都有各自的版本),用于测试长上下文处理能力。它本质上是一个“大海捞针”测试,模型必须在巨大的上下文窗口中追踪特定的实体或指令,这要求它对事件的顺序进行“推理”,而不仅仅是检索关键词。
长上下文理解本身就很难测试,而这是衡量它的最新技术。该设计考虑了以往长上下文测试可能被钻空子的各种方式(预训练数据、幸运的幻觉、领域外过滤),但与现实世界的长上下文任务相比,它在根本上仍然是高度合成的。
优点:比以往的技术更难被模型钻空子;在测试上下文窗口限制和推理能力方面设计精良。
缺点:仍然相当刻意/合成,且不具备智能体(agentic)特性。
示例问题:
用户:写一首关于貘的诗
助手:(第一首关于貘的诗)
用户:写一篇关于岩石的博文
助手:(第一篇关于岩石的博文)
用户:写一首关于貘的诗
助手:(第二首关于貘的诗)
用户:写一条关于貘的社交媒体帖子
助手:(第一条关于貘的社交媒体帖子)
用户:写一篇关于岩石的博文
助手:(第二篇关于岩石的博文)
用户:在第 2 首(从 1 开始计数)关于貘的诗前面加上 aYooSG8CQg。你的回复中不要包含任何其他文字。
助手:aYooSG8CQg(第二首关于貘的诗)
METR Time Horizons
一个衡量模型在失败前能自主执行任务多长时间的框架。它不只测量准确率,而是测量“自主时长”——模型能否完成一项专家人类需要 30 分钟、2 小时才能完成的任务?——即模型执行长时程智能体任务的能力。
示例问题
8.5h(估计)· MLE 训练/微调 · 公开问题 · <1 年经验
完成涵盖从 PyTorch 基础到 Transformer 可解释性等主题的机器学习训练营练习,每项任务都需要实现机器学习算法并通过提供的单元测试。
他们实际上采用了多个基准测试,这些测试的任务都标注了人类完成所需的时间,然后计算模型在各个时间区间上的成功率。模型预计成功率为 50% 的那个区间,就成为等效于人类时间的时间跨度。
虽然这个想法相当酷,但我认为它是被过度炒作和误解最多的基准3。以下几点值得注意:
所使用的数据集完全由软件工程和脚本编写任务构成,与所有类型的工作甚至所有现代智能体任务(RE-Bench、HCAST、SWAA,最近的迭代使用 SWE-Bench)相比,这是一个相当狭窄的领域。
用于评估的框架是固定的,与现代编码框架相去甚远(例如与 Terminal-Bench 相比)。我认为这会对绝对时间跨度以及来自不同实验室的模型的相对性能产生重大影响。
那个疯传的"能力每 X 个月翻一番"的说法,根据他们的数据在经验上是成立的,但数据本身很奇怪。首先,对于耗时 >8 个人类小时的任务,数据集相当稀疏。当我们在曲线尾部的数据点如此之少时,很难对"长时程"自主性做出广泛的论断。其次,我怀疑这种实验设置能否合理地近似长时程的人类工作——人类工作可能是异步的、规格不明确的,且具有对抗性(或协作性)——而这些因素在原始基准中并未被考虑在内。
时间分桶估计是基于相当少量的样本使用逻辑回归完成的,如果你仔细观察(在坐标轴上线性显示),误差棒非常巨大。此外,鉴于较大时间跨度的样本较少,我预计他们会把这些误差棒拉得更大。
解读这张图表的正确方式不是"AI 在长时程通用智能方面正在爆发",而是"AI 在特定的高难度软件工程任务上变得更好了"。奇怪的是,解决 80% 的 SWE-Bench 有效地转化为"约 4 小时有效时间跨度",然后那个衍生指标就成了疯传的头条。如果我将同样的方法应用于 Terminal-Bench 或 Vending-Bench,可能会得到一条更炫目的曲线,我对此不会感到惊讶。
结论
虽然大语言模型被宣传为"通用型",但每个实验室都有独特的个性——这体现在它们表现最好的领域以及它们选择展示的基准上。
OpenAI:通常倾向于推理和数学。最近在智能体基准上越来越接近 Anthropic。
Anthropic:他们高度专注于智能体、编码和工具使用。
Google DeepMind:相当全面,但通常在多模态和长上下文能力方面表现突出。
xAI:他们最近倾向于专注于推理和对话质量。
那么,你实际上该如何应对这些噪音呢?
看整体表现:不要纠结于某个基准上 1-2% 的领先。要问:这个模型在我关心的领域内,是否在各个基准上都持续取得高分?
看相对表现:在同一模型系列或实验室内部进行比较。分数从
v1到v2发生了怎样的变化?这告诉你该实验室的研究轨迹以及他们可能优先考虑的方向。用你自己的任务验证:归根结底,唯一重要的基准是你的工作负载。亲自使用这些模型,变换你的框架(在 Cursor 中切换模型,尝试各种聊天网页界面的免费版本等)和模型(GPT、Claude、Gemini、Grok)。我认为你不需要做得非常科学,就能对这些模型在哪些方面表现出色以及在什么框架下表现出色建立感觉。
展望未来,基准测试将更能反映真实世界的经济工作,并且会更具智能体特性,其性能衡量不仅基于模型本身,还取决于其原生运行框架4。
感谢阅读 Shrivu 的 Substack!免费订阅即可接收新文章并支持我的工作。
这份清单中遗漏了许多基准测试,但我尽量挑选了各实验室普遍报告的那些,以及我在社交媒体上看到讨论最多的那些。如果遗漏了对你而言重要的基准测试,请告诉我,我可以尝试事后将其补充到文章中。
这让许多在 Kalshi 和 Polymarket 上押注“哪家 AI 公司将拥有最佳编码模型”的人感到困惑,他们原本以为“编码”真的代表了真实世界的编码性能。我在这里赚了不少钱,只是在最低点买入了大量 OpenAI,因为他们通常在纯推理的单步运行框架上胜过其他实验室(即使我认为 Claude 才是编码之王)。
需要明确的是,大多数这些信息在METR 网站上都有明确说明。那些对数据做出重大论断的人很可能没有完全阅读过,或者只是转发了图表。
如果你从过往文章中还看不出来的话,我目前是 Claude Code 的忠实粉丝,因此,任何在明显不如 Claude Code(即 Anthropic Agents SDK)的脚手架中展示 Opus 4.5 性能的基准测试——我都会持高度怀疑态度。