five

SWE-Factory

收藏
arXiv2025-06-13 更新2025-06-14 收录
下载链接:
https://github.com/DeepSoftwareAnalytics/swe-factory
下载链接
链接失效反馈
官方服务:
资源简介:
SWE-Factory是一个自动化的流水线,旨在解决GitHub问题解决任务中大规模数据集构建的挑战。该数据集包含了671个问题,涉及Python、Java、JavaScript和TypeScript四种编程语言。SWE-Factory通过SWE-Builder、标准化退出码评分和自动化fail2pass验证三个核心自动化组件,有效地构建了高质量的问题解决任务实例。该数据集对于训练和评估大型语言模型在软件工程方面的能力具有重要意义。

SWE-Factory is an automated pipeline designed to address the challenges of constructing large-scale datasets for GitHub issue-solving tasks. This dataset contains 671 issues covering four programming languages: Python, Java, JavaScript, and TypeScript. SWE-Factory effectively builds high-quality issue-solving task instances through three core automated components: SWE-Builder, standardized exit code scoring, and automated fail2pass validation. This dataset holds significant importance for training and evaluating the software engineering capabilities of large language models.
提供机构:
中山大学, 华为技术有限公司, 独立研究者
创建时间:
2025-06-13
原始信息汇总

SWE-Factory 数据集概述

📌 数据集简介

  • 名称: SWE-Factory
  • 用途: 自动化生成GitHub问题解决训练数据和评估基准
  • 核心功能: 提供从数据收集到评估的完整自动化流程

