大型语言模型 (LLM) 是如饥似渴的阅读者。在预训练阶段,它们吞噬了从开放网络上抓取的海量数据集。虽然这使它们能够学习语法、推理和世界知识,但也意味着它们无意中记住了敏感信息——从个人身份信息 (PII) 到有毒的仇恨言论。
这带来了一个巨大的安全和伦理困境。如果模型记住了用户的地址或内化了有害的偏见,我们该如何删除特定的知识?传统的方法是清洗数据集并从头开始重新训练模型。然而,对于拥有数十亿参数的模型来说,重新训练在成本和时间上都是令人望而却步的。
这就产生了对知识遗忘 (Knowledge Unlearning) 的需求——即在模型训练后擦除特定数据的方法。然而,挑战不仅在于遗忘,更在于选择性地遗忘。现有的方法通常像一把大锤: 它们成功删除了敏感数据,但也在此过程中破坏了模型的语言能力。
在这篇深度文章中,我们将探讨浙江大学研究人员提出的一种新解决方案: 细粒度可插拔梯度上升 (Fine-grained Pluggable Gradient Ascent,简称 FPGA) 。 该方法引入了一种外科手术式的遗忘手段,利用自适应加权技术,只针对敏感 token 进行处理,同时保留模型的通用智能。
机器遗忘的版图
要理解 FPGA 的创新之处,我们首先需要对问题进行分类。“机器遗忘”是一个广泛的领域,但在不同领域的表现形式各异。
在计算机视觉或推荐系统中,遗忘可能意味着消除特定用户或特定图像的影响。然而,对于大型语言模型,目标则更加微妙。

如图 2 所示,LLM 中的知识遗忘通常关注以下几个方面:
- 实例级 (Instance-wise) : 遗忘对特定提示的回答 (例如,“如何制造炸弹?”) 。
- 实体级 (Entity-wise) : 擦除与特定实体相关的所有记忆 (例如,“Bob 的地址”) 。
- 行为级 (Behavior-wise) : 使模型不再生成某一类内容,例如有毒言论。
LLM 面临的主要困难是通用能力的灾难性遗忘 (Catastrophic Forgetting) 。 如果你通过激进地修改权重来强迫模型忘记“Bob 的地址”,你可能会破坏它组织连贯句子或对“地址”这一概念进行推理的能力。
现状: 梯度上升 (GA)
最常见的轻量级遗忘方法是梯度上升 (Gradient Ascent,简称 GA) 。 要理解 GA,可以想一下模型是如何学习的。在训练过程中,我们使用梯度下降来最小化损失——本质上是试图最大化预测正确下一个 token 的概率。
梯度上升则相反。它试图针对特定的目标序列最大化损失。它告诉模型: “预测这个序列是错误的;将你的参数向相反的方向移动。”
在数学上,如果我们的目标序列是 \(\mathbf{x}\),标准的 GA 试图最大化负对数似然:

