论文

添加是机器,删除是人:测量和减轻 LLM 代码编辑中的删除避免

To Add Is Machine, To Delete Is Human: Measuring and Mitigating Deletion Avoidance in LLM Code Editing

模型评测模型行为与机制分析

摘要

大语言模型 越来越多地编写和修复生产代码,但越来越多的证据表明,他们的测试通过补丁使代码库更难维护。我们确定了一个具体的来源:避免删除,即保留预期编辑需要删除的代码的系统倾向。在官方 SWE-bench Verified 排行榜上的五个领先模型中,即使在所有五个任务都解决的情况下,针对开发人员补丁的删除召回率也最多达到 71.7%,并且模型在超过 92% 的所需删除中达到了正确的文件,但在不到 52% 的情况下删除了确切的行。相反,29.0% 的传递补丁将目标代码包装在防护或回退中,我们将这种模式称为 Guard-and-Go。此类补丁之所以能够通过,是因为原始测试很少检查删除:当我们改造 34 个经过验证的任务时,如果目标代码仍然存在,测试就会失败,跨越封闭和开放权重的四个前沿模型从 63.2% 下降到 41.9%。因为真正的修复混合了删除和添加,所以我们策划了 CanItDelete,这是从真实提交中挖掘的 200 个任务的基准,其整个所需的编辑都是删除。即使没有额外的工作,最好的模型仍然有五分之一的任务失败,而较小的开放模型则下降到 18.0%。然后,我们在四个累积提示下消融 GPT-5.6 Sol;在我们提供精确的行之前,成功率几乎没有变化,这几乎消除了不完全删除,但成功率仅提高到 80.5%,因为模型随后会删除超出范围的内容或添加代码。最后,通过一项试点研究,我们展示了一个潜在的解决方案:在 后训练 期间教授删除可以减少删除避免并提高更广泛的代码编辑性能,这表明该行为未经过充分训练而不是超出范围。