论文
更好的理解,更好的修复?基于LLM的自动化程序修复中的幻觉研究
Better Understanding, Better Fixes? A Study of Hallucination in LLM-based Automated Program Repair
摘要
大语言模型 (LLM) 具有显着先进的自动化程序修复 (APR),但现有的评估仍然主要以结果为中心,并且对修复过程中的幻觉提供的洞察有限。在 APR 中,幻觉不仅可能出现在最终补丁中,而且还可能出现在指导补丁生成的中间工件中。为了解决这一差距,我们对整个 APR 过程中的幻觉进行了多层分析。具体来说,我们将幻觉描述为不忠实地基于可用修复证据的补丁或中间产物的产生。我们通过三个任务来检查最终补丁中的修复幻觉并理解中间工件中的幻觉,即触发测试用例识别、行覆盖率预测和附加测试用例生成。然后,我们通过自动评估和手动分析来评估 832 个 Defects4J 缺陷上的三个代表性 LLM。我们的结果表明修复和理解幻觉仍然普遍存在。在模型和设置中,只有 21.0%-55.9% 的生成补丁通过了开发人员编写的测试套件。此外,虽然更准确的中间工件通常与成功的修复相关,但这种关系并不总是成立。对 812 个修复样本进行手动分析,发现 72.7% 的修复幻觉,包括通过所有可用测试的补丁;错误的因果定位和错误的修复策略分别占这些幻觉的 45.9% 和 18.5%。同时,模型经常错误地识别触发测试用例,错误预测涉及分支控制流的线路覆盖范围,并生成缺少错误触发条件或不正确的预期行为的附加测试用例。