在这里,模型被推离在给定上下文 \(x_{ 标准 GA 的缺陷在于缺乏细微差别。它平等地对待目标序列中的每一个 token。 考虑一个包含敏感 PII 的句子: “Bob’s address is 123 Maple St.” (Bob 的地址是枫树街 123 号) 标准 GA 将遗忘目标应用于整个序列。它试图让模型以同等的强度忘记 “Bob’s”、“address”、“is” 和 “123 Maple St”。结果呢?模型可能成功忘记了地址,但也可能忘记了 “address is” 这种语法结构或 “Bob” 这个常用名。 如图 1 所示,上一行代表标准梯度上升。它试图遗忘整个有毒短语 “You are just like a fool”。通过对 “You” 或 “are” 等常用词应用反向梯度,我们降低了模型的通用语言流畅度。 下一行代表了本文提出的方法——FPGA 。 注意 token 下方的权重: FPGA 的核心创新在于自适应目标 (Adaptive Objective) 。 FPGA 不再将所有 token 视为平等的遗忘目标,而是根据 token 对遗忘目标的“敏感度”或相关性,为每个 token 分配一个动态权重。 新的目标函数如下所示: 这里,\(w_{x_t}^i\) 代表 token 的权重。如果一个 token 高度敏感 (如种族歧视词汇或信用卡号) ,它会获得高权重,从而主导梯度的更新。如果它是一个常见的停用词 (如 “the” 或 “is”) ,它会获得低权重,从而最小化对相关模型参数的更改。 你可能会问: 模型怎么知道哪些 token 是敏感的? 作者提出了一个三步流程,在遗忘过程中自动计算这些权重。 参考图 3 中的架构,流程如下: 选择性掩码 (Selective Masking) :
系统首先查看模型的预测。对于给定的 token \(x_t\),它检查预测概率最高的 \(m\) 个 token。如果目标 token 在这个“可能”的集合中,说明该 token 与上下文非常契合。系统构建一个选择性掩码,将相关 token 与噪声隔离。 拼接 (Concatenation) :
将掩码向量与 token 序列拼接,准备进行评估。 判别器评估 (Discriminator Evaluation) :
这是关键的一步。系统采用一个独立的、预训练好的判别器 (Discriminator) (例如毒性分类器或 PII 检测器) 。该判别器读取 token 并分配一个损失值,指示该特定 token 对“不良”类别的贡献程度 (例如,这个词有多大毒性?) 。 判别器的输出成为了权重 \(w\)。这使得遗忘过程从钝器打击转变为精密操作。 为了看看实际效果,我们来看看 FPGA 如何对特定句子进行加权,并与标准 GA 进行对比。 在图 5 中,看第一个关于 “Harry Potter” 的例子。 再看有毒的例子 (第二个块) : “He fucked her.” 这种外科手术式的方法真的有效吗?研究人员将 FPGA 与标准 GA、差分隐私 (DP) 方法以及基于正则化的方法 (如 KL 散度) 进行了对比测试。他们评估了两个主要标准: 遗忘性能 (秘密被遗忘了吗?) 和通用能力 (它还能正常说英语吗?) 。 为了衡量遗忘效果,研究人员使用了两个指标: 实验表明,FPGA 实现了与标准梯度上升相当的遗忘性能。这两种方法都成功地将记忆准确率和提取可能性降低到了从未见过该数据的模型的基线水平。 然而,遗忘只是战斗的一半。 这才是 FPGA 大放异彩的地方。研究人员在 9 个分类任务 (如阅读理解和常识推理) 和 4 个对话任务上测试了模型。 我们可以从模型实际生成的文本中看到差异。 在表 4 中,观察毒性示例 (第一行) : 关键是,句子结构保持完美。模型没有忘记如何写作;它只是忘记了如何变得恶毒。 研究人员进一步推进了实验。FPGA 能否不仅用于移除少数坏数据,还能用于对齐模型的整体行为——移除所有毒性? 他们将 FPGA 与专门的行为对齐方法 Quark 以及标准 GA 进行了比较,同时将遗忘序列的数量 (\(s\)) 从 4 增加到 256。 图 4 揭示了一个重要的见解: 细粒度可插拔梯度上升 (Fine-grained Pluggable Gradient Ascent) 的美妙之处在于它的名字: 可插拔 (Pluggable) 。 因为 FPGA 本质上是一个修改后的目标函数,所以它是轻量级的。它不需要复杂的重新训练或大规模的架构更改。它可以被“插入”到现有的微调流程中。此外,研究人员证明 FPGA 可以与正则化 (添加 KL 散度项) 结合使用,以进一步锁定模型的通用能力。 随着语言模型日益融入我们的日常生活,选择性地编辑其知识的能力——进行脑部手术而不是脑白质切除术——对于隐私、安全和合规性至关重要。FPGA 代表了使该过程高效且安全的重要一步。 核心要点:标准 GA 的问题

[0.08, 0.08, ... 0.57]。模型给敏感词 “fool” 分配了高权重,而给中性的结构词分配了低权重。这使得模型能够像外科手术一样切除毒性,同时保持通用词汇的完整。解决方案: 细粒度可插拔梯度上升 (FPGA)

权重是如何确定的?

权重可视化

实验结果
1. 遗忘有效性


2. 保持通用能力
3. 定性分析

扩展到行为对齐

结论: “可插拔”的遗忘未来
](https://deep-paper.org/en/paper/file-3099/images/cover.png)