近日,AWS AI Labs 推出了 SWE-PolyBench,这是一个多语言的开源基准,旨在为 AI 编程助手的评估提供一个更全面的框架。随着大规模语言模型(LLM)的进步,AI 编程助手的开发已经取得了显著的进展,这些助手能够生成、修改和理解软件代码。然而,目前的评估方法仍然存在诸多局限,许多基准测试往往仅集中在 Python 等单一语言,无法全面反映真实代码库的结构和语义多样性。

AWS 发布 SWE-PolyBench:评估 AI 编程助手的新开源基准

SWE-PolyBench 通过涵盖21个 GitHub 代码库,支持 Java、JavaScript、TypeScript 和 Python 四种流行编程语言,提供了2110个任务,包括错误修复、功能实现和代码重构。与以往的基准测试不同,SWE-PolyBench 使用了真实的拉取请求(PR),这些 PR 能够解决实际问题,并配备了相关的测试用例,从而实现可验证的评估。此外,还发布了一个更小的分层子集 ——SWE-PolyBench500,以支持快速实验,同时保留任务和语言的多样性。

AWS 发布 SWE-PolyBench:评估 AI 编程助手的新开源基准

在技术结构和评估指标方面,SWE-PolyBench 采用了基于执行的评估流程。每个任务都包含一个代码库快照和一个源于 GitHub 问题的任务描述。系统会在针对特定语言生态系统(如 Java 的 Maven 或 JavaScript/TypeScript 的 npm)配置的容器化测试环境中应用相关的真实补丁。评估结果使用两种类型的单元测试进行测量:从失败到通过(F2P)和从通过到通过(P2P)。

AWS 发布 SWE-PolyBench:评估 AI 编程助手的新开源基准

为了对编程助手进行更细致的评估,SWE-PolyBench 引入了基于具体语法树(CST)的指标,这些指标包括文件级和节点级检索分数,评估编程助手在查找和修改代码库中相关部分的能力。此次评估适配了三个开源编程助手 ——Aider、SWE-Agent 和 Agentless,它们均使用了 Anthropic 的 Claude3.5模型,并进行了调整以满足基准的多语言和代码库要求。

评估结果显示,不同编程语言和任务类型的表现差异明显。例如,Python 任务的通过率最高可达24.1%,而 TypeScript 则仅为4.7%。在任务复杂度方面,单一功能或类的修改任务成功率高达40%,但涉及多文件变更的任务则显著下降。

github:https://github.com/amazon-science/SWE-PolyBench

划重点:  

🌟 AWS 推出 SWE-PolyBench,为 AI 编程助手提供全面的评估框架。  

🔧 基准涵盖21个 GitHub 代码库,支持 Java、JavaScript、TypeScript 和 Python 四种语言。  

📈 评估显示不同语言和任务的表现差异,Python 任务成功率最高