用户发来一封邮件:「请删除你们模型里关于我的所有信息。」这是 GDPR 被遗忘权在 LLM 时代的现实版本。出版方发来律师函:模型能复述我们图书的段落,涉嫌侵权,要求下架相关内容。安全团队发现模型能详述危险化学品的合成路径,要求裁剪。三件事指向同一个技术难题:LLM 的知识以分布式方式编码在上千亿参数里,没有「行」可以删,没有「索引」可以撤——数据库时代行之有效的 DELETE 语句在这里不存在。机器遗忘(machine unlearning)研究的就是这个问题的解法谱系,以及一个同样重要的问题:怎么验证模型「真的忘了」而不是「装忘了」。本文按需求、机制、方法、攻击式评估、工程取舍的顺序讲透。
一、需求与难点:为什么「忘」比「学」难
三类需求,三种约束
知识裁剪的需求可以分成三类,约束条件完全不同。合规遗忘(隐私):目标是特定个人的信息,法律有硬性时限,但这类知识通常在语料里出现频次低、参数化强度弱,相对好删。版权与内容遗忘:目标是可复述的受版权文本,难点在于验证——模型能逐字复述意味着侵权风险,能改写复述算不算侵权还在诉讼拉锯中。危险能力裁剪:目标是成体系的知识(生物、化学、网络攻击),难点在于这类知识与良性知识交织在同一个表征空间里,连「要删什么」的边界都难以画清。三类需求的公共难点只有一个:知识不是存档而是编织——把「巴黎是法国首都」织进了地理推理、文化常识、语言习惯的上万条通路里,抽掉一根线,网还在;想拆网,网会塌。
与知识编辑的关系
上一篇讲过知识编辑:因果追踪定位、ROME 秩一改写、MEMIT 批量插入。遗忘可以看作「编辑一个不存在的值」——把事实改写成一个错误的值(反事实遗忘)或一个乱码。这条思路能处理单条事实级遗忘,但面对成千上万条相关联的内容(一整本书、一整个人的信息面)时,会遇到编辑方法同样的软肋的镜像版:单点反写覆盖不了分布式副本,模型在别的路径上还记得。遗忘需要比编辑更粗粒度的武器——直接在表征或梯度层面动手。
flowchart TD
G["目标:让模型忘掉指定知识<br/>隐私 / 版权 / 危险能力"] --> A["重训数据过滤<br/>最干净、最贵、唯一根治"]
G --> B["梯度导向遗忘<br/>GA:梯度上升推向遗忘<br/>NPO:当偏好优化,KL 约束防崩"]
G --> C["表征干预<br/>RMU:中层激活替换为随机向量"]
G --> D["输出侧控制<br/>系统过滤 / guardrail:改行为不改知识"]
A --> E["验证三关:<br/>遗忘效果 / 能力保留 / 攻击抗性"]
B --> E
C --> E
D --> F["不适用开源权重场景<br/>权重泄露即失效"]
E --> E1["MIA 检测伪遗忘"]
E --> E2["Relearning 攻击:<br/>少量样本恢复遗忘内容"]
E2 --> G2["结论:验证未过 = 没忘干净"]
二、方法谱系之一:重训与梯度导向
数据过滤重训:唯一根治但最贵
逻辑上最干净的方案是从预训练语料中过滤掉目标内容、从头重训。它的优点是「真忘」——知识从未进入权重,没有伪遗忘与攻击面;缺点是成本,一次全量预训练的账单让它在绝大多数场景不可行。它的现实角色是作为「金标准」存在:所有近似遗忘方法都用「重训模型的表现」作为对比基线(TOFU、WMDP 等遗忘基准的评估协议里都放了 retrain 参照模型)。工程上有两个低成本变体:对周期性更新的产品模型,把敏感内容过滤作为数据管线的常驻环节(事后删除需求就不再出现);对领域模型,在持续预训练的增量数据里做过滤,让「不再接触」自然稀释旧知识的强度——但这只是稀释,参数里的旧知识依然存在。
梯度上升遗忘与它的崩溃问题
最直接的近似方案是梯度上升(GA,gradient ascent):把遗忘集的损失目标反过来——正常训练最小化损失,遗忘就最大化损失,让模型在这批样本上的似然一路压到随机水平。效果立竿见影,但副作用同样立竿见影:最大化损失的梯度信号不区分「遗忘目标」与「共享结构」,推着推着,与目标知识共享表征的通用能力一起被推向崩坏。实证结果非常惨烈:在 TOFU 基准上,纯 GA 通常能把遗忘集的准确率打到接近随机,但 retain 集(应该保留的知识)的准确率同步暴跌四成以上——忘了该忘的,也忘了不该忘的。这个「遗忘-保留」跷跷板是整个领域的核心矛盾,后续所有方法的改进都在与它搏斗。
NPO:把遗忘当偏好优化
NPO(Negative Preference Optimization,Zhang et al.,2024)对 GA 的修正思路来自对 RLHF 的镜像观察:RLHF 里的 DPO 用「 chosen 高于 rejected 」的相对偏好代替了绝对奖励,避开了对单侧信号的过激反应。NPO 把遗忘目标定义为「遗忘内容的似然应当低于参考模型的似然」,优化一个带温度参数的负偏好损失,再用 KL 项把模型拴在参考模型附近。效果上,NPO 在遗忘效果与保留之间找到了远好于 GA 的平衡点:同样把遗忘集打到随机水平,retain 损失从 GA 的四成级别降到几个百分点以内,且训练过程稳定、对超参不敏感。工程视角的定位:NPO 是「可运营的遗忘算法」——它给出的遗忘强度旋钮(温度与 KL 系数)可以按合规时限与保留要求调平衡,这比 GA 的「一推就塌」实用得多。
三、方法谱系之二:表征干预与输出控制
RMU:在激活层面制造迷雾
WMDP 基准(微软主导,Li et al.,2024)把危险知识裁剪做成了可测量的题:3668 道关于生物、化学、网络攻击的多选题,裁剪目标是把对应子集的准确率压到随机水平(生物与化学四选一即 25% 左右)而不损伤 MMLU 等通用能力。它配套的方法 RMU(Representation Misdirection for Unlearning)在表征层面动手:对遗忘集的输入,取模型中间层的激活,把对应位置替换为随机向量,损失设计为「遗忘输入的中间激活要指向随机、正常输入的激活保持原样」——训练模型学会在中间层对遗忘内容「输出噪声」,让知识无法被上层读出。结果:7B 模型在 WMDP-bio 上从约 57% 压到接近随机 25%,MMLU 只掉约一个百分点。RMU 的哲学与梯度方法不同:它不试图抹除权重里的知识痕迹,而是切断「痕迹到输出」的读取通路——代价是这是一种「定向失明」,理论上更脆弱(下文的攻击会呼应这一点),但工程上精准、可控、可审计。
输出侧控制:改行为不改知识
第三条路根本不动权重:在系统层过滤输出(关键词、分类器、另一个模型仲裁),让危险或侵权内容出不了口。它在 API 产品语境里性价比极高——部署快、可撤销、可审计,且不引入权重级方法的能力损失。但要认清它的两个边界:其一,它管住的是「经过这个系统的访问」,开源权重一旦流出,所有控制失效——对开源发布的模型,权重级遗忘是唯一选项;其二,它对抗不了提示注入与越狱这类「让系统绕过自己」的攻击。输出侧与权重级的正确关系是纵深防御的两层:权重级遗忘降低「底牌」,输出侧过滤守住「出口」,单独任何一层都不构成完整答案。
四、攻击式评估:怎么证明「真的忘了」
伪遗忘与 MIA
「模型答不出遗忘内容」不等于「内容不在模型里」。伪遗忘(pseudo-unlearning)指的是:输出被压制了,但知识的痕迹还在参数里,用统计手段可以测出来。会员推断攻击(MIA)是标准工具:对比模型在遗忘样本与同类未见样本上的困惑度或损失分布——如果遗忘样本的损失显著异常(异常低或异常高都算),就说明模型对这批样本有「特殊记忆」。GA 类方法的 MIA 检出率常年居高不下:把损失推得过高本身就是一个可检测的指纹。严谨的遗忘评估协议必须报告 MIA 指标,只报「遗忘集准确率下降」的论文与产品都在回避这个更难的关卡。
Relearning 攻击:遗忘的回马枪
更狠的一关是再学习攻击(relearning attack):对「已遗忘」的模型,用极少量的原始数据做几步微调,看遗忘内容恢复多快。TOFU 基准的实验给出了代表性的数字:多种遗忘方法处理过的模型,用遗忘集 1% 到 5% 的样本、个位数 epoch 的再训练,就能恢复大部分「被遗忘」的能力——这说明遗忘改变的是「表达」而非「存储」,原始知识的权重痕迹仍然在,喂几口数据就重新接通。工程结论要诚实:现有权重级遗忘方法里,除重训外,没有一种能稳定通过再学习攻击。把这一点写进合规承诺里:技术上的「遗忘」目前是「可控的难以提取」,不是「不存在」——给用户的删除承诺要按这个语义措辞,法务与工程要对齐这个口径,否则承诺就是负债。
五、工程取舍与落地路线
按需求选路线
三类需求对应三条成熟度不同的路线。隐私合规遗忘:频次低、条目少,用 NPO 类梯度方法处理个人相关的条目,配合 MIA 自检与再学习攻击抽测;文档化的限制声明(技术边界写清楚)是合规姿势的一部分。版权内容遗忘:先测复述率(对目标文本做逐字与改写复述测试),高复述段落用 NPO/编辑压复述率,输出侧再加一层长序列相似度过滤双保险——注意这类需求的最终裁决在法庭,技术方案的目标是把「可复述性」压到合理阈值并留好测试记录。危险能力裁剪:参考 WMDP 路线,在发布前用 RMU 类方法处理已知的危险知识域,并在模型卡里声明裁剪范围与残余风险;同时接受「裁剪不等于封死」,红队测试要专门验证绕过裁剪的难度。三条路线的公共工程件是评估集:自己构造「遗忘集 / 保留集 / 邻近干扰集」三元组,每次遗忘操作跑三元组回归——这是把「忘了没有」变成可测量工程的全部秘密。
与生命周期管理的关系
最后把遗忘放进模型生命周期看。最好的遗忘发生在事前:数据管线的过滤与授权管理,让「需要被遗忘的内容」根本不进语料,这比任何事后方法都便宜且彻底。事中的遗忘是发布流程的一部分:开源发布前的安全裁剪、企业模型的员工离职数据清理,都应该是发布门禁的固定工位。事后的遗忘(用户删除请求到达时)才是成本最高的场景,因为它要求对已发布权重做手术并重新走完整验证流程——所以成熟团队会把它设计成低频路径:把大部分删除需求用「输出层过滤 + 数据库级脱敏」挡在系统层,只有法律强制要求权重级遗忘时才动手术。遗忘的工程哲学与数据库删除恰恰相反:数据库里删除是默认操作,LLM 里「事前不采集」才是默认操作,一切事后手段都是对「事前失误」的高价补救。
小结
知识裁剪的知识地图收成四句话。第一句:难点是结构性的——知识分布式编织在上千亿参数里,没有行可删,三类需求(隐私、版权、危险能力)约束不同但难点同源。第二句:方法谱系按「动什么」分层——重训数据过滤是唯一根治的金标准;梯度导向里 GA 会把保留能力一起推塌,NPO 把遗忘改写成带 KL 约束的偏好问题,是当前可运营的主力;RMU 在中间层激活制造定向失明,在 WMDP 上把危险知识压到随机水平而通用能力几乎无损;输出侧控制不动权重、部署最快,但管不住开源权重流出。第三句:评估必须攻击式——只看遗忘集准确率下降会被伪遗忘欺骗,MIA 测「痕迹还在吗」,再学习攻击测「喂几口数据会不会恢复」,现有方法(除重训外)都过不稳再学习这一关,对外承诺要按「可控的难以提取」措辞。第四句:工程上的正确排序是事前过滤优于事中裁剪优于事后手术——在 LLM 的世界里,「不采集」是唯一免费的遗忘。
读者留言
COMMENTS 暂无还没有留言,来说第一句?