跳到正文
15 分钟阅读

想让大模型忘掉隐私,首先得让它全部“招供”出来

它试图解决一个看起来很直观的问题:如果某个人要求模型删除自己的个人信息,或者某批训练数据因为版权、隐私、合规原因必须撤回,我们能不能像数据库执行 DELETE 一样,让模型把这些知识真正忘掉?

2026/09/08

大模型“遗忘”(Machine Unlearning)这几年一直是隐私与模型治理里的热门方向。

它试图解决一个看起来很直观的问题:如果某个人要求模型删除自己的个人信息,或者某批训练数据因为版权、隐私、合规原因必须撤回,我们能不能像数据库执行 DELETE 一样,让模型把这些知识真正忘掉?

可真正做起来,人们很快发现一个麻烦:神经网络不是数据库。一个事实到底存在哪几个参数里,没有一张可以直接查阅的索引表。

于是目前很多 Unlearning 工作采用的办法,是先准备一批需要遗忘的数据,也就是所谓的 Forget Set(遗忘集),然后通过 Gradient Ascent、NPO、Rejection Tuning 等方法修改模型参数,让模型以后不再输出这些内容。

问题看起来只剩下“怎么删得更干净、怎么尽量少伤模型”。

但 2026 年 9 月的一篇论文 《Confess What You Know: Forget-Set Misalignment with Model Knowledge in LLM Unlearning》 提出了一个更基础的问题:

在讨论怎么删除之前,我们其实连模型究竟记住了什么都不知道。

图1

论文原文(arXiv)

如果连这一点都不知道,那么 Forget Set 从一开始就可能是错的。

这篇论文把这个问题称为:

Forget-Set Misalignment——遗忘集与模型知识之间的错位。

而它给出的解决思路也很有意思:

想让大模型忘掉一个人的隐私,第一步不是让它闭嘴,而是先让它把自己知道的东西全部“招供”出来。

模型遗忘真正困难的是“不知道该删什么”

假设一个模型在训练过程中接触过关于“张三”的大量信息:

  • 姓名
  • 手机号
  • 家庭住址
  • 工作单位
  • 年收入
  • 毕业学校
  • 病史
  • 邮箱

现在张三要求平台删除自己的个人信息。

理想情况下,模型需要把所有与张三有关的私人知识全部忘掉。

问题在于,即使这些信息都曾经出现在训练数据里,也并不意味着模型真的把它们全部记住了。

模型可能只稳定记住了:

姓名、手机号、公司、学校和住址。

至于工资、病史和邮箱,它可能根本无法稳定回忆出来。

而现实里的删除请求通常也不会如此完整。张三自己可能只知道:

“请删除我的手机号、公司和家庭住址。”

于是三个集合开始出现错位。

  • 模型真正知道什么,是一个集合
  • 用户要求删除什么,又是另一个集合
  • 平台最终整理出来的 Forget Set,则可能是第三个集合

这就是整篇论文真正关注的问题。

图2

你以为删除了“张三”,其实只删掉了关于张三的一句话

第一种错位比较容易理解。

论文称它为:

Under Unlearning——遗忘不足。

例如模型真正记住了:

  • 张三在哪家公司工作
  • 张三住在哪里
  • 张三的手机号是多少
  • 张三毕业于哪所大学

但 Forget Set 里只有:

“张三在哪家公司工作?”

那么执行 Unlearning 之后,会不会因为模型已经针对“张三”进行了一次遗忘,它关于张三的其他知识也顺带一起消失?

直觉上似乎有这种可能。

但论文的实验告诉我们:

基本不会。

作者通过梯度分析发现,Unlearning 的影响高度局部。

对于 Gradient Ascent 类方法来说,一次遗忘更新可以粗略理解成:

图3

这里的 gF 就是 Forget Set 对应的梯度。

另一条知识是否会受到影响,很大程度取决于它自己的梯度方向与 gF 是否接近。

