five

princeton-nlp/SWE-bench_bm25_27K

收藏
Hugging Face2024-04-15 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/princeton-nlp/SWE-bench_bm25_27K
下载链接
链接失效反馈
官方服务:
资源简介:
SWE-bench_bm25_27K数据集用于测试系统自动解决GitHub问题的能力。该数据集收集了来自12个流行Python项目的2,294个Issue-Pull Request对,并通过单元测试验证进行评估,使用PR后的行为作为参考解决方案。数据集包括多个字段,如instance_id、text、patch等,每个字段都有详细的描述。数据集支持的任务是提供完整仓库和GitHub问题的解决方案,排行榜可在www.swebench.com找到。数据集的语言主要为英语。

SWE-bench_bm25_27K is a dataset designed to test the capability of automated systems in solving GitHub issues. It collects 2,294 Issue-Pull Request pairs from 12 popular Python projects, with evaluations conducted via unit test validation, taking the post-Pull Request behavior as the reference solution. The dataset contains multiple fields such as instance_id, text, patch, etc., each with detailed descriptions. The task supported by this dataset is to provide solutions for complete repositories and GitHub issues. Its leaderboard is available at www.swebench.com. The primary language of this dataset is English.
提供机构:
princeton-nlp
原始信息汇总

数据集卡片 "SWE-bench_bm25_27K"

数据集概述

SWE-bench 是一个测试系统自动解决 GitHub 问题的能力的数据集。该数据集收集了来自 12 个流行 Python 项目的 2,294 个 Issue-Pull Request 对。评估通过使用 PR 后的行为作为参考解决方案的单元测试验证进行。

该数据集作为论文 SWE-bench: Can Language Models Resolve Real-World GitHub Issues? 的一部分发布。

数据集 SWE-bench_bm25_27K 包括使用 Pyserini 的 BM25 检索格式化的每个实例,如论文中所述。代码上下文大小限制为 27,000 cl100k_base 令牌,使用 OpenAI 模型所用的 tiktoken 分词包。text 列可以直接用于生成补丁文件的语言模型。

模型被指示使用以下模板生成 patch 格式的文件: diff <patch> diff --- a/path/to/file.py --- b/path/to/file.py @@ -1,3 +1,3 @@ This is a test file. -It contains several lines. +It has been modified. This is the third line. </patch>

此格式可以直接与 SWE-bench 推理脚本 一起使用。有关推理的更多详细信息,请参阅这些脚本。

支持的任务和排行榜

SWE-bench 提出了一项新任务:提供完整的仓库和 GitHub 问题进行问题解决。排行榜可以在 www.swebench.com 找到。

语言

数据集的文本主要是英语,但我们没有根据语言类型进行过滤或清理。

数据集结构

数据实例

SWE-bench 数据实例的示例如下:

instance_id: (str) - 格式化的实例标识符,通常为 repo_owner__repo_name-PR-number。 text: (str) - 包括指令、“Oracle”检索文件和补丁格式输出示例的输入文本。 patch: (str) - 解决问题的 PR 生成的黄金补丁(减去与测试相关的代码)。 repo: (str) - GitHub 仓库的 owner/name 标识符。 base_commit: (str) - 表示解决方案 PR 应用之前仓库 HEAD 的提交哈希。 hints_text: (str) - 在解决方案 PR 的第一次提交创建日期之前在问题上发表的评论。 created_at: (str) - 拉取请求的创建日期。 test_patch: (str) - 解决方案 PR 贡献的测试文件补丁。 problem_statement: (str) - 问题标题和正文。 version: (str) - 用于运行评估的安装版本。 environment_setup_commit: (str) - 用于环境设置和安装的提交哈希。 FAIL_TO_PASS: (str) - 表示 PR 解决并与问题解决相关的一组测试的 json 字符串列表。 PASS_TO_PASS: (str) - 表示 PR 应用前后应通过的测试的 json 字符串列表。

