five

princeton-nlp/SWE-bench_bm25_27k_cl100k

收藏
Hugging Face2024-04-15 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/princeton-nlp/SWE-bench_bm25_27k_cl100k
下载链接
链接失效反馈
官方服务:
资源简介:
SWE-bench是一个用于测试系统自动解决GitHub问题的数据集,收集了来自12个流行Python仓库的2,294个Issue-Pull Request对。该数据集通过单元测试验证进行评估,使用PR后的行为作为参考解决方案。数据集包含多种特征,如提交哈希、补丁和问题描述,并支持一个新的任务:提供完整仓库和GitHub问题以解决问题。数据集文本主要为英文。

SWE-bench是一个用于测试系统自动解决GitHub问题的数据集,收集了来自12个流行Python仓库的2,294个Issue-Pull Request对。该数据集通过单元测试验证进行评估,使用PR后的行为作为参考解决方案。数据集包含多种特征,如提交哈希、补丁和问题描述,并支持一个新的任务:提供完整仓库和GitHub问题以解决问题。数据集文本主要为英文。
提供机构:
princeton-nlp
原始信息汇总

数据集概述

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

支持的任务和排行榜

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

语言

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

数据集结构

数据实例

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

  • instance_id (str): 格式化的实例标识符,通常为 repo_owner__repo_name-PR-number。
  • patch (str): 解决问题的 PR 生成的黄金补丁(减去与测试相关的代码)。
  • repo (str): GitHub 仓库的 owner/name 标识符。
  • base_commit (str): 表示解决方案 PR 应用前仓库 HEAD 的提交哈希。
  • hints_text (str): 在解决方案 PR 的第一次提交创建日期之前在 Issue 上发表的评论。
  • created_at (str): Pull Request 的创建日期。
  • test_patch (str): 解决方案 PR 贡献的测试文件补丁。
  • Problem_statement (str): Issue 的标题和正文。
  • Version (str): 用于运行评估的安装版本。
  • environment_setup_commit (str): 用于环境设置和安装的提交哈希。
  • FAIL_TO_PASS (str): 表示 PR 解决并与 Issue 解决相关的一组测试的 JSON 字符串列表。
  • PASS_TO_PASS (str): 表示 PR 应用前后应通过的测试的 JSON 字符串列表。
  • text (str): 根据检索标准和 github:SWE-bench 中找到的 style-2 提示生成的文本。
  • input_ids (List[int]): 每个文本的 cl100k_base 标记。
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,自动化解决GitHub问题已成为一项关键挑战。SWE-bench数据集的构建源于对真实开源项目的深入挖掘,从12个流行的Python仓库中精心收集了2,294个Issue-Pull Request配对。每个数据实例均以问题报告为起点,通过提取对应的拉取请求补丁作为参考解决方案,并保留完整的仓库提交历史与环境配置信息。数据生成过程严格遵循原始问题的时间线,确保问题描述、讨论线索及测试用例的完整性,从而构建出一个高度逼真的软件维护场景。
使用方法
使用该数据集时,研究者可将其视为一个端到端的软件问题自动修复基准。典型流程始于加载测试分割中的实例,通过base_commit还原仓库初始状态,结合problem_statement理解任务需求。模型需生成修复补丁,随后利用提供的测试套件进行验证,对比FAIL_TO_PASS与PASS_TO_PASS的测试结果以评估修复效果。数据集已预处理的input_ids字段可直接用于基于Transformer的模型,而完整的元数据支持更细粒度的分析,如时间线重建或讨论线索研究。
背景与挑战
背景概述
在软件工程领域,自动化代码修复与问题解决一直是推动开发效率提升的核心研究方向。SWE-bench数据集由普林斯顿大学自然语言处理团队于2023年创建,旨在构建一个评估系统自动解决GitHub问题的基准测试平台。该数据集精心收集了2294个来自12个流行Python项目的Issue-Pull Request配对,通过单元测试验证来模拟真实开发场景中的代码修复过程。其核心研究问题聚焦于如何让机器学习模型理解复杂的代码库上下文,并生成符合功能需求的正确补丁,为自动化软件维护工具的发展提供了重要的评估基础。
当前挑战
SWE-bench数据集所针对的领域挑战在于自动化代码修复任务的高度复杂性,要求系统不仅能理解自然语言描述的问题,还需精准解析代码库结构、依赖关系及测试逻辑。构建过程中的挑战包括从海量GitHub历史数据中筛选高质量且可复现的Issue-PR配对,确保每个实例具备完整的仓库快照、测试套件和环境配置。同时,数据标注需严格对齐问题描述、代码变更与测试结果,避免引入噪声或偏差,这对数据集的可靠性与评估一致性提出了严峻考验。
常用场景
经典使用场景
在软件工程与人工智能交叉领域,SWE-bench数据集为评估自动化代码修复系统提供了基准平台。该数据集通过整合GitHub上的真实Issue与Pull Request对,模拟了开发环境中问题报告与代码修正的完整流程。研究者利用其构建的单元测试验证框架,能够系统性地测试模型在理解问题描述、定位代码缺陷及生成有效补丁方面的综合能力,从而推动智能编程助手技术的迭代与优化。
解决学术问题
该数据集致力于解决自动化软件维护中的核心挑战,即如何让机器学习模型准确理解自然语言描述的问题并生成符合工程规范的代码修改。它通过提供大规模、高质量的Issue-PR配对数据,为研究社区建立了可复现的评估标准,显著降低了相关实验的准入门槛。其意义在于将软件工程实践转化为结构化机器学习任务,为代码生成、程序理解及软件测试等研究方向提供了统一的测评基础,加速了智能开发工具的学术进展。
实际应用
在实际开发场景中,SWE-bench能够指导构建高效的代码审查与自动修复工具。企业可基于该数据集训练模型,以辅助开发人员快速处理GitHub等平台上的常见问题报告,减少人工调试时间。例如,集成此类技术的IDE插件或持续集成流水线,可自动分析新提交的Issue,尝试生成初步修复方案,从而提升软件维护效率与代码质量,尤其在处理重复性编码任务或安全漏洞修补方面展现出应用潜力。
数据集最近研究
最新研究方向
在软件工程与人工智能交叉领域,SWE-bench数据集正推动自动化代码修复技术的前沿探索。该数据集聚焦于利用大型语言模型解决真实GitHub问题,其最新研究围绕多模态智能体协同、上下文感知的代码生成以及测试驱动修复策略展开。随着开源生态的持续扩张,相关研究已延伸至跨仓库知识迁移、增量学习框架构建,并在持续集成环境中验证智能系统的鲁棒性。这些进展不仅提升了自动化软件维护的精度,也为构建自适应开发工具链奠定了实证基础,标志着智能编程辅助向端到端问题解决范式的重要演进。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作