SWE-bench
SWE-bench 是一个专为评估大语言模型在真实软件开发场景中表现而设计的基准测试工具。它收集了来自 GitHub 的真实项目代码库及对应的实际_issue_(如 Bug 报告或功能请求),要求模型在理解现有代码的基础上,自动生成能够解决问题的代码补丁。
这一工具主要解决了以往 AI 编程评测多依赖合成数据或简化任务,难以反映模型在复杂、真实工程环境中实战能力的痛点。通过提供基于真实开源项目的测试集,SWE-bench 能更准确地衡量 AI 系统是否具备像人类软件工程师一样定位并修复问题的能力。
SWE-bench 特别适合 AI 研究人员、大模型开发者以及关注代码智能领域的技术团队使用。无论是用于训练新模型、验证算法效果,还是追踪行业技术进展,它都提供了标准化的评估框架。其独特亮点在于采用了完全容器化的 Docker 评估环境,确保测试结果的高度可复现性;此外,项目还推出了经人类工程师验证的"SWE-bench Verified"子集,并扩展支持多模态软件任务,进一步提升了评测的严谨性与前沿性。作为普林斯顿大学 NLP 团队的开源成果,SWE-bench 正逐渐成为衡量代码大模型实力的重要标尺。
使用场景
某开源 Python 数据分析库的维护团队,正面临 GitHub 上积压的大量复杂 Issue,急需评估新引入的 AI 编程助手是否具备真正修复生产环境代码的能力。
没有 SWE-bench 时
- 评估标准模糊:团队只能依靠人工抽查几个简单 Bug 来测试 AI,无法判断其在处理涉及多文件修改、依赖冲突等真实复杂场景时的表现。
- 环境复现困难:每个 Issue 依赖特定的代码版本和运行环境,人工搭建测试现场耗时极长,导致验证一个补丁往往需要数小时。
- 回归风险不可控:难以确保 AI 生成的代码不仅修复了当前问题,还没有意外破坏原有的功能逻辑,缺乏自动化的回归测试机制。
- 进步难以量化:在迭代优化 AI 模型时,缺乏统一的基准数据集,无法客观对比不同版本模型在解决真实工程问题上的能力提升。
使用 SWE-bench 后
- 真实场景全覆盖:直接调用 SWE-bench 中收录的真实 GitHub Issue 数据集,让 AI 在涵盖各种边缘情况和复杂依赖的标准考题中进行“实战演习”。
- 一键容器化验证:利用 SWE-bench 基于 Docker 的评估框架,自动为每个问题构建隔离环境,几分钟内即可完成从代码生成到补丁验证的全流程。
- 自动化回归检测:SWE-bench 自动运行项目原有的测试套件,精准判断生成的补丁是否通过了所有单元测试,确保修复方案的安全性与有效性。
- 客观能力标尺:团队获得了统一的量化评分(如解决率),清晰看到 AI 模型从仅能处理简单语法错误,进化到能独立解决深层逻辑漏洞的具体幅度。
SWE-bench 将原本主观且低效的 AI 代码能力评估,转变为可复现、自动化且基于真实世界难题的标准化基准测试。
运行环境要求
- Linux
- macOS
未说明 (主要依赖 CPU 进行 Docker 容器化评估)
推荐 16GB+

