论文
实现代码中的知识对齐 LLM:不断发展的 API 的对比遗忘
Towards Knowledge Alignment in Code LLMs: Contrastive Unlearning for Evolving APIs
摘要
大语言模型 (LLM) 最近在代码生成方面取得了强劲的性能。然而,由于知识的断层和软件库的快速发展,它们经常生成已弃用的 API 用法,从而导致不可靠和不兼容的代码。当只有一小部分模型知识需要修改时,现有的 微调 方法缺乏选择性。最近的模型级方法,例如机器取消学习和模型编辑,为修改参数知识提供了一个有前途的方向。然而,它们在缓解已弃用 API 方面的用途在很大程度上仍未得到探索。此外,现有方法主要抑制过时的 API,但没有明确引导模型进行正确的替换,通常会导致生成不匹配或不完整的生成。为了解决这一限制,我们开发了 CURE,这是一种对比性忘却方法,它将忘却从纯粹抑制过时的知识转变为明确促进正确的 API 替换。具体而言,CURE 共同阻止废弃的 API,同时鼓励使用有效的替代方案,从而能够更可靠地适应不断发展的软件库。在最近已弃用的 API 基准数据集上进行的实验表明,CURE 不仅减少了已弃用的 API 的使用,而且还提高了正确的 API 替换,同时保留了一般代码生成性能。在不同的质量指标方面,CURE 大大优于两个 SOTA 基线。这些发现强调了在使 LLM 适应不断发展的软件生态系统时将抑制与替换相结合的重要性。