以为能等到"草莓",没想到来了个"羽衣甘蓝"
尽管全世界都在关注"草莓计划",但似乎叛逆的OpenAI总是出人意料。你想要"草莓",他们偏偏给你一个"羽衣甘蓝"。
北京时间14日凌晨2点,OpenAI在其官网上发文称正在发布一个经过人工验证的SWE-bench子集,该子集可以更可靠地评估AI模型解决现实世界软件问题的能力。
SWE-bench Hugging Face地址:
https://huggingface.co/datasets/princeton-nlp/SWE-bench_Verified
作为准备框架的一部分(准备框架是OpenAI设立的一套安全地开发和部署其前沿模型的方法),OpenAI开发了一系列指标来跟踪、评估和预测模型的自主行动能力。
一直以来,自主完成软件工程任务的能力是前沿模型自主风险类别中中等风险水平的关键组成部分。由于软件工程任务的复杂性、准确评估生成的代码的难度以及模拟真实世界开发场景的挑战,评估这些能力具有挑战性。因此,OpenAI的准备方法还必须仔细检查评估本身,尽量减少高估或低估风险系数的可能性。
而这一套方法中最流行的软件工程评估套件之一就是SWE-bench。它能用于评估大型语言模型到底能不能解决来自GitHub上的实际软件问题,以及能把问题解决到什么程度。基准测试包括为代理提供代码存储库和问题描述,并要求它们生成解决该问题所述问题的补丁。
根据SWE-bench排行榜,截至2024年8月5日,编码代理在SWE-bench上取得了令人瞩目的进步,得分最高的代理在SWE-bench上的得分为20%,在SWE-bench Lite上的得分为43%。
经过测试发现,一些SWE-bench上的任务可能难以解决或无法解决,这导致SWE-bench系统性地低估了模型的自主软件工程能力。因此OpenAI与SWE-bench的作者合作,在新版本的基准测试中解决了这些问题,该版本应该可以提供更准确的评估。
那么,SWE-bench的背景是怎样的?
SWE-bench测试集中的每个示例都是根据GitHub上12个开源Python存储库之一中已解决的GitHub问题创建的。每个示例都有一个关联的拉取请求(PR),其中包括解决方案代码和用于验证代码正确性的单元测试。这些单元测试在添加PR中的解决方案代码之前失败,但之后通过,因此称为FAIL_TO_PASS测试。每个示例还有关联的PASS_TO_PASS测试,这些测试在PR合并之前和之后都通过,用于检查代码库中现有的不相关功能是否未被PR破坏。
对于SWE-bench中的每个样本,代理都会获得来自GitHub问题的原始文本(称为问题陈述),并被授予访问代码库的权限。有了这些,代理必须编辑代码库中的文件来解决问题。测试不会向代理显示。
FAIL_TO_PASS通过运行和测试来评估拟议的编辑PASS_TO_PASS。如果测试通过,则意味着解决了问题。如果测试通过,则编辑没有无意中破坏代码库的不相关部分。编辑必须通过这两组测试才能完全解决原始GitHub问题。FAIL_TO_PASS PASS_TO_PASS
采用SWE-bench作为准备情况评估
鉴于SWE-bench与准备框架的潜在相关性,研究人员旨在找到提高基准稳健性和可靠性的方法。因此确定了三个主要改进领域:
用于评估解决方案正确性的单元测试通常过于具体,在某些情况下甚至与问题无关。这可能会导致正确的解决方案被拒绝。
许多示例的问题描述不明确,导致无法明确问题是什么以及如何解决。
有时很难为代理可靠地设置SWE-bench开发环境,无论采用哪种解决方案,都可能无意中导致单元测试失败。在这种情况下,完全有效的解决方案可能会被评为不正确。
下面是一个说明第一个问题的例子。
SWE-bench示例scikit-learn__scikit-learn-14520任务是让代理解决scikit-learn存储库中的问题 此问题陈述报告函数的copy参数可以由用户指定,但被库忽略(该行为而是在函数内部硬编码):
解决上述问题的代理首先必须处理函数行为是有意为之还是错误的问题,然后对代码库进行更改以解决问题。根据SWE-bench设置,代理提出的任何解决方案都需要通过以下测试,该测试摘自 最初解决问题的PR:
此测试明确检查解决方案是否在copy使用该参数时必须引发DeprecationWarning,尽管上述问题文本中的原始问题陈述并未传达此要求。此外,即使代理意识到应该引发DeprecationWarning,测试也要求代理完全匹配弃用消息,这是在代理无法访问的PR中进行一些讨论后才得出的结论。
请注意,代理仅从主要问题文本中获得了问题描述,并且无法看到它需要通过的测试。在这种设置下,代理几乎不可能在SWE-bench中解决此示例。
已通过SWE-bench验证
为了解决这些问题,OpenAI与专业软件开发人员一起发起了一项人工注释活动,以筛选SWE-bench测试集的每个样本,以获得适当范围的单元测试和明确指定的问题描述。
OpenAI与SWE-bench的作者一起发布了SWE-bench Verified:SWE-bench原始测试集的一个子集,包含500个经人工注释员验证无问题的样本。此版本取代了原始SWE-bench和SWE-bench Lite测试集。此外,OpenAI还发布了所有SWE-bench测试样本的人工注释。
同时,OpenAI还与SWE-bench作者合作,为SWE-bench开发了新的评估工具。它使用容器化的Docker环境使得在SWE-bench上进行评估更容易、更可靠。
在SWE-bench Verified上,GPT-4o解析了33.2%的样本,其中表现最好的开源支架Agentless在SWE-bench上的得分是之前16%的两倍。
没有等来"草莓计划"官宣,这款测试集最多只能算得上一道餐前小吃。那么,这样一款测试集也值得OpenAI为此造势吗?
一周前,OpenAI首席执行官Sam Altman发布了一个带有草莓图片的推文,并配文"我喜欢花园里的夏天"。图片中的四颗草莓,或许暗示了GPT-4的新版本可能专为推理而打造,可与专为创造和互动而打造的GPT-4o一起运行。这引发了大家对OpenAI发布新模型Strawberry的各种猜想。
近两天,X上的爆料人@iruletheworldmo频繁发布Strawberry发布相关的消息,并表示OpenAI将在太平洋时间8月13日上午10点发布其新模型——一个以推理为重点的人工智能"草莓计划"(Strawberry)。整个社区全都是各种期待。
神秘的"草莓计划"是什么?
OpenAI的新"草莓计划"可以让ChatGPT更自由地搜索网络并解决复杂问题。
"草莓计划"最早是在7月12日被外媒曝出。据知情人士和路透社审查的内部文件称,ChatGPT制造商OpenAI正在一个代号为"Strawberry"的项目中研究其人工智能模型的新方法。
但该项目的细节此前未曾报道过,而微软支持的初创公司正在竞相证明其提供的模型类型能够提供高级推理能力。
根据路透社5月份看到的一份OpenAI内部文件副本,OpenAI内部团队正在开发Strawberry。路透社无法确定该文件的具体发布日期,该文件详细说明了OpenAI打算如何使用Strawberry进行研究的计划。消息人士向路透社描述了该计划,称其为一项正在进行的工作。该通讯社无法确定Strawberry距离公开发布还有多久。
这位知情人士表示,即使在OpenAI内部,Strawberry的工作原理也是一个严格保密的秘密。
该文件描述了一个使用Strawberry模型的项目,目的是使公司的人工智能不仅能够生成查询的答案,而且能够提前规划,自主可靠地浏览互联网,从而执行OpenAI所称的"深度研究",消息人士称。
根据外媒对十多位人工智能研究人员的采访,这是迄今为止人工智能模型尚未解决的问题。
当时,被问及Strawberry以及本文报道的细节时,OpenAI公司发言人在一份声明中表示:"我们希望我们的人工智能模型能够像我们一样看待和理解世界。持续研究新的人工智能能力是业内的常见做法,大家共同相信这些系统的推理能力会随着时间的推移而提高。"
该发言人没有直接回答有关草莓的问题。
谷歌打擂台
Strawberry一直以来"犹抱琵琶半遮面",这次OpenAI再突然宣造势宣传,很难说不是为了追击谷歌几乎同时进行的"Made by Google 2024"硬件活动。
此次活动上,谷歌自己最新的硬件产品,包括期待已久的下一代Pixel手机:Pixel 9、Pixel 9 Pro和新款Pixel 9 Fold,此外还有新款Pixel Watch和Pixel Buds等硬件产品。虽然是硬件发布,但AI主题依然充满了整场发布。其中,谷歌的AI聊天机器人Gemini是Pixel 9手机的默认助手。