论文

PatchRecall:用于自动程序修复的补丁驱动检索

PatchRecall: Patch-Driven Retrieval for Automated Program Repair

上下文与知识检索增强

摘要

从大型代码库中检索正确的文件集是自动程序修复 (APR) 中的关键步骤。高召回率对于确保包含相关文件是必要的,但简单地增加检索文件的数量会引入噪音并降低效率。为了解决这种权衡问题,我们提出了 PatchRecall,这是一种平衡召回与简洁性的混合检索方法。我们的方法结合了两种互补策略:(1) 代码库检索,其中当前问题描述与代码库进行匹配,以显示潜在相关的文件;(2) 基于历史记录的检索,其中利用类似的过去问题来将编辑的文件识别为候选目标。来自两种策略的候选文件被合并并重新排序以产生最终的检索集。 SWE-Bench 上的实验表明,PatchRecall 在不显着增加检索文件数量的情况下实现了更高的召回率,从而实现了更有效的 APR。