SWE-bench Multilingual 多语言软件工程评测基准全面解读:覆盖9种编程语言的大模型评测基准
SWE-bench Multilingual 是 SWE-bench 基准系列的扩展版本。该基准用于评估大语言模型在软件工程任务上的表现,覆盖多种编程语言。数据集包含 300 个从真实 GitHub 问题与对应拉取请求中提取的任务,涉及 42 个仓库和 9 种编程语言。模型接收问题描述与仓库快照后,需生成代码补丁,并通过失败到通过(F2P)和通过到通过(P2P)测试套件进行验证。
现有软件工程评测存在的局限
原始 SWE-bench 基准主要聚焦 Python 仓库,导致对其他编程语言的评估覆盖不足。部分代理框架依赖 Python 专属工具,易出现针对特定基准的优化现象。同时,现有评测难以全面反映不同语言生态下的实际开发场景,包括构建环境差异与跨文件修改复杂度。
基准发布信息与设计目标
该基准由 Kabir Khandpur 牵头,与 SWE-bench 团队(包括 Carlos E. Jimenez、John Yang 等)合作开发,于 2025 年 5 月 6 日正式发布。数据集托管于 Hugging Face(SWE-bench/SWE-bench_Multilingual),评估代码集成至 SWE-bench GitHub 仓库。leaderboard 地址为 swebench.com/multilingual-leaderboard.html。
其设计目标为解决 Python 中心化问题,提供跨语言标准化评估环境,支持快速运行以便模型迭代。同时,该基准通过统一 Docker 环境实现公平比较,并覆盖从系统级语言到脚本语言的多样仓库。
基准构建与评估流程
数据集构建流程包括以下步骤:
- 仓库选取:依据 2024 年 Stack Overflow 开发者调查选择语言,从 GitHub 按星标数取前 100 个英文为主的仓库,筛选可本地构建且测试运行时间合理的条目(约 30% 被排除)。
- 任务收集:使用与 SWE-bench 相同的管道提取 issue-PR 对,要求 PR 包含测试文件。排除描述不清晰、多问题合并或测试无法区分有效方案的案例。
- 环境配置:每种语言使用基础 Docker 镜像安装运行时与系统包,按实例指定安装与测试命令。因仓库多样性,未预置共享依赖缓存镜像。
- 手动验证:克隆仓库至 issue 提交点,执行预安装命令,应用测试文件与金标准补丁(PR 中的非测试代码变更),确认 F2P 与 P2P 测试通过,并提取测试套件。
:
