RepairLLaMA: Efficient Representations and Fine-Tuned Adapters for Program Repair

André Silva,
Sen Fang,
Martin Monperrus
25
热度
SoftEng
ML
2023年12月25日
  • 简介
    随着大型语言模型(LLM)的出现,自动程序修复(APR)已经有了显著的发展。对于程序修复进行LLM微调是一项最近的研究领域,其中许多维度尚未被探索。现有的工作主要使用简单的代码表示来微调LLM,其在微调更大的LLM能力方面存在根本性的限制。为了解决这个问题,我们提出了一种新颖的程序修复方法RepairLLaMA,它结合了1)用于APR的代码表示和2)最先进的参数高效的LLM微调技术LoRA。这导致RepairLLaMA产生了一个高度有效的“程序修复适配器”,用于使用语言模型修复错误。我们的实验证明了两个概念的有效性。首先,使用专门针对程序修复的代码表示微调适配器使模型能够使用有意义的修复信号。其次,参数高效的微调有助于微调的收敛,并有助于修复适配器在修复超出微调数据分布的数据点方面的有效性。总体而言,RepairLLaMA正确修复了125个Defects4J v2和82个HumanEval-Java错误,优于所有基线。
  • 图表
  • 解决问题
    本论文旨在解决程序修复中存在的问题,即现有的基于LLMs的自动程序修复方法受到代码表示方式的限制,难以fine-tune更大的LLMs。该论文提出了一种新的程序修复方法,结合了特定的代码表示方式和称为LoRA的最先进的参数高效LLM fine-tuning技术,以解决这个问题。
  • 关键思路
    该论文的关键思路是将特定的代码表示方式与LoRA技术相结合,产生高效的程序修复适配器,可以修复LLMs中的错误。
  • 其它亮点
    该论文的实验表明,使用特定的代码表示方式fine-tune适配器可以使用有意义的修复信号,而参数高效的fine-tune有助于fine-tune收敛并有助于修复适配器的修复效果。该论文在125个Defects4J v2和82个HumanEval-Java错误修复方面表现出色,优于所有基线。该论文开源了代码和数据集。
  • 相关研究
    最近的相关研究包括:1)基于LLMs的程序修复方法;2)代码表示方式的改进;3)fine-tune技术的改进。相关论文包括:1)《DeepFix: Fixing Common C Language Errors by Deep Learning》;2)《Learning to Represent Programs with Graphs》;3)《The Importance of Pre-training in Deep Learning》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论