- 简介自动程序修复(APR)旨在自动生成修复软件缺陷的补丁。最近大型语言模型(LLM)的进展,如ChatGPT,在对话驱动的APR框架中取得了令人鼓舞的成果。然而,对话驱动的APR的有效性取决于反馈信息的质量。本文提出了一种新颖的基于对话的APR方法ContrastRepair,通过提供对比测试对来增强对话驱动的APR。测试对包括一个失败测试和一个通过测试,为LLM提供对比反馈。我们的关键见解是最小化生成的通过测试和给定的失败测试之间的差异,这可以更好地分离错误的根本原因。通过提供信息丰富、具体的反馈,ContrastRepair使LLM能够产生有效的错误修复。ContrastRepair的实现基于最先进的LLM ChatGPT,并与ChatGPT进行迭代交互,直到生成合理的补丁。我们在多个基准数据集上评估了ContrastRepair,包括Defects4j、QuixBugs和HumanEval-Java。结果表明,ContrastRepair明显优于现有方法,在程序修复方面达到了新的最高水平。例如,在Defects4j 1.2和2.0中,ContrastRepair正确修复了337个错误案例中的143个,而最佳基准线只修复了124个错误。
- 图表
- 解决问题ContrastRepair: A Contrastive Approach to Automated Program Repair via Conversation-based Feedback
- 关键思路ContrastRepair提出了一种新的对话式自动程序修复方法,通过对比式反馈来提供更具体、有效的反馈信息,从而更好地定位程序中的错误根源。
- 其它亮点论文使用了大量的实验数据集来验证ContrastRepair的有效性,结果表明ContrastRepair在自动程序修复方面表现出色,优于现有的方法。论文还使用了最新的大语言模型ChatGPT实现了ContrastRepair,并提供了开源代码。
- 近年来,自动程序修复领域有很多相关研究,例如:Automated Program Repair with Deep Learning: An Overview和Deepfix: Fixing Common C Language Errors by Deep Learning等。
沙发等你来抢
去评论
评论
沙发等你来抢