[ 阅读文档 ]
本项目包含以下工作的代码与数据:
* [ICLR 2025] SWE-bench Multimodal: Do AI Systems Generalize to Visual Software Domains?
* [ICLR 2024 Oral] SWE-bench: Can Language Models Resolve Real-World GitHub Issues?
SWE-bench 是一个用于评估大语言模型在解决来自 GitHub 的真实世界软件问题上的基准测试。
给定一个代码库和一个问题,语言模型的任务是生成一个解决所述问题的补丁。

要访问 SWE-bench,请复制并运行以下代码:
from datasets import load_dataset
swebench = load_dataset('princeton-nlp/SWE-bench', split='test')
SWE-bench 使用 Docker 进行可复现的评估。
请按照 Docker 安装指南 在您的机器上安装 Docker。
如果您在 Linux 上设置,我们建议也查看安装后步骤。
最后,要从源代码构建 SWE-bench,请按照以下步骤操作:
git clone git@github.com:princeton-nlp/SWE-bench.git
cd SWE-bench
pip install -e .
运行以下命令测试您的安装:
python -m swebench.harness.run_evaluation \
--predictions_path gold \
--max_workers 1 \
--instance_ids sympy__sympy-20590 \
--run_id validate-gold
[!NOTE]
如果使用 MacOS M 系列或其他基于 ARM 的系统,请在上述脚本中添加--namespace ''。
默认情况下,评估脚本会从 DockerHub 拉取镜像(为 Linux 构建)。
添加--namespace ''将导致评估镜像在本地构建。
使用以下命令在 SWE-bench Lite 上评估补丁预测:
python -m swebench.harness.run_evaluation \
--dataset_name princeton-nlp/SWE-bench_Lite \
--predictions_path <path_to_predictions> \
--max_workers <num_workers> \
--run_id <run_id>
# 使用 --predictions_path 'gold' 来验证黄金补丁
# 使用 --run_id 来命名评估运行
# 使用 --modal true 在 Modal 上运行
此命令将在当前目录生成 Docker 构建日志 (logs/build_images) 和评估日志 (logs/run_evaluation)。
最终的评估结果将存储在 evaluation_results 目录中。
[!WARNING]
SWE-bench 评估可能非常消耗资源。
我们建议在至少有 120GB 可用存储空间、16GB RAM 和 8 个 CPU 核心的x86_64机器上运行。
我们建议将--max_workers设置为少于min(0.75 * os.cpu_count(), 24)。如果使用 Docker Desktop 运行,请确保将虚拟磁盘空间增加到约 120GB 可用空间。根据 Docker 可用的 CPU 数量,将 max_workers 设置为与上述建议一致。
对
arm64机器的支持是实验性的。
要查看评估框架的完整参数列表,请运行:
python -m swebench.harness.run_evaluation --help
查看评估教程以获取可评估数据集的完整说明。
如果您正在寻找非本地的、基于云的评估,请查看...
* sb-cli,我们的工具,用于在 AWS 上自动运行评估,或者...
* 在 Modal 上运行 SWE-bench 评估。详情请见此处
此外,您还可以:
* 在我们的预处理数据集上训练您自己的模型。(🆕 查看 SWE-smith,一个用于创建 SWE 训练数据的专用工具包。)
* 在现有模型(包括本地模型和 API 模型)上运行推理。推理步骤是您向模型提供仓库 + 问题并让它生成修复方案的地方。
* 在您自己的仓库上运行 SWE-bench 的数据收集流程 (教程),以创建新的 SWE-Bench 任务。
* ⚠️ 我们暂时暂停了关于创建 SWE-bench 实例的查询支持。请查看教程中的说明。
我们非常希望听到来自更广泛的 NLP、机器学习和软件工程研究社区的声音,并欢迎任何贡献、拉取请求或问题!
为此,请提交新的拉取请求或问题,并相应地填写相应的模板。我们会尽快跟进!
联系人:Carlos E. Jimenez 和 John Yang (邮箱:carlosej@princeton.edu, johnby@stanford.edu)。
MIT 许可证。请查看 LICENSE.md。
如果您觉得我们的工作有帮助,请使用以下引用。
对于 SWE-bench (Verified):
@inproceedings{
jimenez2024swebench,
title={{SWE}-bench: Can Language Models Resolve Real-world Github Issues?},
author={Carlos E Jimenez and John Yang and Alexander Wettig and Shunyu Yao and Kexin Pei and Ofir Press and Karthik R Narasimhan},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=VTF8yNQM66}
}
对于 SWE-bench Multimodal
@inproceedings{
yang2024swebenchmultimodal,
title={{SWE}-bench Multimodal: Do AI Systems Generalize to Visual Software Domains?},
author={John Yang and Carlos E. Jimenez and Alex L. Zhang and Kilian Lieret and Joyce Yang and Xindi Wu and Ori Press and Niklas Muennighoff and Gabriel Synnaeve and Karthik R. Narasimhan and Diyi Yang and Sida I. Wang and Ofir Press},
booktitle={The Thirteenth International Conference on Learning Representations},
year={2025},
url={https://openreview.net/forum?id=riTiq3i21b}
}
对于 SWE-bench Multilingual
@misc{yang2025swesmith,
title={SWE-smith: Scaling Data for Software Engineering Agents},
author={John Yang and Kilian Lieret and Carlos E. Jimenez and Alexander Wettig and Kabir Khandpur and Yanzhe Zhang and Binyuan Hui and Ofir Press and Ludwig Schmidt and Diyi Yang},
year={2025},
eprint={2504.21798},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2504.21798},
}