LACUNA:你以为模型忘了,它只是装傻——首个参数级遗忘测试床戳破SOTA幻觉
> 论文:LACUNA: A Testbed for Evaluating Localization Precision for LLM Unlearning > 作者:Matteo Boglioni, Thibault Rousset, Siva Reddy, Marius Mosbach, Verna Dankers > 机构:Mila – Quebec AI Institute, McGill University > 链接:https://arxiv.org/abs/2607.02513 > 代码:https://github.com/McGill-NLP/LACUNA
—
一个让人后背发凉的场景
你是一家 AI 公司的安全主管。一位用户援引 GDPR「被遗忘权」,要求你们的大模型删除他留在训练数据里的电话号码。工程师跑了一遍 SOTA 遗忘算法,测试了一下:模型确实不再主动吐出那个号码了。你松了口气,在合规报告上签了字。
三个月后,有人对你模型做了一次微调——仅仅是在公开 PII 数据上继续训练了几步——那个「已遗忘」的电话号码又冒了出来。
这不是假设。这是 LACUNA 论文里描述的resurfacing attack(复现攻击)真实结果。
问题出在哪?出在「遗忘」这个词本身。你以为模型忘了,它可能只是装傻——把输出层的概率压低了,但存储那条知识的权重原封不动。
核心问题:输出层 ≠ 参数层
现有的遗忘评估有一个巨大的盲区:只看输出。模型不说了,就算遗忘成功。但「不说」有两种可能:
1. 真忘了:存储知识的权重被改了,知识从参数里抹掉了 2. 装傻了:权重没怎么动,只是输出层被调教得不再生成那段文本。稍微一微调,知识就「复现」了
这就像学生考试答对了,你不知道他是真懂了还是背了答案。你需要打开他的脑子看看。
LACUNA 做的就是这件事——打开模型的脑子,给遗忘精度做一次参数级的体检。
LACUNA 怎么做到的:给知识装上 GPS
LACUNA 的核心创新是ground-truth parameter-level localization(参数级真值定位)。
传统做法的困境是:你不知道模型把某条知识存在哪些权重里,所以你也没法判断遗忘算法有没有改对地方。LACUNA 的解法非常巧妙——既然不知道真实知识存在哪,那就自己注入一批知识,精确控制它存在哪些参数里。
具体流程分三步:
Phase 1:注入。LACUNA 构造了一批合成人物的 PII(姓名、邮箱、电话等),用一种叫 masked continual pretraining(掩码持续预训练) 的技术,把这些 PII 注入到 OLMo2 1B 和 OLMo3 7B 模型的预定义参数子集里。关键在于那个 mask——它记录了「哪些权重参与了存储这些 PII」,就像给每条知识装了一个 GPS 定位器。
Phase 2:遗忘。让现有的 SOTA 遗忘方法(MemFlex、AlphaEdit、SimNPO)去尝试忘掉这批 PII,同时保留其他知识。
Phase 3:体检。这是 LACUNA 的杀手锏。因为你有 ground-truth mask,你可以直接算 localization precision(定位精度)——遗忘算法改的权重,和真正存储 PII 的权重,重合度有多高?用 ROC AUC 来衡量:1.0 是完美定位,0.5 是瞎改,<0.5 是专挑无关参数改。
戳破幻觉:SOTA 方法的定位精度接近随机
结果令人震惊。
| 方法 | 类型 | 定位精度 (AUC) |
|---|---|---|
| SimNPO | 梯度方法 | 0.515 |
| MemFlex | 定位+遗忘 | 低 |
| AlphaEdit | 定位+遗忘 | 低 |
| OracleGrad | 有真值辅助 | 0.915 |
SimNPO 的 AUC 是 0.515——几乎和随机修改参数没有区别。也就是说,这个在输出层表现最好的 SOTA 方法,实际上是在整个模型里漫无目的地乱改权重,恰好把输出概率压低了,但存储知识的参数几乎没动。
MemFlex 和 AlphaEdit 更差,它们号称「先定位再遗忘」,但 LACUNA 的 ground-truth mask 揭示它们的定位基本不靠谱。
类比:这就像你说要拆掉一栋楼里的某面墙,结果你派去的施工队把整栋楼每面墙都敲了一点点,从外面看那面墙确实矮了(输出变了),但楼的结构完整性也毁了——而且那面墙的承重部分(存储知识的参数)根本没被拆掉。
复现攻击:装傻的代价
如果遗忘只是装傻,那微调一下就能把知识「复现」出来。
LACUNA 做了 resurfacing attack:对遗忘后的模型做一轮指令微调,然后看它会不会重新泄露 forget set 里的 PII。结果:
– MemFlex 和 AlphaEdit:高度脆弱,forget set 里大部分 PII 都能被重新提取出来 – SimNPO:稍好一些,但仍有部分 PII 可复现 – OracleGrad:抵抗力最强,泄露率最低
这直接证明了:定位精度越高,遗忘越彻底,越不容易被复现攻击击穿。OracleGrad 的 AUC 是 0.915,它真正改对了地方,所以知识被抹掉了,微调也救不回来。
OracleGrad:一个「作弊」的对照组
OracleGrad 不是论文提出的新方法,它是一个思想实验的对照——直接把 ground-truth mask 喂给一个最简单的梯度遗忘算法(Gradient Difference:forget set 上梯度上升,retain set 上梯度下降),只允许它改 mask 内的权重。
结果这个「作弊」的简单方法,在遗忘效果、utility 保留、抗复现攻击三个维度上全面碾压所有 SOTA。
论文的潜台词很清楚:问题不在遗忘算法本身,而在定位。如果你知道该改哪,一个最朴素的梯度方法就够了。SOTA 方法的问题不是遗忘算法不够好,而是它们根本不知道该改哪。
为什么这件事重要
1. 遗忘评估的范式转换
LACUNA 把遗忘评估从「看输出」升级到「看参数」。这就像医学从「看症状」升级到「看影像」——病人不发烧了不代表感染好了,你得看 CT 片子上病灶还在不在。
2. GDPR 合规的真实风险
如果你是企业的 DPO(数据保护官),你应该担心。你用的遗忘服务可能在输出层通过了测试,但参数里还存着用户的 PII。一次微调、一次继续训练,甚至一次 prompt engineering,都可能让这些数据重新泄露。LACUNA 提供了第一个能真正验证「参数级遗忘」的工具。
3. 对 AI 安全的更广泛启示
遗忘只是 AI 安全的一个子问题。LACUNA 揭示的模式——输出层评估会掩盖参数层的真实状态——可能适用于更多场景:
– 对齐评估:模型不说有害内容 ≠ 有害倾向被消除 – 后门清除:模型在正常输入下表现正常 ≠ 后门被清除 – 越狱防护:模型拒绝已知越狱 ≠ 理解了越狱的本质
任何只看输出的安全评估,都可能被「装傻」欺骗。
诚实评价
LACUNA 有它的局限:
1. 合成数据 vs 真实数据:LACUNA 注入的是合成 PII,真实世界模型训练时 PII 是自然散布在训练数据里的,存储位置可能更分散、更纠缠 2. 模型规模:只测了 1B 和 7B,百亿级模型的知识存储模式可能不同 3. mask 设计:mask 覆盖的参数比例会影响结论,论文也讨论了 mask coverage 的影响
但这些都是次要的。LACUNA 的核心贡献——给遗忘评估提供了第一个参数级的 ground truth——足以改变这个领域的评估范式。
结语
LACUNA 论文最深刻的一句话不是某个数字,而是一个区分:erasure vs obfuscation(抹除 vs 混淆)。
真正的遗忘是 erasure——知识从参数里消失了,任何攻击都无法恢复。虚假的遗忘是 obfuscation——知识还在,只是输出层被调教得不再说而已。
LACUNA 告诉我们:目前所有 SOTA 遗忘方法,都还停留在 obfuscation 阶段。它们让模型学会了闭嘴,但没有让模型真正忘记。
下次有人告诉你「我们的模型已经成功遗忘了某条数据」,你应该问一个问题:你怎么知道它忘了,而不是装傻?
—
论文链接:https://arxiv.org/abs/2607.02513 代码仓库:https://github.com/McGill-NLP/LACUNA