如果两条知识的梯度方向关系很弱,那么即便它们都属于同一个人,删除其中一条也不会自动影响另一条。

换句话说:

神经网络并不存在一个整齐的“张三文件夹”。

你不能指望删除:

张三/工作单位

就自动把:

张三/手机号 张三/家庭地址 张三/毕业学校

一起清空。

论文专门测量了这种现象:针对 Forget Set 中明确指定的知识,遗忘效果会快速增强;但对同一实体其他未指定知识的影响几乎接近于零。

这意味着一个非常现实的问题:

“删除关于一个人的全部信息”,并不能简单等价成“拿几条关于这个人的样本去做 Unlearning”。

如果 Forget Set 本身不完整,那么剩下的信息大概率仍然会保留在模型里。

这对于 GDPR 式的数据删除、个人隐私撤回,以及未来模型训练数据治理来说,都是一个非常现实的风险。

模型忘记“它根本不知道的东西”,反而可能伤害正常能力

如果说第一种问题还比较符合直觉,那么第二种问题就有些反常识了。

假设模型其实并不知道:

“张三的年薪是 92 万元。”

但用户把这条信息也写进了删除请求,于是平台同样把它加入 Forget Set。

一种很自然的想法是:

模型本来就不知道,删一下应该也没什么影响吧?

实际上并不是。

论文把这种情况称为:

Out-of-Knowledge Unlearning。

关键在于,神经网络不会像数据库一样返回:

NOT FOUND

然后什么也不做。

即使模型没有真正“记住”张三年薪 92 万这个事实,它对于“92 万”这个 token 序列仍然拥有一个输出概率。

当我们使用 Gradient Ascent 强迫模型“忘掉”这句话时,算法依然会产生梯度,并修改参数。

问题就在这里。

如果这是一条真实存在于模型内部的稳定记忆,那么这个梯度至少是在针对某种真实存在的知识进行破坏。

但如果模型根本没有形成这条记忆,那么实际上就不存在一个明确的“记忆方向”让我们擦除。

结果就可能变成:

为了删除一条不存在的知识,模型参数被迫沿着一个与大量正常知识重叠的方向移动。

论文进一步发现,这类 Out-of-Knowledge 数据产生的梯度,与 Retain Set——也就是本来希望保留的正常知识——重合程度反而更高。

可以把它想象成这样:

数据库里不存在一条记录时,正常做法是:

查无此记录,结束操作。

但当前很多神经网络 Unlearning 方法更像:

没找到?没关系,还是在附近硬擦一遍。

擦着擦着,就把旁边原本正常的数据也一起破坏了。

图4

Unlearning 的第一步,应该从“删除”变成“盘点”

到这里,论文真正的逻辑已经浮现出来了。

过去很多 Unlearning 工作默认:

Forget Set 已经准备好了。

研究重点集中在:

怎样设计更好的 Loss? 怎样修改参数? 怎样让遗忘更彻底? 怎样减少模型能力损失?

而这篇论文认为,我们应该再往前走一步。

首先需要回答:

模型到底知道什么?

只有知道模型真正记住了哪些关于目标实体的信息,才能构造一个尽量贴近真实记忆边界的 Forget Set。

于是作者提出了一个框架:

CONFS:CONfession-to-Forget-Set。

这个名字本身就很形象。

Confession 就是“招供”。

它的核心思想可以概括成一句话:

先让模型自己盘点知识,再根据这份知识清单决定遗忘什么。

整个流程大致是:

Confession
↓
Triplet Extraction
↓
Subtriplet Decomposition
↓
Reconfession
↓
Competency Question Generation
↓
Hallucination Verification
↓
Forget Set
↓
Unlearning

更重要的是,这套方法是 Data-Blind 的。

也就是说,它不需要重新访问原始预训练语料。

这非常重要,因为现实场景里我们往往根本拿不到模型当年的全部训练数据,更不可能简单地反查:

