five

princeton-nlp/SWE-bench_oracle_cl100k

收藏
Hugging Face2024-04-15 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/princeton-nlp/SWE-bench_oracle_cl100k
下载链接
链接失效反馈
官方服务:
资源简介:
SWE-bench是一个用于测试系统自动解决GitHub问题能力的数据集。该数据集收集了来自12个流行Python项目的2,294个Issue-Pull Request对,并通过单元测试验证来评估系统的性能。数据集的每个实例包含多个特征,如instance_id、patch、repo、base_commit等,这些特征详细描述了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]) - 每个文本的 llama 令牌。

数据分割

  • test 分割包含 2294 个样本,总字节数为 463914453。

数据集大小

  • 下载大小:189998853 字节
  • 数据集大小:463914453 字节

配置

  • default 配置包含 test 分割的数据文件,路径为 data/test-*
搜集汇总
数据集介绍
main_image_url
构建方式
SWE-bench_oracle_cl100k数据集由普林斯顿大学自然语言处理实验室构建,旨在评估系统自动解决GitHub问题的能力。该数据集通过从12个流行的Python仓库中收集了2,294个Issue-Pull Request对,构建过程严格遵循后PR行为作为参考解决方案。每个数据实例包含详细的元信息,如实例标识符、金标补丁、仓库标识、基础提交哈希、问题描述、测试补丁及环境设置提交等。数据集以test split形式组织,包含约460MB的数据,确保评估的全面性和准确性。
特点
该数据集的核心特点在于其丰富的结构化信息,涵盖问题解决的全链条数据。每个实例不仅包含原始问题陈述和解决方案补丁,还提供了测试通过的FAIL_TO_PASS和PASS_TO_PASS指标,用于精确评估系统性能。此外,数据集包含文本化表示和对应的Llama token序列,便于与大型语言模型集成。hints_text字段记录了问题解决前的讨论,为理解上下文提供额外线索,而environment_setup_commit确保评估环境的可复现性。这些特点使得SWE-bench成为软件工程自动化领域的标杆性资源。
使用方法
使用该数据集时,研究者可基于提供的仓库、基础提交和环境设置提交,复现问题场景并应用补丁进行测试。评估流程通过单元测试验证,利用FAIL_TO_PASS和PASS_TO_PASS指标衡量系统生成的补丁是否解决原始问题。数据集支持直接加载text和input_ids字段,适用于微调语言模型或作为检索增强生成的输入。研究者可访问www.swebench.com查看排行榜,对比不同方法的性能。建议结合官方评估脚本确保结果一致性,并注意版本字段用于指定正确的运行环境。
背景与挑战
背景概述
SWE-bench数据集由普林斯顿大学自然语言处理团队于2023年创建,旨在评估自动化系统解决真实世界GitHub问题的能力。该数据集聚焦于软件工程中一个关键挑战——从代码仓库与问题描述中自动生成修复补丁。通过收集来自12个流行Python项目的2294个Issue-Pull Request配对实例,SWE-bench为智能编程助手和代码修复模型提供了标准化的评估基准。其核心研究问题在于衡量模型在理解完整仓库上下文、定位问题根源并生成正确代码修改方面的性能。该数据集的影响力体现在它推动了从单纯代码生成到端到端问题解决的范式转变,为自动化软件维护领域树立了新的评测标杆。
当前挑战
SWE-bench面临的核心挑战在于自动化问题解决的复杂性:首先,模型需要从冗长的GitHub问题描述中准确理解用户意图,同时结合整个仓库的代码结构进行上下文推理,这对长文本理解与代码语义建模提出了极高要求。其次,构建过程中最大的难点是确保评估的公平性与可重复性——每个实例需要精确匹配代码库的特定提交版本,并设计独立的测试套件来验证补丁的正确性,这涉及对2294个不同仓库环境的差异化配置与依赖管理。此外,数据集的补丁仅包含功能代码而排除测试代码,这要求模型生成符合仓库编码风格且不破坏现有功能的修改,进一步增加了任务难度。
常用场景
经典使用场景
在软件工程与人工智能的交叉领域,SWE-bench_oracle_cl100k数据集为评估自动化代码修复系统提供了标准化测试平台。该数据集汇聚了2,294个来自12个流行Python仓库的真实GitHub Issue与Pull Request配对样本,每个样本包含问题描述、代码库状态、参考补丁及单元测试集合。研究者可基于该数据集构建端到端的智能体系统,使其在给定完整仓库和问题陈述的条件下,自动生成修复补丁并通过回归测试验证,从而系统性地衡量模型在真实世界代码缺陷修复任务中的表现。
解决学术问题
该数据集精准回应了学术界长期面临的挑战:如何客观、可复现地评估大语言模型在复杂软件工程任务中的实际能力。传统评估多依赖简化的人工标注或受限的合成环境,难以反映真实开发场景的复杂性。SWE-bench通过设立标准化的单元测试验证机制,将问题解决能力量化为可比较的指标,为研究自动程序修复、代码理解与生成、智能体规划等方向提供了基准参照。其发布推动了代码智能领域从松散案例研究向严格基准评测的范式转变,显著提升了相关研究的科学严谨性。
衍生相关工作
SWE-bench的发布催生了一系列具有影响力的后续工作。研究者基于该数据集开发了多种增强型框架,如结合检索增强生成的SWE-agent、引入多轮规划机制的CodeGen系列,以及利用执行反馈进行自我修正的Reflexion架构。这些工作不仅提升了在SWE-bench上的得分纪录,更揭示了模型在代码推理、长上下文理解与错误定位等方面的深层能力边界。此外,该数据集还启发了跨语言版本(如SWE-bench-multilingual)和领域特化版本(如安全补丁基准)的构建,形成了以SWE-bench为核心的评估生态体系。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作