快速开始
[ 阅读文档 ]
以下工作的代码和数据:
- [ICLR 2025] SWE-bench 多模态:AI 系统能否泛化到视觉软件领域?
- [ICLR 2024 口头报告] SWE-bench:语言模型能否解决真实的 GitHub 问题?
📰 新闻
- [2025年1月13日]:我们已将 SWE-bench 多模态(论文,数据集) 集成到本仓库!与 SWE-bench 不同的是,我们对测试集的评估结果仍保持 私密。请使用我们的全新云端评估工具 sb-cli 提交排行榜。
- [2025年1月11日]:感谢 Modal,现在您可以在云端完全运行评估!详情请参阅 这里。
- [2024年8月13日]:隆重推出 SWE-bench Verified!这是我们与 OpenAI Preparedness 合作的第二部分。这是一个由 500 个问题组成的子集,这些问题是经真实软件工程师确认可解的。更多内容请参阅 报告!
- [2024年6月27日]:在 OpenAI's Preparedness 团队的支持下,我们为 SWE-bench 带来了令人振奋的更新:我们将采用 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
[!注意] 如果您使用的是 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 <预测文件路径> \
--max_workers <工作线程数> \
--run_id <运行标识> \
# 使用 --predictions_path 'gold' 来验证黄金补丁
# 使用 --run_id 为评估运行命名
# 使用 --modal true 在 Modal 上运行
此命令将在当前目录下生成 Docker 构建日志(logs/build_images)和评估日志(logs/run_evaluation)。
最终的评估结果将存储在 evaluation_results 目录中。
[!警告] SWE-bench 评估可能会占用大量资源。 我们建议在至少拥有 120GB 可用存储空间、16GB 内存和 8 个 CPU 核心的
x86_64机器上运行。 我们建议将--max_workers设置为不超过min(0.75 * os.cpu_count(), 24)。如果使用 Docker Desktop,请确保将虚拟磁盘空间增加到约 120GB。并将
max_workers设置为与 Docker 可用 CPU 核心数一致。对
arm64机器的支持目前仍处于实验阶段。
要查看评估框架的所有参数列表,请运行:
python -m swebench.harness.run_evaluation --help
有关您可以评估的数据集的完整说明,请参阅 评估教程。 如果您需要非本地的云端评估,可以考虑:
此外,您还可以:
- 训练 您自己的模型,使用我们预处理过的数据集。(🆕 请查看 SWE-smith,一个专门用于创建 SWE 训练数据的工具包。)
- 对现有模型进行 推理(包括本地模型和 API 模型)。推理步骤是指您向模型提供代码库和问题,并让其生成修复方案。
- 在您自己的代码库上运行 SWE-bench 的 数据收集流程(教程),以创建新的 SWE-bench 任务。
- ⚠️ 我们暂时暂停了关于创建 SWE-bench 实例的相关支持。请参阅教程中的说明。
⬇️ 下载
💫 贡献
我们非常期待来自更广泛的自然语言处理、机器学习和软件工程研究社区的反馈,并欢迎任何贡献、拉取请求或问题! 如需参与,请提交新的拉取请求或问题,并按照相应的模板填写。我们会尽快跟进!
联系人:卡洛斯·E·希门尼斯 和 约翰·杨(邮箱:carlosej@princeton.edu, johnby@stanford.edu)。
✍️ 引用与许可
MIT 许可证。请查看 LICENSE.md。
如果您觉得我们的工作有所帮助,请使用以下引用。
关于 SWE-bench (Verified):
@inproceedings{
jimenez2024swebench,
title={{SWE}-bench: 语言模型能否解决真实的 GitHub 问题?},
author={卡洛斯·E·希门尼斯、约翰·杨、亚历山大·韦蒂格、孙宇尧、凯欣·裴、奥菲尔·普雷斯、卡尔蒂克·R·纳拉西曼},
booktitle={第十二届国际学习表征会议},
year={2024},
url={https://openreview.net/forum?id=VTF8yNQM66}
}
关于 SWE-bench 多模态:
@inproceedings{
yang2024swebenchmultimodal,
title={{SWE}-bench 多模态:AI 系统能否泛化到视觉软件领域?},
author={约翰·杨、卡洛斯·E·希门尼斯、亚历克斯·L·张、基利安·利埃雷特、乔伊斯·杨、辛迪·吴、奥里·普雷斯、尼克拉斯·穆恩尼霍夫、加布里埃尔·辛纳耶夫、卡尔蒂克·R·纳拉西曼、狄伊·杨、西达·I·王、奥菲尔·普雷斯},
booktitle={第十三届国际学习表征会议},
year={2025},
url={https://openreview.net/forum?id=riTiq3i21b}
}
关于 SWE-bench 多语言:
@misc{yang2025swesmith,
title={SWE-smith:为软件工程代理扩展数据规模},
author={约翰·杨、基利安·利埃雷特、卡洛斯·E·希门尼斯、亚历山大·韦蒂格、卡比尔·坎德普尔、严哲张、宾远辉、奥菲尔·普雷斯、路德维希·施密特、狄伊·杨},
year={2025},
eprint={2504.21798},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2504.21798},
}
我们的其他项目
常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
funNLP
funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。
cs-video-courses
cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。