LLM2D
合成代码手术:利用大语言模型和合成数据修复漏洞和 bug
Synthetic Code Surgery: Repairing Bugs and Vulnerabilities with LLMs and Synthetic Data
作者: David de-Fitero-Dominguez, Antonio Garcia-Cabot, Eva Garcia-Lopez
发布日期: 5/13/2025
arXiv ID: oai:arXiv.org:2505.07372v1

摘要

arXiv:2505.07372v1 宣称类型: cross 摘要:本文提出了一种新的方法,通过利用大型语言模型(LLMs)生成合成数据来增强自化程序修复(APR)。当前的APR系统受到高质量训练数据的限制,这些数据需要涵盖多种编程语言中的各种类型错误。本文提出的方法通过一个两阶段过程解决了这一限制:首先生成合成样本,然后进行严格的质量评估。使用了多种最先进的LLMs,生成了约30,000个跨12种编程语言和13种错误类别包含错误代码与修复代码的配对示例。随后,这些样本根据五个标准:正确性、代码质量、安全性、性能和完整性,进行了跨模型评估。在VulRepair测试集数据集上的实验评估显示,在某些场景中,经过质量筛选的合成数据集在完美预测率方面表现出显著提高,超过了基线和真实提交数据的配置。该方法通过严格的统计测试得到了验证,包括ANOVA和后续Tukey's诚实显著差异分析。此外,最佳配置在使用相对较少计算强度的解码策略的情况下,仍然超过了现有的系统。该研究确立了一个自举范式,在该范式中,LLMs生成并评估自己的训练数据,有可能改变软件工程任务中数据稀缺性的方法,并推动开发稳健且适应性强的自动化代码维护工具。