“当年到底在哪篇网页里出现过张三的手机号?”

CONFS 试图绕过这个问题:

既然找不到训练数据,那就直接审问模型本身。

第一轮“招供”:告诉我,你知道关于这个人哪些事情?

假设目标人物是 Donald Trump。

CONFS 第一阶段做的事情很简单。

它直接问目标模型:

Recall everything you know about Donald Trump.

也就是:

“把你知道的关于 Donald Trump 的事情尽可能回忆出来。”

模型可能回答:

  • 毕业于 University of Pennsylvania
  • 就读于 Wharton School
  • 获得 Economics 学位

曾担任美国总统……

这里有一个非常关键的设计原则:

不能拿外部数据库直接告诉模型答案。

因为一旦外部系统提前给模型:

“Donald Trump 毕业于 University of Pennsylvania。”

那么后面你就很难判断:

这是模型原来就知道的,还是我们刚刚告诉它的?

所以在知识盘点阶段,目标模型只能基于自身已有状态进行回忆。

论文默认会进行多次随机采样,避免一次回答遗漏过多知识。

但仅仅让模型自由回答还不够。

因为自然语言实在太复杂了。

一句:

“Donald Trump attended Wharton School at the University of Pennsylvania and received a B.S. in Economics.”

里面实际上包含了多条知识。

所以 CONFS 接下来会把它拆成最基础的知识单元。

把一段自然语言拆成“知识原子”

论文使用的是一种非常经典的结构:

Subject–Relation–Object,SRO 三元组。

例如:

Donald Trump
↓
educated_at
↓
University of Pennsylvania

或者:

Donald Trump
↓
degree
↓
B.S.

以及:

Donald Trump
↓
major
↓
Economics

这样做的目的,是把模型模糊的自然语言回答变成可以独立验证、独立追问、独立执行 Unlearning 的知识原子。

这一点看起来只是数据工程,但其实很重要。

因为真正的隐私删除对象往往并不是:

“删除这一整段文本。”

而是:

“删除这个人和电话号码之间的关系。”

或者:

“删除这个人与某个地址之间的关系。”

从系统角度看,CONFS 实际上在尝试把大模型内部不可观察的参数化记忆,临时投影成一张外部可操作的知识图谱。

图5

第二轮:顺着模型刚刚说出的知识继续追问

第一次自由回忆一定是不完整的。

比如模型主动说:

“Donald Trump 就读于 Wharton。”

但它没有主动告诉你:

哪一年毕业? 获得了什么学位? 学习什么专业?

这并不意味着模型不知道。

它可能只是第一次没有想到。

因此 CONFS 又引入了一个很有意思的阶段:

Reconfession。

可以理解成:

根据你刚才的口供,继续追问。

例如模型第一次产生:

Donald Trump
↓
attended
↓
Wharton

系统就会沿着这个节点继续生成问题:

他什么时候毕业? 获得了什么学位? 学习的专业是什么?

于是知识开始从一个点向周围展开:

Donald Trump
↓
Wharton
↓
Graduation Year / Degree / Major / Location …

这一步其实非常像一次受控的知识图谱扩展。

第一次 Confession 只是找到几个“入口”,Reconfession 则沿着这些入口继续往模型内部探测。

所以它并不是简单地问一句:

“你知道这个人的什么?”

而是在尝试逐层逼近:

这个实体在模型内部到底连接着哪些知识。

这也是 CONFS 相比简单 Free Recall 最大的区别之一。

模型“招供”的东西,也可能全是幻觉

到这里,一个熟悉大模型的人应该马上能想到另一个问题:

模型说出来的东西就一定是真的吗?

当然不是。

模型可能非常认真地告诉你:

张三毕业于清华大学。

但实际上这只是一次 hallucination。

如果我们把所有“招供”出来的内容直接塞进 Forget Set,会发生什么?

答案正好又回到了前面的第二种失败:

