SWE-Synth
收藏arXiv2025-04-21 更新2025-04-23 收录
下载链接:
https://github.com/FSoft-AI4Code/SWE-Synth
下载链接
链接失效反馈官方服务:
资源简介:
SWE-Synth是一个由越南FPT软件AI中心提出的、基于大型语言模型的合成数据集生成框架。该框架生成的数据集包含了缺陷代码和相应的修复代码对,以及用于验证缺陷和修复正确性的测试用例。这些数据集是在代码库级别上合成的,能够模拟真实的软件开发过程中出现的缺陷。SWE-Synth通过提供可扩展的、包含修复轨迹的合成数据,旨在推动自动程序修复和软件工程自动化领域的研究。
SWE-Synth is a large language model-based synthetic dataset generation framework proposed by the AI Center of FPT Software Vietnam. The datasets generated by this framework include pairs of defective code and their corresponding fixed versions, as well as test cases used to validate the correctness of both the defects and their fixes. These datasets are synthesized at the codebase level, capable of simulating defects that arise during real-world software development processes. By providing scalable synthetic data with repair trajectories, SWE-Synth aims to advance research in the fields of automated program repair and software engineering automation.
提供机构:
越南FPT软件AI中心,美国德克萨斯大学达拉斯分校,新加坡南洋理工大学
创建时间:
2025-04-21
原始信息汇总
SWE-Synth数据集概述
数据集简介
- 名称: SWE-Synth
- 目的: 通过合成可验证的bug修复数据,支持大型语言模型(LLM)解决现实世界中的软件bug
- 特点:
- 包含自然、可扩展、自动化可验证的bug修复对
- 提供有价值的中间修复步骤
- 通过LLM生成合成bug,实现低成本、高扩展性
数据集内容
- SWE-Synth主数据集:
- 包含9459个合成bug和3018个修复
- 下载地址: https://huggingface.co/datasets/swesynth/SWE-Synth
- Moatless轨迹数据集:
评估基准数据集
- SWE-Bench Lite日志: https://huggingface.co/datasets/swesynth/SWE-Bench_Lite-logs
- BugsInPy日志: https://huggingface.co/datasets/swesynth/BugsInPy-logs
研究问题
- RQ1: 比较合成数据与人工数据对模型性能的影响
- RQ2: 合成数据规模扩展对模型性能的影响
- RQ3: 人类对合成数据与真实bug的区分能力
- RQ4: 不同模型规模下合成数据的性能表现
- RQ5-RQ8: 数据管道各组件的影响分析
技术细节
- 硬件要求:
- 最小10GB RAM,推荐≥32GB RAM
-
150GB磁盘空间
- 软件要求:
- Linux系统(测试于Ubuntu 20.04)
- Docker(测试版本27.5.1)
搜集汇总
数据集介绍

构建方式
SWE-Synth采用了一种创新的框架,通过大型语言模型(LLM)代理模拟人类调试工作流,生成包含错误修复对、测试用例和结构化修复轨迹的数据集。该框架首先选择程序中的组件,屏蔽其实现细节,然后利用LLM重新实现这些组件,生成新的程序变体。这些变体随后通过测试用例进行验证,确保其包含可验证的错误。整个过程自动化程度高,能够在最小人工干预下扩展到大型代码库。
特点
SWE-Synth数据集的特点在于其高度可验证性和过程感知能力。它不仅提供了错误修复对,还包括了测试用例和详细的修复轨迹,模拟了开发者的迭代推理过程。数据集中的错误模拟了真实开发者的常见错误,具有高度的真实性和多样性。此外,数据集的构建过程自动化程度高,能够高效生成大量数据,同时保持了上下文的丰富性和正确性。
使用方法
SWE-Synth数据集可用于训练和评估自动化程序修复(APR)模型,特别是基于大型语言模型的代理。使用者可以通过分析数据集中的错误修复对和修复轨迹,训练模型以理解和修复复杂错误。数据集中的测试用例可用于验证生成的修复是否正确。此外,数据集还可用于研究错误定位、测试驱动开发等软件工程任务,为开源软件工程代理的进步提供了高质量的训练数据。
背景与挑战
背景概述
SWE-Synth是由FPT Software AI Center、University of Texas at Dallas和Nanyang Technological University的研究团队于2025年提出的一个合成数据集,旨在解决自动程序修复(APR)领域中的数据稀缺问题。该数据集通过模拟人类调试工作流,生成包含错误修复对、测试用例和结构化修复轨迹的高质量数据,以支持大型语言模型(LLM)在真实世界错误修复中的应用。SWE-Synth的提出填补了现有数据集中缺乏可验证输出和中间推理轨迹的空白,显著提升了开源模型在APR任务中的性能。
当前挑战
SWE-Synth面临的挑战主要包括两个方面:1) 领域问题的挑战:自动程序修复任务本身具有复杂性,需要模型能够准确定位错误、生成有效补丁并进行验证,这对数据的质量和多样性提出了极高要求;2) 构建过程的挑战:在合成数据生成过程中,如何确保错误的人为真实性、实现自动化验证以及保持修复轨迹的完整性是主要难点。此外,数据生成还需要平衡规模与质量,避免产生过多简单或不真实的错误案例。
常用场景
经典使用场景
在自动化程序修复(APR)领域,SWE-Synth数据集通过模拟真实开发者的调试工作流程,生成了大量可验证的bug-fix对、测试用例和修复轨迹。该数据集最经典的使用场景是训练和评估基于大型语言模型(LLM)的自动程序修复系统,帮助模型学习如何定位、修复和验证代码中的错误。通过提供丰富的上下文信息和中间推理步骤,SWE-Synth使模型能够更准确地模拟人类开发者的修复过程。
解决学术问题
SWE-Synth解决了自动化程序修复领域中的多个关键学术问题。首先,它填补了高质量、可扩展训练数据的空白,尤其是那些包含可验证输出和中间推理轨迹的数据。其次,它通过合成真实且可验证的bug-fix数据,克服了传统数据集中噪声多、缺乏测试验证的问题。此外,SWE-Synth还支持复杂软件工程任务的训练,如多位置bug修复和测试驱动开发,推动了开源模型在APR任务中的性能提升。
衍生相关工作
SWE-Synth的推出催生了一系列相关研究工作。例如,SWE-Bench和SWE-Bench Lite等基准测试利用该数据集评估自主软件工程代理的性能。此外,许多基于LLM的代理框架(如MoatlessTool和SWE-Gym)也采用了SWE-Synth的数据来训练和验证其模型。这些工作不仅扩展了SWE-Synth的应用范围,还进一步推动了自动化软件工程领域的发展,特别是在开源模型和复杂任务处理方面。
以上内容由遇见数据集搜集并总结生成



