Multi-SWE-bench: A Multilingual Benchmark for Issue Resolving

📄 arXiv: 2504.02605v1 📥 PDF

作者: Daoguang Zan, Zhirong Huang, Wei Liu, Hanwu Chen, Linhao Zhang, Shulin Xin, Lu Chen, Qi Liu, Xiaojian Zhong, Aoyan Li, Siyao Liu, Yongsheng Xiao, Liangqiang Chen, Yuyu Zhang, Jing Su, Tianyu Liu, Rui Long, Kai Shen, Liang Xiang

分类: cs.SE, cs.AI, cs.CL

发布日期: 2025-04-03


💡 一句话要点

提出Multi-SWE-bench,一个用于多语言代码问题修复的综合基准测试。

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码修复 多语言 基准测试 大型语言模型 强化学习 软件工程 自动化 开源数据集

📋 核心要点

  1. 现有代码修复基准测试主要集中在Python,缺乏对多种编程语言的支持,限制了对LLM在不同软件生态中的评估。
  2. Multi-SWE-bench通过提供涵盖七种编程语言的高质量问题修复实例,构建了一个多语言的综合评估基准。
  3. 该研究评估了多种模型和方法,并开源了数据生产流程和大规模强化学习数据集,促进社区贡献和RL研究。

📝 摘要(中文)

代码问题修复的任务是修改代码库,生成一个补丁来解决给定的问题。然而,现有的基准测试,如SWE-bench,几乎只关注Python,这使得它们不足以评估大型语言模型(LLMs)在不同的软件生态系统中的表现。为了解决这个问题,我们引入了一个多语言问题修复基准测试,称为Multi-SWE-bench,涵盖Java、TypeScript、JavaScript、Go、Rust、C和C++。它包括总共1,632个高质量的实例,这些实例由68位专家注释员从2,456个候选实例中仔细标注而来,确保该基准测试能够提供准确和可靠的评估。基于Multi-SWE-bench,我们使用三种代表性方法(Agentless、SWE-agent和OpenHands)评估了一系列最先进的模型,并提出了包含关键经验见解的综合分析。此外,我们启动了一个Multi-SWE-RL开源社区,旨在为问题修复任务构建大规模强化学习(RL)训练数据集。作为初步贡献,我们发布了一组包含七种编程语言的4,723个结构良好的实例,为该领域的RL研究奠定了坚实的基础。更重要的是,我们开源了整个数据生产流程,以及详细的教程,鼓励开源社区不断贡献和扩展数据集。我们设想我们的Multi-SWE-bench和不断发展的Multi-SWE-RL社区将成为推动RL充分发挥其潜力的催化剂,使我们朝着通用人工智能的曙光迈进。

🔬 方法详解

问题定义:论文旨在解决现有代码修复基准测试数据集单一的问题,特别是缺乏对多种编程语言的支持。现有的基准测试,如SWE-bench,主要集中在Python,无法全面评估大型语言模型在不同软件生态系统中的代码修复能力。这限制了研究人员对LLM在更广泛的软件开发场景中的应用潜力进行探索。

核心思路:论文的核心思路是构建一个多语言的代码修复基准测试,涵盖多种流行的编程语言,从而更全面地评估LLM的代码修复能力。通过提供高质量的多语言问题实例,可以促进LLM在不同编程语言环境下的代码修复技术研究,并推动相关工具和方法的发展。

技术框架:Multi-SWE-bench的构建流程主要包括以下几个阶段:1) 数据收集:从开源项目中收集候选问题实例。2) 数据标注:由68位专家注释员对候选实例进行筛选和标注,确保数据集的质量和可靠性。3) 数据集构建:将标注后的数据整理成结构化的数据集,包括问题描述、代码片段和修复方案。4) 模型评估:使用三种代表性方法(Agentless、SWE-agent和OpenHands)评估一系列最先进的模型。5) 社区建设:启动Multi-SWE-RL开源社区,发布大规模强化学习训练数据集和数据生产流程。

关键创新:该论文的关键创新在于构建了一个多语言的代码修复基准测试,涵盖Java、TypeScript、JavaScript、Go、Rust、C和C++等多种编程语言。此外,论文还开源了数据生产流程和大规模强化学习训练数据集,鼓励社区参与数据集的扩展和维护。

关键设计:Multi-SWE-bench包含1,632个高质量的问题实例,这些实例由68位专家注释员从2,456个候选实例中精心挑选和标注。为了促进强化学习研究,论文还发布了一个包含4,723个结构良好的实例的Multi-SWE-RL数据集。数据标注过程采用严格的标准,确保数据集的准确性和可靠性。论文还提供了详细的教程和文档,方便研究人员使用和扩展数据集。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

论文通过Multi-SWE-bench评估了多种最先进的模型,并提供了详细的性能分析。实验结果表明,现有模型在多语言代码修复任务中仍存在挑战,为未来的研究方向提供了指导。开源的Multi-SWE-RL数据集和数据生产流程为社区贡献和模型训练提供了便利。

🎯 应用场景

Multi-SWE-bench可用于评估和比较不同大型语言模型在代码修复任务中的性能,推动自动化代码修复技术的发展。该基准测试可以应用于软件开发工具、代码审查系统和智能IDE等领域,提高软件开发的效率和质量。Multi-SWE-RL数据集可用于训练强化学习模型,进一步提升代码修复的自动化水平。

📄 摘要(原文)

The task of issue resolving is to modify a codebase to generate a patch that addresses a given issue. However, existing benchmarks, such as SWE-bench, focus almost exclusively on Python, making them insufficient for evaluating Large Language Models (LLMs) across diverse software ecosystems. To address this, we introduce a multilingual issue-resolving benchmark, called Multi-SWE-bench, covering Java, TypeScript, JavaScript, Go, Rust, C, and C++. It includes a total of 1,632 high-quality instances, which were carefully annotated from 2,456 candidates by 68 expert annotators, ensuring that the benchmark can provide an accurate and reliable evaluation. Based on Multi-SWE-bench, we evaluate a series of state-of-the-art models using three representative methods (Agentless, SWE-agent, and OpenHands) and present a comprehensive analysis with key empirical insights. In addition, we launch a Multi-SWE-RL open-source community, aimed at building large-scale reinforcement learning (RL) training datasets for issue-resolving tasks. As an initial contribution, we release a set of 4,723 well-structured instances spanning seven programming languages, laying a solid foundation for RL research in this domain. More importantly, we open-source our entire data production pipeline, along with detailed tutorials, encouraging the open-source community to continuously contribute and expand the dataset. We envision our Multi-SWE-bench and the ever-growing Multi-SWE-RL community as catalysts for advancing RL toward its full potential, bringing us one step closer to the dawn of AGI.