SWE-bench 等:如何正确解读 agent 基准测试
SWE-bench、SWE-bench Verified、Terminal-Bench:这些 agent 基准测试到底测的是什么,它们的分数是怎么算出来的——以及它们的局限在哪里。
SWE-bench 测的是什么
SWE-bench 是一个针对 AI 编程 agent 的测试,基于真实的、已经被解决过的 GitHub 问题构建。对每一个任务,agent 会拿到一个来自开源项目的真实 bug 描述,加上相关代码——然后需要写出一个合适的解决方案。方案是否正确,由项目自带的自动化测试来判断,不是人工逐个评分。
SWE-bench Verified 是怎么来的
最初的 SWE-bench 任务存在一些弱点:有些 bug 描述过于模糊,很难确定唯一正确的解法;有些测试又过于严格或不够公平。为此 OpenAI 和 SWE-bench 的原作者们一起,挑选出 500 个经过特别审查的任务,每一个都由真实的开发者人工核查过——SWE-bench Verified 如今被认为是更可靠的版本。
Terminal-Bench:把命令行本身当作考场
Terminal-Bench 测的东西类似,但覆盖面更广:agent 能不能独立在终端里完成任务——编译代码、搭建服务器、训练一个模型?这里同样只看任务最终是否真的跑通。
这些分数没有告诉你什么
一个很高的百分比,只对应这些特定类型的任务——不能自动等同于你自己的项目。关于如何一般性地解读基准测试分数,可以参考“不被基准测试数字带偏”这一章。
示例
解读一条排行榜记录:“模型 X——在 SWE-bench Verified 上得分 75.6%”。这句话具体的意思是:在来自十二个知名 Python 项目、经过人工审查的 500 个真实 GitHub bug 修复任务中,这个模型通过了对应项目自动化测试的大约 378 个——而不是说它能搞定所有编程任务里的 75.6%。
🛠️ 练习——自己动手试试
对一条当前的 SWE-bench Verified 或 Terminal-Bench 排行榜记录做一次批判性分析,而不只是把它当成一个排名来看。
- 打开 https://www.swebench.com/ 或 https://www.tbench.ai/,找一个排名靠前的模型。
- 弄清楚对应的基准测试到底由多少个任务组成,都是哪种类型的任务。
- 具体想一想:你自己项目的哪些特点(语言、规模、代码的新旧程度)在这个基准测试里根本没出现?
- 写一句话,说明这个百分比真正说明了什么——以及它没有说明什么。
✅ 自查清单
- ☐ 你能解释清楚 SWE-bench 里的任务是从哪来的,又是怎么被自动评分的吗?
- ☐ 你知道为什么 SWE-bench Verified 被认为比最初的数据集更可靠吗?
- ☐ 你有没有具体说出基准测试任务和你自己项目之间的一个区别?
小测验
SWE-bench Verified 和最初的 SWE-bench 数据集相比,区别是什么?
来源
- SWE-bench: offizielle Seite ↗ www.swebench.com
- OpenAI: Introducing SWE-bench Verified ↗ openai.com
- Terminal-Bench: offizielle Seite ↗ www.tbench.ai
- SWE-bench: FAQ ↗ www.swebench.com