0

0

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

WBOY

WBOY

发布时间:2024-08-14 18:06:03

|

668人浏览过

|

来源于机器之心

转载

有人说,「我们期待的是草莓,但他们发布的是羽衣甘蓝。」我们来看看这个「羽衣甘蓝」是做什么用的。

一直以来,大模型的编程能力都备受关注,超强 AI 程序员 Devin 的问世更是将「AI 能否替代程序员」这一话题推上了风口浪尖。最近,Devin 也迎来了新对手 —— 初创公司 Cosine 推出的自主 AI 程序员 Genie。该公司表示,Genie 的表现轻松超越了 Devin,在第三方基准测试 SWE-bench 上的得分为 30%,而 Devin 的得分仅为 13.8%。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

openai「草莓」模型再次跳票,凌晨发布的swe-bench verified是个啥?

这个 SWE-Bench 是一个用于评估 LLM 解决 GitHub 上真实软件问题能力的基准测试数据集。它收集了来自 12 个流行的 Python 仓库的 2,294 个 Issue-Pull Request 对。在测试时,LLM 会拿到一个代码库和 issue 描述,然后生成一个补丁来解决 issue 描述的问题。这个数据集在 AI 编程能力的评估中已被广泛使用。

在 AI 编程能力进化的同时,这个基准也在进化。今天凌晨,网传的 OpenAI「草莓」模型再次跳票,但 OpenAI 确实发布了新东西,就是 SWE-Bench 的改进版本 ——SWE-bench Verified。

OpenAI 指出,原始的 SWE-bench 存在一些问题,可能导致模型的自主软件工程能力被低估。因此,在改进过程中,他们与 SWE-Bench 原作者合作,进行了人工筛选和改进,确保单元测试的范围适当且问题描述明确。

在 SWE-bench Verified 上进行的新测试中,很多 AI 编程智能体的得分都比原来要高。其中,UIUC 的无 Agent 方案 Agentless 甚至实现了得分翻倍,OpenAI 认为,这证明之前的基准确实存在低估 AI 编程能力的缺陷。

但对于蹲守「草莓」的全世界网友来说,这个发布还是过于敷衍了。有人说,「我们期待的是草莓,但他们发布的是羽衣甘蓝。」

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

关于 SWE-bench 的背景知识

SWE-bench 测试集中的每个示例都是根据 GitHub 上 12 个开源 Python 代码库中一个已解决的 GitHub issue 创建的。每个样本都有一个相关的拉取请求(PR),其中包括解决方案代码和用于验证代码正确性的单元测试。这些单元测试被称为 FAIL_TO_PASS 测试,因为在 PR 中的解决方案代码添加之前它们会失败,添加之后则会通过。每个样本还包括 PASS_TO_PASS 测试,这些测试在 PR 合并前后都会通过,用于检查 PR 是否破坏了代码库中与问题无关的其他功能。

在 SWE-bench 中,AI 智能体会获得来自 GitHub issue 的原始文本,即问题陈述,并可以访问代码库。给定这些信息,智能体必须编辑代码库中的文件以解决问题。

AI 智能体给出的编辑将通过运行 FAIL_TO_PASS 和 PASS_TO_PASS 测试来评估。如果 FAIL_TO_PASS 测试通过,这意味着编辑解决了问题。如果 PASS_TO_PASS 测试通过,则意味着编辑没有破坏代码库中无关的部分。要完全解决原始的 GitHub 问题,两组测试都必须通过。

提高 SWE-bench 稳健性、可靠性的三个改进方向

为了提高 SWE-bench 的稳健性和可靠性。开发团队确定了三个主要的改进方向:

  • 用于评估解决方案正确性的单元测试通常过于具体,有时甚至与问题无关。这可能导致正确的解决方案被拒绝。
  • 许多样本的问题描述不够明确,导致对问题是什么以及应该如何解决存在歧义。
  • 有时很难为智能体可靠地设置 SWE-bench 开发环境,这会无意中导致单元测试失败,而不管解决方案如何。在这种情况下,完全有效的解决方案可能被评为不正确。

SWE-bench Verified

为了解决这些问题,OpenAI 启动了一项由专业软件开发人员进行的人工注释活动,对 SWE-bench 测试集中的每个样本进行了筛查,以确保单元测试的范围适当,问题描述清晰明确。

他们与 SWE-bench 的作者们一起发布了 SWE-bench Verified:这是 SWE-bench 原始测试集的一个子集,包含 500 个样本,这些样本已经通过了人工注释者的验证。这个版本取代了原来的 SWE-bench 和 SWE-bench Lite 测试集。此外,他们还在发布所有 SWE-bench 测试样本的人工注释。

