SWE-Synth
收藏github2025-04-22 更新2025-05-22 收录
下载链接:
https://github.com/FSoft-AI4Code/SWE-Synth
下载链接
链接失效反馈官方服务:
资源简介:
SWE-Synth是一个大规模且上下文丰富的bug修复对数据集,具有自然、可扩展、自动可验证的特点,并包含中间修复步骤。该数据集通过利用大型语言模型(LLMs)进行有针对性的代码重写来生成合成bug,旨在支持自动程序修复(APR)的研究和应用。
SWE-Synth is a large-scale and context-rich bug repair pairs dataset characterized by its naturalness, scalability, and automated verifiability, including intermediate repair steps. The dataset is generated by leveraging large language models (LLMs) for targeted code rewriting to create synthetic bugs, with the aim of supporting research and application in automatic program repair (APR).
创建时间:
2025-04-22
原始信息汇总
SWE-Synth 数据集概述
数据集简介
- 名称: SWE-Synth
- 目的: 通过合成可验证的bug修复数据,支持大型语言模型(LLM)解决现实世界中的软件bug
- 特点:
- 包含自然、可扩展、自动化验证的bug修复对
- 提供有价值的中间修复步骤
- 通过LLM生成合成bug,实现低成本大规模数据生成
数据集内容
-
主要数据集:
- SWE-Synth: 9459个合成bug,包含3018个修复
- 访问地址: https://huggingface.co/datasets/swesynth/SWE-Synth
-
辅助数据集:
- SWE-Synth_Moatless-SFT-Trajectories: 3018条训练轨迹
- 访问地址: https://huggingface.co/datasets/swesynth/SWE-Synth_Moatless-SFT-Trajectories
评估基准数据集
- SWE-Bench Lite日志数据集: https://huggingface.co/datasets/swesynth/SWE-Bench_Lite-logs
- BugsInPy日志数据集: https://huggingface.co/datasets/swesynth/BugsInPy-logs
研究问题
数据集支持以下研究问题的实验验证:
- 合成数据与人工数据的模型性能比较(RQ1)
- 合成数据规模对模型性能的影响(RQ2)
- 人工识别合成数据的能力研究(RQ3)
- 不同模型规模下的性能表现(RQ4)
- 数据管道组件的粒度影响(RQ5)
- 组件选择策略的影响(RQ6)
- 模型规模对组件重写的影响(RQ7)
- 真实修复提取策略比较(RQ8)
系统要求
- 硬件:
- 最小10GB RAM,推荐≥32GB RAM
-
150GB磁盘空间
- 软件:
- Linux操作系统(测试于Ubuntu 20.04)
- Docker(测试版本27.5.1)
相关资源
搜集汇总
数据集介绍

构建方式
在自动化程序修复领域,数据稀缺性长期制约着模型性能的提升。SWE-Synth创新性地采用基于大语言模型的代码重写技术,通过定向修改正确代码生成多样化的人工缺陷,同时自动合成包含中间修复步骤的完整修复轨迹。该流水线通过自动化验证机制确保生成缺陷-修复对的质量,最终构建起包含9459个合成缺陷和3018个修复方案的大规模数据集,有效解决了传统人工标注方法成本高昂且难以规模化的问题。
使用方法
研究者可通过Hugging Face平台直接获取预生成的合成数据集,包含基础缺陷-修复对和强化学习所需的修复轨迹数据。本地复现需配置Python 3.12环境和Docker容器,按照模块化实验指南可分别执行数据生成、基准测试和消融研究。数据集特别设计了与SWE-Bench Lite和BugsInPy的兼容接口,支持跨平台性能对比。针对不同研究目标,配套Jupyter Notebook提供了详细的数据统计分析工具,而在线调研系统则便于开展人工评估实验。
背景与挑战
背景概述
SWE-Synth数据集由FSoft-AI4Code团队开发,旨在解决自动程序修复(APR)领域面临的现实挑战。传统APR方法依赖于人工收集的多样化真实漏洞数据集,然而这类数据集的构建成本高昂且难以扩展。为此,研究团队创新性地提出了一种基于大语言模型(LLM)的合成数据生成管道,通过定向代码重写技术自动生成可验证的漏洞修复数据。该数据集不仅包含丰富的上下文信息,还记录了修复过程中的中间步骤,为模型训练提供了更全面的学习信号。SWE-Synth的出现在GitHub等开源平台上的人工数据集(如SWE-Gym)之外,提供了更具扩展性的替代方案,并在SWE-Bench和BugsInPy等基准测试中展现出卓越性能。
当前挑战
在自动程序修复领域,真实漏洞数据的稀缺性和多样性不足严重制约了模型的泛化能力。传统人工收集方法难以覆盖复杂多变的漏洞场景,且数据标注过程耗时费力。SWE-Synth在构建过程中面临多重挑战:如何确保合成漏洞的自然性与真实性,使其能够准确反映现实软件开发中的错误模式;如何设计有效的验证机制,保证生成修复方案的正确性;以及如何平衡数据规模与质量的关系,在扩展性的同时维持数据的教学价值。此外,中间修复步骤的合成需要精确控制代码变换粒度,这对LLM的提示工程和管道设计提出了极高要求。
常用场景
经典使用场景
在自动化程序修复(APR)领域,SWE-Synth数据集通过合成大量可验证的bug修复对,为研究人员提供了丰富的训练资源。该数据集特别适用于训练大型语言模型(LLM),使其能够学习并模拟真实的bug修复过程。通过这种方式,研究人员可以探索模型在不同编程语言和复杂代码库中的修复能力,从而推动自动化修复技术的发展。
解决学术问题
SWE-Synth数据集解决了自动化程序修复研究中数据稀缺的核心问题。传统方法依赖人工标注或大规模代码库挖掘,成本高昂且难以扩展。该数据集通过LLM生成合成数据,不仅提供了多样化的bug修复案例,还包含了中间修复步骤,显著提升了模型训练的效率和效果。这一创新为APR领域的模型优化和算法改进提供了可靠的数据支持。
实际应用
在实际应用中,SWE-Synth数据集被广泛用于开发智能代码修复工具。例如,集成开发环境(IDE)可以利用该数据集训练的模型实时检测和修复代码错误,显著提升开发效率。此外,该数据集还支持开源社区和企业的代码质量管理系统,帮助开发者快速定位和修复潜在缺陷,减少软件维护成本。
数据集最近研究
最新研究方向
在自动化程序修复领域,数据稀缺性长期制约着大型语言模型的性能优化。SWE-Synth通过创新性地构建基于LLM的代码重写管道,成功实现了可验证缺陷修复数据的规模化合成,为APR研究开辟了新范式。该数据集不仅包含丰富的上下文感知缺陷修复对,还创新性地融入了中间修复步骤轨迹,显著提升了模型对复杂缺陷的推理能力。当前研究热点聚焦于探索合成数据与真实数据的性能等价性,以及如何通过调整组件粒度、选择策略等参数优化数据生成流程。在模型规模适应性实验中,研究者发现不同参数规模的LLM均能从合成数据中获得稳定性能提升,这一发现为降低APR模型的训练成本提供了实证依据。
以上内容由遇见数据集搜集并总结生成



