大模型能不能忘记?机器遗忘(Machine Unlearning)的难度

AI 圈有个黑色幽默:过去二十年,大家最头疼的是灾难性遗忘——模型一学新东西就把旧知识冲掉,逼得研究者发明了几百种防遗忘算法。结果这两年风向突然调转:GDPR 说用户有被遗忘权,出版社说训练数据里有我的书,用户说昨天我告诉你的隐私你怎么还记着。全世界开始求着大模型忘事。

AI technology illustration

然后大家发现了一个尴尬的事实:

让大模型记住很难,让大模型忘记——难到可能根本做不到。

记忆不存在于某个地方,它是一张网

先说我的第一个天真想法。我最早听到“机器遗忘”这个词,第一反应是:这有什么难的?数据存在硬盘上,找到它、删掉它,模型不就干净了?

这个想法错在把大模型当成了数据库。大模型里没有一张表把训练数据一行行存着。训练的过程,是让神经网络把几万亿个 token 里的统计规律“压”进参数:谁和谁经常一起出现、什么词后面跟着什么词、什么样的文本叫新闻。训练结束,原始数据早就被丢弃,剩下的只是一堆概率关系的雕塑。

Anthropic 在 2024 年发表的可解释性研究把这件事说得很透:他们用稀疏自编码器在模型里找到数百万个“特征”,结果发现一个概念不是由某个神经元独占,而是由大量特征共同编码;反过来,同一个神经元又同时参与编码成百上千个其他概念。

这意味着什么?意味着不存在一颗“哈利·波特神经元”让你摘除。知识是一张网,想抽掉一根丝,整张网的形状都会跟着变。

机器遗忘(Machine Unlearning)
让模型的行为尽可能接近“从未见过某批数据”的模型。
灾难性遗忘(Catastrophic Forgetting)
模型学新任务时冲掉旧知识。过去二十年它叫“事故”,今天有人希望把它变成“功能”。
成员推断攻击(Membership Inference Attack)
通过反复探测模型输出来猜一条数据是否在训练集里。它是检验遗忘的“测谎仪”,可惜自己也测不准。

反着训练它?小心把模型练疯

既然知识在权重里,能不能“反向训练”把它抹掉?这是我第二个天真的想法。在传统机器学习时代,人们还想过一个笨办法 SISA:把数据切成很多份,分别训练子模型,要遗忘某条数据就重训含它的那份。这条路对大模型是死路——大模型的能力恰恰来自“用全部数据联合训练”,切成片,能力先废一半。

对神经网络,直觉的方案是梯度上升(Gradient Ascent),拆开看是这样的:

  1. 正常训练:让损失函数在数据上越来越小,模型越来越“对”。
  2. 梯度上升:拿起要遗忘的数据,把损失函数往上推,让模型在这批数据上越来越“错”。
  3. 结果:模型不是“忘了”,是“疯了”——权重被推到奇怪的角落,连常识和语言能力一起崩。
  4. 补救:加 KL 约束,把其他数据上的行为锚定住。但刹车一踩,遗忘又变得不干净。

2024 年,卡内基梅隆大学团队发布了专门评测大模型遗忘的基准 TOFU:虚构了 200 位作家和几千条问答数据,先让模型学会,再让各家遗忘方法去忘。结论很直白:现有方法要么忘不干净,要么把模型搞残。在“忘得干净”和“不伤及其他能力”之间,没有一种方法能两头兼顾。

最难的不是删除,是切开

为什么“只忘一点”这么难?用个具体例子讲。

微软 2023 年做过一个著名实验:让 Llama 2 忘记哈利·波特。论文标题里有个很诚实的词——近似遗忘(Approximate Unlearning)。做法是:先用大量改写过的哈利·波特文本,定位模型内部与“哈利·波特知识”相关的激活方向,再把内部状态往反方向推。效果确实惊艳:模型不再能复述原著,日常对话也基本正常。

但实验也暴露了纠缠的本质:哈利·波特不是一条数据,是一整张网——人物、咒语、情节、粉丝梗、J.K.罗琳、英国寄宿学校。“忘记伏地魔”和“忘记反派这个概念”的边界在哪?把“伏地魔”相关的激活推走,会不会把“大反派”这个抽象概念一起推歪?论文自己也承认,方法会误伤奇幻文学类的表现。

