Luwayy/SWE-bench
收藏官方服务:
资源简介:
SWE-bench数据集是一个测试系统自动解决GitHub问题的能力的数据集。该数据集从12个流行的Python仓库中收集了2,294个问题-PR对,用于通过单元测试验证评估系统。数据集包含问题陈述和基础提交信息,支持推断和BM25检索设置。数据集主要由英文文本构成。
SWE-bench is a dataset designed to test systems ability to automatically resolve GitHub issues. It consists of 2,294 issue-pull request pairs collected from 12 popular Python repositories, used for evaluation through unit test verification. The dataset includes problem statements and base commit information, supporting inference and BM25 retrieval settings. The dataset is primarily composed of English text.
提供机构:
Luwayy搜集汇总
数据集介绍

构建方式
SWE-bench数据集旨在评估语言模型自动解决GitHub实际问题的能力。该数据集精心收集了来自12个热门Python仓库的2,294个Issue-拉取请求配对,每个实例均包含问题描述、代码库基准提交哈希、由PR生成的补丁(不含测试相关代码)以及关联的测试补丁。数据构建过程中,通过后PR行为作为参考解法,采用单元测试验证进行性能评估,确保每个问题解决方案的正确性。数据集划分为训练集(19,008例)、开发集(225例)和测试集(2,294例),为模型训练与评测提供了丰富且结构化的资源。
特点
该数据集的核心特点在于其真实世界问题的复杂性与多样性。每个数据实例不仅包含问题陈述和仓库信息,还提供了完整的补丁、测试用例集(包括FAIL_TO_PASS和PASS_TO_PASS指标)以及环境设置提交哈希,使得评估过程高度可复现。此外,数据集支持多种检索设置(如Oracle和BM25),为研究不同上下文检索策略对问题解决能力的影响提供了基准。其层次分明的数据结构和跨仓库的广泛覆盖,使得SWE-bench成为衡量语言模型在软件工程任务中实用性的权威标杆。
使用方法
使用该数据集时,研究者需基于提供的基准提交哈希和问题陈述,引导模型生成修复代码。评估流程遵循单元测试验证范式:将模型生成的补丁应用于对应仓库的基准状态后,运行FAIL_TO_PASS和PASS_TO_PASS定义的测试集,以判定解决方案的正确性。若需复现论文中的检索设置,可结合使用配套的Oracle或BM25检索数据集(如princeton-nlp/SWE-bench_oracle)。数据以JSON格式存储,实例ID包含仓库所有者、名称及PR编号,便于索引与批量处理,支持通过HuggingFace Datasets库直接加载与迭代。
背景与挑战
背景概述
SWE-bench数据集由普林斯顿大学自然语言处理团队于2023年发布,旨在系统性地评估语言模型在真实世界GitHub问题自动修复任务上的能力。该数据集从12个广受欢迎的Python代码仓库中精心收集了2,294个Issue-拉取请求对,每个样本均包含问题描述、基准代码库状态及对应的修复补丁。其核心研究问题在于探索语言模型能否理解复杂软件工程任务,并生成可实际运行的代码修改方案。通过引入单元测试验证机制,以拉取请求后的代码行为作为参考标准,SWE-bench为自动化软件维护领域树立了首个标准化评测基准,显著推动了代码智能与软件工程交叉方向的研究进展。
当前挑战
SWE-bench所解决的核心领域挑战在于如何弥合自然语言理解与代码执行之间的鸿沟,要求模型不仅能解析问题描述,还需定位代码缺陷并生成语法正确、语义合理的修复补丁。在数据集构建过程中,研究人员面临多重技术难点:首先,需从海量GitHub仓库中筛选出具有明确测试验证的Issue-PR对,确保问题可复现且修复方案可验证;其次,需精确提取PR中与问题修复相关的代码变更,排除测试文件等辅助性修改;最后,需为每个样本配置可复现的运行时环境,包括依赖版本和提交历史,这对持续集成基础设施提出了极高要求。
常用场景
经典使用场景
SWE-bench数据集的经典使用场景在于评估和推动大语言模型在真实世界软件工程任务中的端到端问题解决能力。研究者通过该数据集构建一个封闭的基准测试环境,将模型置于一个包含完整代码仓库和未解决GitHub Issue的情境中,要求模型自动生成能够通过单元测试验证的补丁。这种设置使得SWE-bench成为衡量语言模型在复杂代码理解、上下文感知推理以及精准代码生成方面表现的核心标尺,尤其适用于对比不同检索增强生成策略或微调方案在软件维护任务中的效能。
实际应用
在实际工程场景中,SWE-bench驱动的模型可直接部署于持续集成流水线或开源项目的自动化维护系统。例如,当开发者提交新的Issue时,基于该数据集训练的模型能够自动分析问题描述、检索相关代码上下文并生成修复补丁,从而显著降低人工排查与修改的时间成本。此外,该数据集还可用于构建智能代码审查辅助工具,帮助团队快速验证补丁的测试覆盖率与回归风险,在大型企业级代码库的日常运维中发挥提质增效的关键作用。
衍生相关工作
SWE-bench的发布催生了一系列具有影响力的衍生工作。例如,研究者基于其检索设置衍生了SWE-bench_oracle、SWE-bench_bm25系列数据集,专门用于探究不同检索策略对模型修复性能的影响。此外,后续工作如SWE-agent和Devika等框架直接以SWE-bench作为核心评估基准,通过引入多轮交互、环境反馈循环等机制来提升模型在真实仓库环境中的自主修复成功率。这些工作共同构建了一个从数据构建到模型优化,再到工程落地的完整研究生态。
以上内容由遇见数据集搜集并总结生成



