promptgarten 🌱
🌍 DE
概念●●●6 分钟 · +60 XP

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 排行榜记录做一次批判性分析,而不只是把它当成一个排名来看。

  1. 打开 https://www.swebench.com/ 或 https://www.tbench.ai/,找一个排名靠前的模型。
  2. 弄清楚对应的基准测试到底由多少个任务组成,都是哪种类型的任务。
  3. 具体想一想:你自己项目的哪些特点(语言、规模、代码的新旧程度)在这个基准测试里根本没出现?
  4. 写一句话,说明这个百分比真正说明了什么——以及它没有说明什么。

自查清单

  • 你能解释清楚 SWE-bench 里的任务是从哪来的,又是怎么被自动评分的吗?
  • 你知道为什么 SWE-bench Verified 被认为比最初的数据集更可靠吗?
  • 你有没有具体说出基准测试任务和你自己项目之间的一个区别?

小测验

SWE-bench Verified 和最初的 SWE-bench 数据集相比,区别是什么?

来源

相关主题

读懂 benchmark,不被榜单忽悠 ●●○什么是 LLM? ●○○选哪个模型,选哪个套餐? ●○○