所以我说,机器遗忘的核心困难不是删除,是切开——沿着一条看不见的界线,把纠缠的知识网切开,只取走属于目标的那一块。这件事,现在没人做得到。

你怎么证明一个模型“忘了”?

就算上面的方法都有效,模型确实答不出“哈利·波特”了——你怎么证明它忘了?

答案是证明不了。模型答不上来,可能是忘了,可能只是这次没触发记忆,也可能在装死。反过来,偶尔蹦出一点残留,也未必等于没忘——语言模型输出本来就有随机性。

更麻烦的是,遗忘可以被“复活”。2024 年的多项研究都展示了同一个现象:一个已经“成功遗忘”的模型,只要拿少量原本被遗忘的数据微调一下,记忆就全回来了。负偏好优化论文就把这种攻击称为 relearning attack。这说明大多数方法做到的遗忘,不是把信息烧掉了,而是把记忆压进了箱底——箱子还在,钥匙还在,微调就是那把钥匙。

现在的解法,每一笔账都不好算

那现在主流方法有哪些?我整理了一张表,你会发现每一条路都有代价:

方法 核心思路 优势 代价
梯度上升 + KL 约束 在要遗忘的数据上反向优化,同时用 KL 锚定其他行为 实现简单,是公认基线 忘不干净与伤及其他能力很难两全
负偏好优化(NPO) 把遗忘写进偏好:压低模型对遗忘数据的回答概率,同时稳住其他数据 比梯度上升稳定得多,支持大规模遗忘 计算开销大,超参数敏感
负任务向量 在遗忘数据上精调一个“记忆模型”,用原模型权重减去它的增量 直觉清晰,几分钟可实现 精度有限,容易误伤邻近概念
激活方向推离(哈利·波特方法) 定位目标知识对应的内部激活方向,把激活推离 对整体行为影响最小 知识边界难划,对抗提示词可绕过

注意最后一行那个“对抗提示词可以绕过”——这不是吓唬你。哈利·波特实验之后,不少测试者发现,用拐弯抹角的提示词还能重新套出相关内容。堵住一条大路,知识还藏在旁边的小路上。

比算法更难的问题:你根本说不清要忘什么

到这里,我一度以为最难的是算法本身。后来发现还有更基本的问题:你往往说不清要让模型忘什么。

预训练数据是几万亿 token 的混合体,OpenAI 自己都列不全里面有什么。遗忘的前提是精确指出“哪条数据被模型吸收了”——但这个问题本身就难到能撑起一个研究方向(成员推断攻击研究的就是这个,至今没有可靠答案)。

《纽约时报》2023 年底起诉 OpenAI 时,起诉书直接要求删除训练数据里的 NYT 内容,还附上了 ChatGPT 复述其文章的截图。OpenAI 的立场概括起来就是:模型已经训练完了,要求删除,等于要求一个不存在的功能。

欧洲 GDPR 把“被遗忘权”写得斩钉截铁:

The data subject shall have the right to obtain from the controller the erasure of personal data concerning him or her without undue delay — GDPR Article 17

可“删除”这个词,是数据库时代发明的。数据库里删一行干净利落,神经网络里“删”一条知识牵扯半张网。法律按“删除”的标准写,技术按“近似”的能力做——这个落差,才是机器遗忘眼下最无解的难题。

所以,大模型到底能不能忘记?

我的判断是:能表现出遗忘,但在可预见的未来,做不到真正的信息删除。当前所有方法兑现的都是行为层面的遗忘——压低概率、推离激活、堵住最容易触发记忆的路径。对“窄而清晰”的目标,比如一本书、一个角色、一组特定数据,这些方法已经能用了;对“宽而模糊”的目标,比如互联网上所有版权内容,它们无能为力。

讽刺的是,问题的尽头还是最初那个谜:我们连“忘没忘”都定义不清楚,又怎么要求模型做到?

也许未来的解法不在“事后遗忘”,而在“事前控制”——训练前把不该学的数据过滤掉、做版权登记、用可解释性追踪数据影响。让模型从一开始就不知道,比让它事后忘掉,容易得多。

只是法律要的,恰恰是后者。

想深入?这几篇值得读

原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/509.html

(0)
上一篇 2天前
下一篇 2天前

相关推荐