five

princeton-nlp/SWE-bench

收藏
Hugging Face2024-06-27 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/princeton-nlp/SWE-bench
下载链接
链接失效反馈
官方服务:
资源简介:
SWE-bench是一个用于测试系统自动解决GitHub问题能力的数据集。该数据集收集了来自12个流行Python项目的2,294个Issue-Pull Request对。评估通过单元测试验证进行,使用PR后的行为作为参考解决方案。数据集包含多个特征,如repo、instance_id、base_commit、patch等,每个特征都有详细的描述。数据集的结构包括dev、test和train三个分割,分别包含225、2294和19008个示例。

SWE-bench is a dataset that tests systems’ ability to solve GitHub issues automatically. The dataset collects 2,294 Issue-Pull Request pairs from 12 popular Python projects. Evaluation is performed by unit test verification using post-PR behavior as the reference solution. The dataset includes multiple features such as repo, instance_id, base_commit, patch, etc., each with detailed descriptions. The dataset structure includes dev, test, and train splits, containing 225, 2294, and 19008 examples respectively.
提供机构:
princeton-nlp
原始信息汇总

数据集概述

数据集名称: SWE-bench

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

数据集特征

  • repo (字符串): GitHub仓库所有者/名称标识。
  • instance_id (字符串): 格式化的实例标识符,通常为repo_owner__repo_name-PR-number。
  • base_commit (字符串): 解决方案Pull Request应用前仓库的提交哈希。
  • patch (字符串): 由Pull Request生成的解决问题的黄金补丁(不包括测试相关代码)。
  • test_patch (字符串): 解决方案Pull Request贡献的测试文件补丁。
  • problem_statement (字符串): 问题标题和正文。
  • hints_text (字符串): 解决方案Pull Request的第一个提交创建日期之前在问题上的评论。
  • created_at (字符串): Pull Request的创建日期。
  • version (字符串): 运行评估使用的安装版本。
  • environment_setup_commit (字符串): 用于环境和安装设置的提交哈希。
  • FAIL_TO_PASS (字符串): 由Pull Request解决并与问题解决相关联的测试集合的JSON列表。
  • PASS_TO_PASS (字符串): 应用Pull Request前后应通过的测试的JSON列表。

数据集划分

  • dev
    • 字节数: 4783179
    • 示例数: 225
  • test
    • 字节数: 44142926
    • 示例数: 2294
  • train
    • 字节数: 367610377
    • 示例数: 19008

数据集大小

  • 下载大小: 120092029字节
  • 数据集大小: 416536482字节

配置

  • config_name: default
    • dev: data/dev-*
    • test: data/test-*
    • train: data/train-*

语言

  • 主要语言: 英语

数据实例结构

  • 每个实例包含上述特征的详细信息,用于描述GitHub问题的解决过程和结果。
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,自动化解决GitHub议题的能力评估日益受到关注。SWE-bench数据集的构建基于真实开源项目,从12个流行的Python仓库中精心筛选了2,294个议题与拉取请求配对。每个数据实例均提取了议题描述、基础提交哈希、补丁文件及测试补丁等关键元素,并通过单元测试验证机制确保解决方案的准确性。数据收集过程严格遵循代码变更历史,以拉取请求合并后的行为作为参考标准,从而构建了一个反映实际开发场景的高质量评估基准。
特点
该数据集的核心特点在于其高度真实性,所有实例均源自实际GitHub项目中的议题解决过程。数据集不仅包含议题文本和基础代码状态,还提供了完整的测试套件信息,如FAIL_TO_PASS和PASS_TO_PASS测试列表,支持对模型解决能力进行细粒度评估。其结构化设计涵盖了代码仓库、提交记录、补丁文件等多维度信息,为研究自动化软件维护提供了丰富的上下文。数据划分包含训练、开发和测试集,规模分别达到19,008、225和2,294个实例,确保了评估的全面性和可靠性。
使用方法
使用SWE-bench时,研究者需首先加载数据集并解析实例中的问题陈述与基础提交信息。评估流程要求模型根据议题描述生成相应代码补丁,随后在特定版本环境中执行单元测试验证。数据集支持多种推理设置,包括基础模式及配合检索机制的增强版本,相关扩展数据集如SWE-bench_oracle提供了额外上下文信息。用户可通过官方排行榜平台提交模型结果,系统将自动运行测试并比较生成补丁与黄金补丁的等效性,从而量化模型在真实软件工程任务中的性能表现。
背景与挑战
背景概述
在人工智能与软件工程交叉领域,自动化代码修复与问题解决已成为前沿研究方向。由普林斯顿大学自然语言处理团队于2023年发布的SWE-bench数据集,聚焦于评估大型语言模型在真实软件开发场景中的实际应用能力。该数据集精心收集了来自12个主流Python开源项目的2294个GitHub问题与拉取请求配对,通过单元测试验证机制,构建了一个以解决实际代码问题为核心任务的基准测试平台。其核心研究问题在于探索语言模型能否理解复杂代码库上下文并生成符合功能需求的正确补丁,为智能编程辅助系统的演进提供了关键的数据支撑与评估标准。
当前挑战
SWE-bench数据集所针对的领域挑战在于自动化软件工程中代码问题解决的复杂性,要求模型不仅理解自然语言描述的问题,还需精准定位代码库中的相关文件与逻辑,并生成符合项目规范的功能性修复。构建过程中的挑战则体现在数据收集与标注的严谨性上,需确保每个问题与拉取请求的配对真实有效,且测试用例能够准确反映问题解决前后的行为变化,同时排除测试代码本身的干扰以保持评估的纯净性。此外,数据集的规模与多样性平衡亦是一大难点,需在覆盖广泛项目与保持数据质量之间取得微妙平衡。
常用场景
经典使用场景
在软件工程与人工智能交叉领域,SWE-bench数据集为评估语言模型自动解决GitHub问题的能力提供了基准平台。其经典使用场景集中于模拟真实软件开发流程,通过整合来自12个流行Python仓库的Issue-Pull Request对,构建了一个以单元测试验证为核心的评估框架。研究者利用该数据集训练和测试模型,要求系统基于代码库状态和问题描述生成修复补丁,从而衡量模型在复杂代码理解和修改任务上的性能。
衍生相关工作
围绕SWE-bench衍生了一系列经典研究工作,包括基于检索增强的变体数据集如SWE-bench_oracle和SWE-bench_bm25系列,这些扩展通过引入代码检索机制优化了模型的信息获取能力。同时,多篇学术论文以此为基础探索了语言模型在代码生成、测试验证和仓库级理解方面的进展,进一步丰富了软件工程自动化研究的生态体系。
数据集最近研究
最新研究方向
在软件工程与人工智能交叉领域,SWE-bench数据集作为评估语言模型自动解决GitHub现实问题的基准,正推动前沿研究聚焦于代码生成与修复的智能化。当前研究热点围绕大语言模型在复杂代码库环境下的精确检索与补丁生成能力展开,结合检索增强生成技术提升模型对历史代码变更的理解。该数据集通过模拟真实开源项目的Issue-Pull Request工作流,为衡量模型在动态软件维护任务中的实际效用提供了标准化测试框架,促进了自动化软件工程工具向更高可靠性与泛化性发展。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作