推荐语
字节跳动豆包大模型团队开源首个多语言代码修复基准,推动AI编程技术迈向成熟。
核心内容:
1. Multi-SWE-bench数据集介绍:首个覆盖Python外7种主流编程语言的代码修复基准
2. 多语言代码修复的重要性:解决现有评测数据集覆盖语言单一的问题
3. 开源合作计划:邀请更多研究者参与,共同推动自动编程技术发展
杨芳贤
53A创始人/腾讯云(TVP)最具价值专家
字节跳动豆包大模型团队正式开源首个多语言类 SWE 数据集——Multi-SWE-bench,可用于评估和提升大模型“自动修 Bug”能力。在 SWE-bench 基础上,Multi-SWE-bench 首次覆盖 Python 之外的 7 种主流编程语言,是真正面向“全栈工程”的评测基准。其数据均来自 GitHub issue,历时近一年构建,以尽可能准确测评和提高大模型高阶编程智能水平。本文将介绍 Multi-SWE-bench 的研究背景、数据集构建及后续计划,希望与业界共同促使代码生成技术走向成熟。从 ChatGPT 到 4o、o1、o3、Claude-3.5/3.7,再到 Doubao-1.5-pro、DeepSeek-R1,大模型正在以惊人速度革新编码世界。如今,AI 早已不限于写函数、查 API,让 AI 自动解决 GitHub 上提交的真实问题(Bug),也已成为衡量模型智能高低的标杆之一。但问题也随之浮现:现有主流评测数据集,如 SWE-bench,全部是 Python 项目。这导致部分大模型在 Python 榜单上分数较高,但并不擅长其他语言。为解决泛化能力不足的问题,字节跳动豆包大模型团队正式开源 Multi-SWE-bench。该数据集是业内首个面向多语言代码问题修复的大模型评测基准,覆盖 Java、TypeScript、C、C++、Go、Rust 和 JavaScript 等编程语言。作为一个标准化、可复现、覆盖多语言的“自动编程”开源评测基准,Multi-SWE-bench 旨在推动自动编程技术从仅能解决单一语言(如 Python)和低复杂度的任务,朝着支持多语言、具备真实问题解决能力的通用型智能体迈进。伴随强化学习崛起,团队还同步开源了 Multi-SWE-RL,为 RL 在真实代码环境中的训练提供了标准化、可复用的数据基础设施。目前 Multi-SWE-bench 论文、代码和数据集已全部公开。团队认为,此次开源不过迈出了千里之行的小小一步,单靠一个团队远远无法满足技术发展所需,在此欢迎更多研究者共同参与开源基准和数据基础设施建设。Multi-SWE-bench: A Multilingual Benchmark for Issue Resolving
论文链接:https://arxiv.org/abs/2504.02605
榜单链接:https://multi-swe-bench.github.io
代码链接:https://github.com/multi-swe-bench/multi-swe-bench
数据链接:https://huggingface.co/datasets/ByteDance-Seed/Multi-SWE-bench
1. 主流代码基准局限:覆盖语言单一、复杂任务有限 代码生成任务对大语言模型的逻辑推理、上下文理解等核心能力提出了综合要求。相应地,SWE-bench 为代表的代码修复基准,近年来已成为衡量模型智能水平的重要指标。SWE-bench 是当前最具代表性的代码修复评测基准,强调任务真实、难度高。它基于 GitHub issue,要求模型自动定位并修复 Bug,兼具跨文件修改、复杂语义推理与上下文理解等挑战。相比传统代码生成任务(例如 HumanEval、MBPP、LiveCodeBench),SWE-bench 更贴近现实开发场景,是衡量大模型高阶“编程智能”的关键标尺。然而,随着行业快速发展与模型能力不断提升,该基准难以全面覆盖现实开发中的多语言环境与复杂任务,制约大模型代码智能进一步演进。(1)语言维度单一:当前主流评测几乎全部集中在 Python,缺乏其他语言覆盖,难以评估模型的跨语言泛化能力。(2)任务难度不足:现有基准多为短 patch、单文件修复,未覆盖超多文件、多步骤、超长上下文等复杂开发场景。同时,SWE-bench 中的任务未做难度分级,难以系统衡量模型在不同能力层次上的表现。在此背景下,行业迫切需要一个覆盖主流编程语言、具备高质量标注实例与难度分级的“多语言 Bug 修复评测集”。 2. 涵盖 7 种语言、1,632 个真实修复任务的 Multi-SWE-bench Multi-SWE-bench 旨在补全现有同类基准语言覆盖方面的不足,系统性评估大模型在复杂开发环境下的“多语言泛化能力”,推动多语言软件开发 Agent 的评估与研究,其主要特性如下:- 首次覆盖 7 种主流编程语言(包括 Java、Go、Rust、C、C++、TypeScript、JavaScript),构建多语言开发环境下的代码修复任务,系统评估模型的跨语言适应与泛化能力;
- 引入任务难度分级机制,将问题划分为简单(Easy)、中等(Medium)和困难(Hard)三类,涵盖从一行修改到多文件、多步骤、多语义依赖的开发挑战;
- 1,632 个实例全部来源于真实开源仓库,并经过统一的测试标准和专业开发者的审核筛选,确保每个样本具备清晰的问题描述、正确的修复补丁以及可复现的运行测试环境。
团队基于 Multi-SWE-bench 进行实验观察到,尽管当前 LLM 面向 Python 修复率表现不错,但面向其他语言平均修复率普遍不足 10%。部分主流模型在 Python 上表现更为优异,面向其他语言则分数不佳。同时,随着任务难度增加,模型修复率呈现逐级下降趋势。这也说明,多语言代码修复仍是大模型智能能力的一道分水岭,更是推动 AI 向通用编程智能体演进的核心方向。在构建 Multi-SWE-bench 过程中,团队设计并执行了一套系统性的数据构建流程,共分五个阶段,涵盖从项目筛选、数据采集到数据验证的全过程,最大程度保障数据的真实性、全面性与可用性。团队基于 GitHub 公开仓库,从多个维度筛选高质量的项目仓库,确保覆盖 7 大主流语言(Java、TypeScript、JavaScript、Go、Rust、C 和 C++)。选择标准包括: (1)超过 500 GitHub Stars,具备一定的社区活跃度;(3)拥有 CI/CD 支持,可通过 GitHub Actions 等工具自动化构建与测试;完成仓库初筛后,团队通过自动化爬虫从项目中收集所有 PR,并应用以下过滤规则进行筛选:(1)PR 必须关联至少一个 GitHub issue;(3)已被合并至主分支,代码质量与维护者被充分认可。其中,每条 PR 记录都会提取关键信息,包含:原始 issue 描述、修复补丁、测试补丁、commit 信息等。为了保证数据集中的每个任务都具备完整的可运行性,团队基于每个 PR,构建了对应的 Docker 容器,复刻其运行环境。 依托 CI/CD 配置、README 等元信息,提取依赖项并自动生成 Dockerfile。对于构建失败的情况,团队还会手动排查错误并尽可能修复,确保环境的完整性和可复现性。每个 PR 会在构建好的环境中依次运行三种状态的测试流程: (3)同时应用测试与修复补丁(test.patch + fix.patch) ;团队通过分析三阶段测试日志,识别是否存在有效的修复行为(如 FAILED→PASSED),并排除存在回归风险、测试行为异常等不符合规范的样本。经过这一阶段后,团队最终保留了 2,456 条候选数据。为进一步提升数据可靠性,团队引入了人工双重标注流程。共计 68 位专业标注者参与审核,所有标注人员具备对应语言开发经验与高度相关的背景。 每条样本由两位独立标注员标注,并进行交叉复核,最终所有标注结果还需通过内部 QA 团队的抽检,确保一致性与准确性。经过这一阶段,我们最终保留了 1,632 条高质量的实例,并公开所有标注问卷与评分数据,确保数据透明度。通过系统化的数据构建流程,团队希望为未来自动编程智能体的评估与训练打下坚实基础,驱动相关研究走向规模化与工程化。随着 GPT-4o、o1、o3 等新一代模型的爆火,强化学习方法在自动编程中的潜力正受到广泛关注。 基于 RL 将对代码智能体起到重要推动作用的判断,豆包大模型团队进一步构建了 Multi-SWE-RL,为 RL 在代码环境中的训练,提供统一、标准的数据基础。这让模型不仅有了学习的“教材”,还拥有学习的“环境”。作为首批贡献者,团队初步贡献了 4,723 个实例,每个实例均配备可复现的 Docker 环境,并且支持一键启动、自动评估、快速接入 RL 训练框架。同时,团队完整开源数据构建流程与工具链。目前,团队同步启动开源社区计划,鼓励开发者共同参与数据集扩展、RL 数据贡献与新方法评测。Multi-SWE-RL 项目提供了详尽的贡献教程、激励机制,以及实时更新的任务看板,确保社区协作高效透明。所有新增数据与评测结果将定期纳入后续公开版本,并署名所有有效贡献者或作者。豆包大模型团队期待与更多开发者、研究者共同推进 RL for Code 生态建设,为构建通用软件智能体奠定基础。数据集链接:https://huggingface.co/datasets/ByteDance-Seed/Multi-SWE-RL
豆包大模型团队希望,Multi-SWE-bench 能作为大模型在多种主流编程语言与真实代码环境中的系统性评测基准,推动自动编程能力向更实用、更工程化的方向发展。相比于以往聚焦 Python 的单语言任务,Multi-SWE-bench 更贴近现实中的多语言开发场景,也更能反映当前模型在“自动化软件工程”方向上的实际能力边界。在未来,团队将持续拓展 Multi-SWE 系列的覆盖范围——包括新增语言、扩展更多软工任务,并通过社区共建机制,鼓励更多研究者和开发者参与 基准构建与 RL 训练数据贡献