他们还与 SWE-bench 的作者合作,为 SWE-bench 开发了一个新的评估工具,该工具使用容器化的 Docker 环境,使在 SWE-bench 上进行的评估变得更容易、更可靠。

  • 工具地址:https://github.com/princeton-nlp/SWE-bench/tree/main/docs/20240627_docker

改进方法

OpenAI 与 93 位具有 Python 经验的软件开发人员合作,手动筛选 SWE-bench 样本,并对 SWE-bench 测试集中的 1699 个随机样本进行了注释,最终得到 SWE-bench Verified。

他们的方法是对 SWE-bench 测试集中的样本进行注释,以确保测试的公平性和准确性。具体来说,他们关注两个关键点:首先,评估问题描述是否足够详细,以防过于模糊的描述导致测试不公平;其次,检查 FAIL_TO_PASS 单元测试是否会错误地筛选掉有效的解决方案。

每个注释标准都有一个标签,范围为 [0, 1, 2, 3],严重程度逐渐增加。标签 0 和 1 是次要的;标签 2 和 3 是严重的,表明样本在某些方面不充分,应该被丢弃。

此外,假设样本没有问题,OpenAI 会通过让注释者估计开发人员决定和实施解决方案需要多长时间来评估每个样本的难度。最后,OpenAI 提供了一个自由格式输入选项来标记样本的任何其他主要问题。

为了构建 SWE-bench Verified,OpenAI 从原始测试集中过滤掉问题陈述或 FAIL_TO_PASS 单元测试严重性为 2 或以上的任何样本,并且还过滤掉所有标记有其他严重问题的样本。

注释结果

按照新的标准,原始 SWE-bench 中的样本有很大一部分是不合格的。如图所示,38.3% 的样本因为问题陈述不够明确而被标记,61.1% 的样本因为单元测试可能会不公平地将有效的解决方案错误地标记为不正确而被标记(严重程度 2、3 两级加起来)。总体而言,他们的注释过程导致 68.3% 的 SWE-bench 样本因问题陈述不明确、单元测试不公平或其他问题而被过滤掉。

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

Vondy
Vondy

下一代AI应用平台,汇集了一流的工具/应用程序

下载
下图比较了原始 SWE-bench 数据集和新 SWE-bench Verified 数据集的难度分布。他们根据 1699 个样本的随机子集估算 SWE-bench 的难度分布。

从图上可以看出,在原始的 SWE-bench 数据集中,大多数(77.8%)样本的预计完成时间少于一个经验丰富的软件工程师一个小时的工作量。SWE-bench Lite 和新 SWE-bench Verified 数据集进一步增加了这一比例,预计超过一个小时才能解决的问题少于 10%。然而,这种变化背后的机制有着很大的不同:SWE-bench Lite 是对原始数据集的子采样,使基准测试变得更容易,而 SWE-bench Verified 则试图从数据集中移除不可行的样本。

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

各个智能体在 SWE-bench Verified 上的性能

在新的 SWE-bench Verified 数据集上,开发团队使用多个在原始 SWE-bench 排行榜上表现良好的开源支架测试了 GPT-4o 的性能。

结果发现 GPT-4o 在性能最佳的支架上的性能在 SWE-bench Verified 上达到 33.2%,是原始 SWE-bench 上 16% 分数的两倍多。总的来说,这证实了 OpenAI 最初的怀疑,即原始 SWE-bench 低估了智能体的能力。

值得注意的是,从 SWE-bench Lite 到 SWE-bench Verified 的跳跃并不那么明显,因为经过筛选,SWE-bench Lite 已经比完整数据集变得更容易。

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

按难度分层的性能分析

在 SWE-bench Verified 上进行评估时,性能的提高可能部分是由于测试样本的分布向更简单的样本倾斜。

OpenAI 通过绘制按难度分层的性能来调查这一点。如果新数据集只是改变难度分布以包含更简单的样本,则每个类别内的分层性能不会改变,就像从原始 SWE-bench 到 SWE-bench Lite 的情况一样。

相反,OpenAI 观察到,当转向 SWE-bench Verified 时,智能体在各个难度类别的性能均有所提高,这与预期效果一致,即从所有类别中移除不可能的样本,而不是简单地移除困难样本。

OpenAI「草莓」模型再次跳票,凌晨发布的SWE-bench Verified是个啥?

参考链接:https://openai.com/index/introducing-swe-bench-verified/

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

4296

2026.01.21

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

280

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

516

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

417

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

454

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

42

2026.02.11

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

418

2026.01.27

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2917

2024.08.16

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号