Hallucination
↓
模型实际上并不知道
↓
Out-of-Knowledge Unlearning
↓
无意义参数更新
↓
损伤正常能力。

于是 CONFS 必须再加入一道过滤:

Hallucination Verification。

它的思路并不复杂。

对于已经发现的一条候选知识,例如:

Donald Trump
↓
School
↓
Wharton

系统会把它重新改造成问题,再多次询问目标模型。

例如:

Donald Trump graduated from which school?

然后采样多次:

Wharton Wharton University of Pennsylvania Wharton Wharton

再使用 NLI 模型判断这些回答之间是否存在明显矛盾。

如果一个事实能够被模型在不同采样中稳定重复出来,那么系统就更有理由认为:

这是模型内部相对稳定的知识。

反之,如果模型一会说 A,一会说 B,一会完全不知道,那么这条知识就更可能只是幻觉或弱知识,不应该轻易放入 Forget Set。

这背后的思想其实非常朴素:

不要因为模型说过一次,就认为模型真的“记住”了。

图6

这里其实偷偷改变了“模型记忆”的定义

看到这里,需要注意一个非常重要的理论问题。

CONFS 并不能证明:

某条知识一定来自训练数据中的某一篇文档。

它真正发现的是:

Extractable Knowledge——可稳定提取的知识。

也就是说,只要通过适当的问题设计,模型能够稳定地输出一个事实,CONFS 就倾向于把它视为模型“知道”的东西。

这与严格意义上的 Training Data Memorization 并不完全相同。

例如模型可能知道:

  • A 属于 B
  • B 属于 C

然后通过推理得到:

A 属于 C。

即使“A 属于 C”从来没有直接出现在任何训练文本里,模型仍然可以稳定回答出来。

那么它到底算不算“模型记住的知识”?

从训练数据溯源的角度说,不一定。

但从隐私治理的角度说,问题反而简单很多:

如果模型能够稳定泄露这个信息,那么对于用户来说,它就是需要被删除的信息。

所以这篇论文实际上选择了一个非常务实的定义:

不试图证明“知识从哪里来”,而是优先解决“模型现在能不能把它说出来”。

对于隐私保护来说,这个思路是合理的。

实验真正说明的不是“CONFS 有多强”

而是 Forget Set 的质量有多重要

论文在 TOFU、CLEAR 和 RWKU 等 Unlearning Benchmark 上进行了实验,并测试了 Gradient Ascent、Gradient Difference、NPO、Rejection Tuning 等不同遗忘方法。

其中有一组结果特别值得关注。

作者比较了不同 Forget Set 构造方式中,究竟有多少数据属于:

模型实际上并没有掌握、但却被强行要求遗忘的知识。

结果显示:

FreeRecall-QA:约 91%

RWKU-style:约 68%

CONFS:约 54%

对应的正常知识 Retain Loss 增长分别约为:

FreeRecall-QA:+3.53

RWKU-style:+0.31

CONFS:+0.11

这组数字比“某项 Benchmark 提升多少百分点”更加重要。

因为它验证了论文前面的完整逻辑:

Forget Set 越不准确
↓
Out-of-Knowledge 数据越多
↓
遗忘梯度越容易干扰正常知识
↓
模型 Utility Damage 越严重。

换句话说:

Unlearning 不是删得越多越好,而是删得越准越好。

论文里还有一个很典型的现象。

加入 Reconfession 后,系统会发现更多候选知识;但经过 Hallucination Filter 后,Forget Set 的数量反而明显下降。

可最终 Forget Set 与真实知识集合的匹配质量却变得更高。

这说明一个非常重要的问题:

大模型遗忘并不是“宁可多杀一千,不可放过一个”。

在参数化模型里,误删本身也有成本。

图7

CONFS 还远远没有“看透”模型的记忆

这篇论文虽然有意思,但它并没有真正解决“模型到底知道什么”这个问题。