搜集汇总
数据集介绍
main_image_url
构建方式
SWE-bench_bm25_27K数据集源自SWE-bench项目,旨在评估语言模型自动解决GitHub问题的能力。其构建基于从12个流行Python仓库中收集的2,294个Issue-Pull Request对,并利用Pyserini的BM25检索算法对每个实例进行格式化处理。代码上下文大小限制为27,000个cl100k_base令牌,该令牌计数采用OpenAI模型所使用的tiktoken分词包。数据集的每个条目包含实例标识符、检索文本、仓库信息、基础提交哈希、问题陈述、提示文本、创建时间、补丁文件、测试补丁、版本号、环境设置提交以及测试通过状态等字段,形成结构化的训练、开发、测试和验证集。
使用方法
使用该数据集时,可直接利用'text'列作为语言模型的输入,该列已包含指令、检索到的代码文件及补丁格式示例。模型需按照指定的diff模板生成补丁文件,例如使用'<patch>'标签包裹差异内容。生成的补丁可与SWE-bench官方提供的推理脚本配合使用,实现端到端的评估流程。研究者应参考GitHub上的SWE-bench仓库中的inference目录,以获取详细的模型调用和评估方法。数据集支持通过HuggingFace Datasets库加载,并可按train、dev、test、validation等分割进行划分,便于开展多阶段实验。
背景与挑战
背景概述
在软件工程与自然语言处理交叉领域,自动化解决GitHub Issue一直是极具挑战的研究方向。2023年,普林斯顿大学自然语言处理实验室(Princeton NLP)发布了SWE-bench数据集,旨在评估语言模型自动修复真实世界软件缺陷的能力。该数据集精心收集了来自12个流行Python仓库的2,294个Issue-Pull Request配对,以单元测试验证作为评估标准,开创性地将代码修复任务从传统补丁生成提升至端到端仓库级问题解决。SWE-bench的提出不仅揭示了现有模型在理解复杂代码上下文、定位缺陷根源方面的不足,更推动了自动化软件维护领域的研究范式革新,为构建更智能的编程助手奠定了重要基准。
当前挑战
SWE-bench所面临的挑战具有多重维度。核心领域挑战在于模型需从完整仓库代码中精准定位与Issue相关的缺陷代码段,并生成符合语法规范且通过单元测试的补丁,这要求模型同时具备代码理解、逻辑推理与补丁生成能力。构建过程中,研究人员需处理海量GitHub数据,从数千万Issue中筛选出具有明确测试验证的高质量配对,并确保补丁不包含测试代码以避免数据泄露。此外,基于BM25的检索上下文限制为27,000个cl100k_base tokens,如何在有限信息内保留关键代码上下文成为技术难点,而多版本环境依赖的复现与评估一致性更增加了构建复杂度。
常用场景
经典使用场景
在自动化软件工程与自然语言处理交叉领域,SWE-bench_bm25_27K数据集为评估语言模型在真实世界代码修复任务中的表现提供了标准化基准。其核心使用场景聚焦于检索增强型代码生成:系统首先通过BM25算法从代码库中检索与给定GitHub Issue相关的上下文片段,随后基于检索到的文件内容生成补丁(patch)以修复缺陷。该数据集精心设计了包含问题描述、检索上下文及补丁模板的输入格式,使研究者能够直接评估模型在受限令牌窗口(27,000 cl100k_base tokens)下生成可执行代码补丁的能力,从而推动从静态代码理解向动态问题解决的范式演进。
解决学术问题
该数据集系统性地解决了自然语言处理与软件工程交叉领域中一个长期存在的学术难题——如何客观量化语言模型在真实、复杂且未见过的软件维护任务中的实际能力。传统基准多聚焦于代码补全或简单缺陷检测,而SWE-bench_bm25_27K通过收集来自12个流行Python仓库的2,294个真实Issue-PR对,并采用单元测试验证作为评估准则,首次构建了端到端的问题解决评估框架。其意义在于揭示了现有模型在理解完整仓库结构、定位缺陷根源以及生成正确代码补丁等方面的显著不足,为后续研究提供了明确的能力边界和可复现的评估协议。
实际应用
在实际软件开发流程中,该数据集驱动的模型可被集成至持续集成/持续部署(CI/CD)管道,作为智能代码审查助手,自动分析新提交的GitHub Issue并生成初步修复补丁。此外,基于该数据集训练的检索增强生成系统能够辅助开发者快速定位历史代码变更中的潜在错误,在开源社区维护、遗留系统迁移以及敏捷开发中的缺陷修复环节发挥关键作用。通过提供标准化的输入输出格式,该数据集还促进了自动化补丁生成工具在工业级代码库中的部署,显著降低了人工排查和修复常见软件缺陷的时间成本。
数据集最近研究
最新研究方向
SWE-bench_bm25_27K数据集聚焦于评估和推动大语言模型在真实世界GitHub问题自动修复中的前沿能力。该数据集通过BM25检索与27K token上下文限制,构建了涵盖12个流行Python仓库的2294个Issue-PR对,为代码智能领域提供了标准化的评测基准。当前研究热点集中于利用该数据集提升模型对复杂代码仓库的理解与补丁生成能力,尤其关注检索增强生成与长上下文处理技术的结合。该数据集的出现不仅推动了自动化软件工程的发展,还促进了AI辅助编程工具在真实场景中的落地,其评测结果已成为衡量语言模型代码修复能力的重要指标,对提升开源软件维护效率具有深远意义。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务