OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  SWE-bench — 代码修复评测基准

SWE-bench — 代码修复评测基准

 
  platform ·  2025-12-27 20:09:03 · 11 次点击  · 0 条评论  

Kawi the SWE-Llama

阅读文档 ]

日本語 | 中文简体 | 中文繁體

Build License


本项目包含以下工作的代码与数据:
* [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?

📰 最新动态

  • [2025年1月13日]: 我们已将 SWE-bench Multimodal (论文, 数据集) 集成到此仓库中!与 SWE-bench 不同,我们保持了对测试集的评估为私有。请使用我们的新云端评估工具 sb-cli 提交结果至排行榜。
  • [2025年1月11日]: 感谢 Modal,您现在可以完全在云端运行评估!详情请见此处
  • [2024年8月13日]: 推出 SWE-bench Verified!这是我们与 OpenAI Preparedness 合作的第二部分。这是一个包含 500 个问题的子集,已由真实软件工程师确认是可解决的。在报告中查看更多信息!
  • [2024年6月27日]: 我们为 SWE-bench 带来了一个激动人心的更新——在 OpenAI Preparedness 团队的支持下:我们正在转向使用 Docker 进行完全容器化的评估框架,以实现更可复现的评估!请在我们的报告中阅读更多内容。
  • [2024年4月2日]: 我们发布了 SWE-agent,它在完整的 SWE-bench 测试集上达到了最先进的性能!(推文 🔗)
  • [2024年1月16日]: SWE-bench 已被 ICLR 2024 接收为口头报告!(OpenReview 🔗)

👋 概述

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 实例的查询支持。请查看教程中的说明。

⬇️ 下载

数据集 模型 RAG
💿 SWE-bench 🦙 SWE-Llama 13b 🤗 "Oracle" 检索
💿 SWE-bench Lite 🦙 SWE-Llama 13b (PEFT) 🤗 BM25 检索 13K
💿 SWE-bench Verified 🦙 SWE-Llama 7b 🤗 BM25 检索 27K
💿 SWE-bench Multimodal 🦙 SWE-Llama 7b (PEFT) 🤗 BM25 检索 40K
🤗 BM25 检索 50K (Llama tokens)

💫 贡献

我们非常希望听到来自更广泛的 NLP、机器学习和软件工程研究社区的声音,并欢迎任何贡献、拉取请求或问题!
为此,请提交新的拉取请求或问题,并相应地填写相应的模板。我们会尽快跟进!

联系人:Carlos E. JimenezJohn 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},
}

我们的其他项目

sb-cli    SWE-smith    SWE-agent    CodeClash    Mini-SWE-Agent    SWE-ReX
11 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 26 ms
Developed with Cursor