大型语言模型时代的声明性软件规范自动修复
本研究提出利用 LLMS 模型为基础的多语言自动修复引擎 RING,通过一个基于提示的定位、转化和排序策略,极大地降低了修复程序所需的工程量,相较于传统的修复技术,RING 在多种语言中的表现更为出色。
Aug, 2022
ChatRepair是第一个全自动、基于会话的自动程序修复方法,它以对话方式交替进行修补生成和直接反馈以实现自动程序修复。
Apr, 2023
对 ChatGPT 在软件工程中的应用进行了研究,发现 ChatGPT 在代码的语法理解方面具有较高的能力,但在代码的语义理解方面,特别是动态语义方面存在困难,容易产生虚假输出。这表明在软件工程中使用 ChatGPT 时需要进一步探索验证其输出正确性的方法,以确保其可靠性。
May, 2023
本文分析了 GPT-3.5 和 GPT-4 在 APPs 数据集上自我修复的能力,发现只在 GPT-4 上看到了自我修复的有效性,并且发现自我修复被反馈阶段所限制。
Jun, 2023
自动程序修复是减少开发人员手动调试努力并提高软件可靠性的关键。本文提出了一种新颖的检索增强型修补生成框架(RAP-Gen),通过明确利用从以前的错误修复对的代码库中检索出的相关修复模式来简化参数模型的负担,进而自动化程序修复过程。实验结果表明,RAP-Gen在所有基准测试中显著优于先前的最先进方法,例如在818个Defects4J错误上修复了15个更多的错误。
Sep, 2023
大型语言模型在软件工程任务中变得越来越有效,本文探讨了使用ChatGPT生成循环不变量来支持形式化软件验证的可行性,并通过对106个C程序进行实验验证了ChatGPT生成的循环不变量的有效性和实用性。
Nov, 2023
RepairLLaMA是一种新颖的程序修复方法,结合了APR的代码表示和名为LoRA的最先进的参数高效LLM微调技术,从而产生了一个高度有效的“程序修复适配器”来修复语言模型中的错误。
Dec, 2023
该论文介绍了RepairAgent,其是第一个基于大型语言模型(LLM)的自主代理解决程序修复挑战的工作。RepairAgent通过调用合适的工具来自主规划和执行修复操作,包括收集有关错误的信息、收集修复材料以及验证修复结果,并在先前修复尝试的反馈和信息基础上决定调用哪些工具。该研究表明,RepairAgent在修复164个错误中表现出了良好的效果,并修复了先前技术无法修复的39个错误。与LLM的交互对每个错误平均造成了270,000个token的开销,根据OpenAI GPT-3.5模型的当前定价,平均每个错误的成本为14美分。这项工作是首次提出基于LLM的自主代理程序修复技术,为未来软件工程的代理技术铺平了道路。
Mar, 2024
使用大型语言模型(LLMs)进行代码修复可以在高资源语言和低资源语言上实现较好的性能表现,但低资源语言中的代码修复效果受到了深知识缺乏的基础模型的限制。我们提出了一种名为DistiLRR的方法,通过从教师模型到学生模型的推理和代码生成能力转移,可以在低资源语言中获得比基线模型更好的性能。研究结果显示DistiLRR在低资源语言上始终优于基线模型,但在高资源语言上性能相似。我们经过进一步分析,发现了解释质量与代码正确性之间的相关性较弱,这种弱点在低资源环境中被放大,因为基础模型缺乏对编程语言的深入知识,导致代码修复在高资源和低资源语言之间的效果存在差异。
Jun, 2024