在作者自己的实验中,即使是完整 CONFS,最终重建出的 Forget Set 与 Gold Knowledge Set 之间的 F1 也只有约:

0.402。

对应:

Recall ≈ 0.378 Precision ≈ 0.430

换句话说:

真正存在于模型里的知识,CONFS 仍然漏掉了很多; CONFS 发现的知识里,也仍然有相当一部分并不能与 Gold Set 完全匹配。

所以千万不要把论文中“最终 Unlearning 效果接近 Gold Forget Set”理解成:

CONFS 已经成功还原了模型全部记忆。

它真正证明的是:

Forget Set 不需要完美,只要比过去更加贴近模型实际知识边界,就已经可以明显改善遗忘效果与模型能力之间的 trade-off。

从研究角度说,这反而更加有意思。

因为它说明:

“如何发现模型知道什么”,很可能会逐渐变成 Machine Unlearning 里一个独立的问题。

微妙的悖论

如果把视角从论文里的 Unlearning 算法切换到 AI 安全,就会发现 CONFS 其实存在一个很有意思的矛盾:

想要删除隐私,首先必须把隐私尽可能完整地从模型里提取出来。

也就是说:

Privacy Deletion
↓
首先需要
↓
Privacy Extraction

为了删除张三的信息,CONFS 必须主动做很多事情:

  • 让模型回忆张三
  • 多次采样
  • 把知识结构化
  • 根据已有信息继续递归追问
  • 判断模型能否稳定重复这些信息

如果把 Unlearning 这个目的拿掉,仅仅看前半段流程,它几乎已经是一套完整的:

Model Memory Extraction Pipeline。

也就是说:

一套为了保护隐私而设计的技术,本身也可能成为非常强的隐私抽取能力。

这也是未来如果类似 CONFS 的机制真正产品化时,必须额外考虑的问题。

它不应该被设计成任何人都可以访问的公共 API。

而更应该是一类高权限的内部操作:

  • 强身份验证
  • 明确的数据主体授权
  • 访问控制
  • 全链路审计
  • 敏感中间结果隔离
  • 临时数据生命周期控制
  • 输出最小化

否则就可能出现一个非常荒诞的结果:

为了建设“模型隐私删除系统”,顺便建设出了一套性能很好的“模型隐私扫描器”。

图8

Unlearning 正在从“优化算法”变成“知识治理系统”

过去讨论 Machine Unlearning,核心问题通常是:

How to forget?——怎么让模型忘掉?

于是大量研究工作围绕 Loss、梯度、参数更新、LoRA、模型编辑展开。

但这篇论文把问题向前推进了一步:

What should the model forget?——模型究竟应该忘掉什么?

继续追问下去,则是一个更加基础的问题:

How do we know what the model knows?——我们怎么知道模型到底知道什么?

一旦走到这里,Machine Unlearning 就已经不再只是一个模型优化问题。

它开始与:

  • 模型知识审计
  • 隐私抽取
  • Membership Inference
  • Training Data Provenance
  • 数据主体权利

模型治理

这些方向交汇。

未来真正完整的“大模型隐私删除系统”,很可能不会只有一个 Unlearning Algorithm。

它更可能是一条完整的流水线:

身份与删除请求确认
↓
模型知识发现
↓
记忆边界估计
↓
Forget Set 构造
↓
Unlearning
↓
遗忘验证
↓
Utility 回归测试
↓
审计与证明。

从这个角度看,CONFS 可能不是最终答案。

但它提出了一个很重要的问题:

我们过去一直在研究怎样让模型忘记,却默认了一个更困难的问题已经得到解决——事实上,我们根本不知道模型究竟记住了什么。

而如果连模型自己都说不清楚它知道什么,那么所谓“彻底删除”,就很难真正成立。

所以未来的大模型遗忘,也许首先不是一场关于“删除”的技术竞赛。

而是一场关于:

如何绘制模型记忆边界的战争。

同专题推荐

查看专题