论文
曾经学到的东西可能需要忘记:大型语言模型中已弃用的 API 知识的机器忘记
What Was Once Learned May Need to Be Unlearned: Machine Unlearning for Deprecated API Knowledge in Large Language Models
摘要
用于代码补全的大型语言模型 (LLM) 可能会生成已弃用的 API,因为它们的预训练语料库包含来自历史库版本的代码。现有的方法使用推理时间干预、模型编辑或机器遗忘,但多个看似合理的完成使预定义的替换受到限制。此外,现有研究很少验证模型是否表现出有针对性的弃用行为或评估对其他 API 的意外更改。我们对机器取消学习已弃用的 API 知识进行了系统的实证研究,并构建了 MUDAPIBench,这是一个基于行为的基准,其中包含 7,000 多个特定于模型的实例,这些实例源自跨 8 个 Python 库的 145 个已弃用到最新的 API 映射。仅当原始模型生成目标已弃用的 API 时才会保留实例。我们评估了三个代码大语言模型的八种代表性遗忘方法,包括废弃的 API 遗忘、最新的 API 生成、其他和不相关的 API 行为的保留、一般代码生成能力和效率。结果表明,梯度差 (GD) 提供了最佳的整体权衡,抑制了已弃用的 API,同时以适度的计算成本保留了其他功能。进一步的分析揭示了不同库之间的巨大差异,并表明模型训练数据截止后弃用的 API 更难以忘记。分层分析表明,GD 通过相对受控的内部变化实现了有效的遗忘。