A Deep Dive into Large Language Models for Automated Bug Localization and Repair

2024年04月17日
  • 简介
    大型语言模型(LLMs)在各种软件工程任务中表现出了令人印象深刻的效果,包括自动程序修复(APR)。在本研究中,我们深入探讨了利用LLMs进行自动错误修复。与许多基于深度学习的APR方法不同,这些方法假设已知错误位置,依赖于行级定位工具,或在一步中解决错误预测和修复,我们的方法独特地利用LLMs在标记级别上预测错误位置,随后利用它们进行错误修复。使用不同的LLMs对错误定位和修复进行方法论分离,能够有效地整合多样化的上下文信息和改进归纳偏差的融入。我们引入了Toggle:基于标记的错误定位和修复,这是一个综合的程序修复框架,它集成了错误定位模型、调整单元和错误修复模型。Toggle以有错误的函数作为输入,并生成一个完整的修正函数。我们研究了各种提示样式,以确定更好地利用归纳偏差并显著优于其他提示的最有效提示。Toggle在CodeXGLUE代码优化基准测试中实现了新的最优性能(SOTA),并在几个其他广泛使用的APR数据集中表现出更好和可比的性能,包括Defects4J。
  • 作者讲解
  • 图表
  • 解决问题
    本论文旨在探索利用大型语言模型(LLMs)进行自动程序修复(APR)的方法,特别是在预测漏洞位置和修复漏洞之间进行方法学分离。
  • 关键思路
    本论文提出了一种名为Toggle的综合程序修复框架,该框架通过使用不同的LLMs对漏洞定位和修复进行方法学分离,从而实现了有效地整合多样化的上下文信息和改进归纳偏差的能力。
  • 其它亮点
    本论文的亮点包括使用LLMs进行令牌级别的漏洞定位和修复,以及探索不同的提示方式以更好地利用归纳偏差。该论文在CodeXGLUE代码精炼基准测试中实现了最新的SOTA性能,并在其他几个广泛使用的APR数据集中表现出更好和可比较的性能。
  • 相关研究
    最近的相关研究包括使用深度学习进行自动程序修复的方法以及利用LLMs进行代码生成和自然语言处理的研究。相关的研究论文包括《DeepFix: Fixing Common C Language Errors by Deep Learning》和《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问