✨ 核心特性

  1. 自动化数据收集管道

    • 通过GitHub API收集原始问题数据
    • 支持预定义模式的数据收集(如python-mypy-instances.jsonl
  2. 评估环境构建

    • 基于Docker的可复现测试环境
    • 支持多编程语言(Python/Java/JS/TS已验证)
  3. LLM驱动的多智能体系统(SWE-Builder)

    • 包含5个核心组件:
      • 仓库探索器
      • 环境管理器
      • 测试管理器
      • 测试分析器
      • 评估环境内存池

📊 评估结果

基础模型 有效率(%) 成功率(%) 成本(USD) 时间(分钟)
GPT-4.1-mini 40.1 57.2 0.045 22.4
DeepSeek-v3-0324 34.6 50.8 0.043 22.5
Gemini-2.5-flash-preview 33.5 49.8 0.024 27.0

🛠 使用流程

  1. 环境配置 bash conda create --name swe-factory python=3.12.5 -y conda activate swe-factory pip install -r requirements.txt

  2. 三阶段处理流程:

    • 阶段I: 原始问题数据收集
    • 阶段II: 通过SWE-Builder自动评估
    • 阶段III: Fail2Pass验证

📖 引用信息

bibtex @article{guo2025swefactory, title={SWE-Factory: Your Automated Factory for Issue Resolution Training Data and Evaluation Benchmarks}, author={Lianghong Guo and Yanlin Wang and Caihua Li and Pengyu Yang and Jiachi Chen and Wei Tao and Yingtian Zou and Duyu Tang and Zibin Zheng}, journal={arXiv preprint arXiv:2506.10954}, year={2025}, url={https://arxiv.org/abs/2506.10954}, }

🙏 致谢

  • 基于SWE-bench、AutoCodeRover、Magis和OmniGIRL等先前研究
  • 感谢开源开发者社区的贡献
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,构建高质量的GitHub问题解决数据集对于训练和评估大型语言模型(LLM)的软件工程能力至关重要。SWE-Factory数据集通过自动化流水线解决了传统方法在评估环境设置、测试结果评分和任务实例验证方面的挑战。该流水线集成了三个核心自动化组件:SWE-Builder多智能体系统、基于退出码的标准化评分方法以及自动化的fail2pass验证过程。实验表明,该流水线能够高效构建有效的任务实例,例如使用GPT-4.1-mini构建269个有效实例,每个实例成本仅为0.045美元。
特点
SWE-Factory数据集的特点在于其高度自动化的构建流程和广泛的语言覆盖。该数据集通过多智能体协作实现了评估环境的自动化设置,显著减少了人工干预。基于退出码的评分方法确保了测试结果的准确性和一致性,无需手动编写自定义解析器。此外,自动化的fail2pass验证过程达到了0.92的精确度和1.00的召回率,确保了数据集的可靠性。数据集覆盖了Python、Java、JavaScript和TypeScript四种流行编程语言,提供了671个问题的多样化实例,适用于多语言和多模态评估。
使用方法
SWE-Factory数据集的使用方法主要包括三个步骤:首先,通过SWE-Builder多智能体系统自动构建评估环境,生成Dockerfile和测试脚本;其次,利用基于退出码的标准化评分方法自动提取测试结果,无需手动解析日志;最后,通过自动化的fail2pass验证过程筛选高质量的任务实例。用户可以根据需要选择不同的LLM模型(如GPT-4.1-mini或Gemini-2.5-flash)来优化构建效率和成本。数据集适用于训练和评估LLM在GitHub问题解决任务中的表现,支持多语言和多模态研究。
背景与挑战
背景概述
SWE-Factory数据集由中山大学与华为等机构的研究团队于2025年提出,旨在解决GitHub问题解决任务中大规模训练与评估数据集的自动化构建难题。作为首个支持多语言的开源自动化流水线,该数据集聚焦软件维护核心场景,通过集成SWE-Builder多智能体系统、基于退出码的标准化评分及自动化fail2pass验证三大模块,显著降低了传统方法中90%的人工干预成本。其创新性地采用环境内存池技术实现跨版本环境配置复用,在Python/Java/JavaScript/TypeScript四种语言中验证了40.1%的实例构建成功率,为评估大语言模型的软件工程能力提供了新的方法论基础。
当前挑战
在领域问题层面,SWE-Factory需应对三大核心挑战:1) 多语言仓库环境配置的极端异构性,不同项目的依赖管理与测试框架存在显著差异;2) 测试日志格式的多样性导致传统解析方法需为每个项目定制正则表达式;3) fail2pass验证中存在的error2pass现象(测试用例因前置依赖缺失而无法执行)。在构建过程中,研究团队需突破:1) 多智能体协同的动态迭代机制设计,解决环境构建的29.5%初始失败率;2) 退出码信号捕获的鲁棒性保障,需处理9例异常终止案例;3) 内存池的版本邻近度判定算法优化,以平衡环境复用率与配置准确性。
常用场景
经典使用场景
SWE-Factory数据集在软件工程领域被广泛应用于GitHub问题解决的自动化训练与评估。该数据集通过多语言支持(Python、Java、JavaScript、TypeScript)和自动化管道(SWE-Builder、退出码分级、fail2pass验证),为大型语言模型(LLMs)提供了标准化的测试环境构建与性能验证平台。其经典场景包括模拟真实代码库的问题修复流程,例如从GitHub提取的671个跨版本问题实例,通过容器化环境执行测试并验证补丁有效性。
实际应用
在实际开发中,SWE-Factory被集成至持续集成/交付(CI/CD)流程,用于自动化测试环境部署与问题验证。例如在开源社区中,开发者可快速验证问题修复的有效性(如Pillow库的132个实例),企业团队则利用其多语言支持(如华为等机构)训练内部AI辅助编程工具。其单实例0.024-0.045美元的低成本使其适合大规模应用。
衍生相关工作
该数据集催生了多个延伸研究:SWE-bench Verified通过人工验证提升数据可靠性,OmniGIRL扩展了多模态评估能力,SWE-Gym开发了强化学习训练环境。方法论上启发了RepoLaunch(Python环境自动化)和SetupAgent(解析代码生成),而退出码分级机制被R2E-Gym等后续工作广泛采用,形成了软件工程基准测试的新范式。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作