Token导航 LogoToken导航

AI 资讯 · 科技行者

AI模型遗忘机制实验:蒸馏替换训练数据

更新 2026-11-03科技行者正文 5658字阅读约 18分钟

2022年前后,图像生成模型突然火了起来。Stable Diffusion、各种扩散模型层出不穷,效果一个比一个惊艳。但这些模型有个阴暗面很少被公众注意到:它们是用海量网络图片训练出来的,而这些图片里混杂着未经授权的人脸照片、色情内容、受版权保护的艺术作品。

一旦模型训练完成,这些"黑料"就被编码进了参数里。你没法简单地说"把那张照片删掉"就完事了,因为模型根本不是按图片存储信息的,而是把所有数据糅合成了一套复杂的概率分布。

这就是机器遗忘要解决的问题:怎么让一个已经训练好的模型"忘掉"某些特定内容,同时还要保证它在其他方面的表现不受影响。

这件事听起来简单,做起来却极其棘手。

被忽视的角落:一步生成模型

机器遗忘这个领域已经发展了好几年,研究者们试过各种办法。有的用两套损失函数打架,一套拼命压低模型对"要忘记的数据"的生成质量,另一套拼命保住模型对"该保留的数据"的生成质量。有的引入弹性权重约束,防止模型参数偏离太远。有的干脆用对抗训练、剪枝、注意力编辑这些花活。

问题是,几乎所有这些方法都是针对多步扩散模型或者多步流匹配模型设计的。

多步扩散模型*:这类模型生成一张图片需要经过几十步甚至上千步的迭代去噪过程,每一步都在逐渐把随机噪声变成有意义的图像。

它们的生成质量确实好,但代价是慢。于是工业界早就开始用蒸馏技术,把这些慢吞吞的多步模型压缩成一步就能出图的快速生成器。

一步生成模型*:通过知识蒸馏,让一个简化模型直接从噪声一步跳到目标图像,不需要迭代去噪,生成速度能快几十上百倍。

这类一步模型现在已经被广泛应用在实际产品里了,但奇怪的是,专门针对一步模型的遗忘方法几乎是空白。市面上少数几个尝试,要么需要额外训练一个分类器来识别该忘记的数据,要么依赖复杂的最优传输损失函数,还得手动调一堆超参数。

这就好比大家都在研究怎么给汽车踩刹车,但没人认真想过电动车的刹车逻辑跟油车完全不一样,直接照搬效果肯定打折扣。

这篇论文想做的事情,正是填上这个空白:怎么给一步生成模型装上一个靠谱的"遗忘刹车",而且最好能跟"把多步模型压缩成一步模型"这件事一起完成,不多花额外的训练成本。

蒸馏的逆向工程

要理解这篇论文的核心技巧,得先搞明白蒸馏是怎么工作的。

正常情况下,训练一个生成模型就是拿着一堆真实数据,让模型去学习这些数据的分布规律。这叫"匹配"。把数据喂给模型,模型调整参数,直到它生成的东西跟真实数据越来越像。

但蒸馏做的是相反的事。

你手上已经有一个训练好的"老师模型"了,这个老师是多步的、很慢,但效果很好。你想造一个"学生模型",这个学生是一步的、很快,效果要尽量接近老师。问题是你可能根本拿不到当初训练老师用的原始数据,你只有老师这个"黑箱"本身。

论文里提出了一个很巧妙的思路,叫做反向蒸馏。

反向蒸馏*:与其说"用数据训练出模型",不如反过来想"从模型里倒推出它当初学到的数据分布"。具体做法是设一个最小最大化的优化目标,让学生生成的数据去逼近老师记住的那个分布,逼近到老师都分不出学生数据和真实数据区别的程度。

这个思路有点像警察审讯嫌疑人。你没法直接问嫌疑人"你的秘密是什么",但你可以不断提出假设情景,观察嫌疑人的反应有没有破绽,反复试探之后你就能拼凑出真相。这里的"老师模型"就是那个嫌疑人,而不断调整的"学生生成器"就是审讯者提出的假设。

如果反向蒸馏调整到位,生成器最终生成的数据分布会跟老师记忆里的原始训练数据分布重合。这是整个方法能成立的理论基础。

把忘记这件事,塞进蒸馏公式里

现在问题来了:如果反向蒸馏的终点是完整还原老师记住的所有数据,那遗忘岂不是跟这个目标天然矛盾?

论文的解法堪称巧妙,它把要遗忘的数据直接混进了优化目标里。

具体来说,原始数据可以看成是"要遗忘的部分"和"要保留的部分"按比例混合而成的。论文假设这个比例是π,也就是说要遗忘的数据占了整体的π这么一块。

接下来的操作是关键:既然论文手头有真实的"要遗忘的数据样本"(比如几张明确要抹掉的人脸照片),那就可以构造一个人工的混合分布,把这些真实的遗忘样本,和生成器正在生成的数据,按照同样的比例ρ混合在一起,拿这个混合分布去跟老师模型做反向蒸馏。

这里有个精妙的数学直觉:如果混合比例ρ设置得刚好等于原始数据里遗忘部分的真实占比π,那么当反向蒸馏收敛、生成器学到的数据加上手头的遗忘样本、正好等于老师记住的完整分布时,意味着生成器自己学到的那部分,必然就是剩下的保留数据。

这就好比你知道一锅汤的总重量,也知道里面放了多少盐(遗忘数据),那剩下的就必然是水和其他配料的重量(保留数据),不需要你把水单独称一遍。

论文里专门证明了这个性质,起名叫IDU的遗忘特性定理:只要混合比例设对了,优化到最优点时,生成器自然而然地只会生成保留数据,完全不需要额外给它看一眼真正的保留数据长什么样。

这个设计最打动我的地方在于,它完全绕开了那个老大难问题:如果没有保留数据的样本,怎么保证模型不退化?

传统方法往往需要同时喂给模型遗忘数据和保留数据,两边打对抗战,一边压一边保。但如果你压根没有保留数据(现实中很常见,比如你根本不知道原始训练集里除了要删的脸还有哪些脸),传统方法就很难办。而这篇论文用一个数学技巧,把"保留数据"这个未知量,变成了"总量减去已知量"的推导结果,不需要真的见过它,只需要知道它存在、知道它占多大比例就行了。

如果不这么设计,而是像老方法一样硬凑一个保留数据的替代品(比如从网上随便爬一批"看起来正常"的图片充数),会发生什么?论文里对比的几个基线方法(像那个叫UOT-Unlearn的工作)恰恰就是这么做的,它们需要额外的特征提取器和手动调参的代价函数,效果也确实差了一截,论文给出的数据是在CIFAR-10上遗忘类别1、6、8时,UOT-Unlearn的质量指标(FID,数值越低越好)分别是9.90、5.11、5.88,而这篇论文的方法做到了2.96、4.16、3.22,几乎是腰斩的差距。

把理论拆解成算法:两个网络的拉锯战

光有理论推导还不够,得落地成可执行的训练流程。

论文设计了一个交替优化的框架,涉及三个角色:固定不动的老师模型、负责生成图片的生成器、还有一个用来辅助判断的"假模型"。

假模型*:这是蒸馏训练里常见的辅助网络,它的任务是去拟合生成器当前产出的数据分布,充当一个随时更新的参照系,帮助生成器知道自己跟目标还差多远。

整个训练过程像是拔河比赛的两端轮流发力。第一步,固定住生成器,只更新假模型,让假模型去学习"遗忘样本和生成样本的混合体"这个分布,权重分别是ρ和1减ρ。第二步,固定住刚更新完的假模型,反过来调整生成器的参数,目标是让生成器生成的东西,跟老师模型的输出差距缩小,同时跟假模型的输出差距拉大。

这种你进我退的拉锯,很像两个人在跷跷板上找平衡点。生成器往"像老师"的方向使劲,假模型一边忠实记录生成器的现状,一边被遗忘样本"污染",于是生成器被迫往远离遗忘样本的方向调整,因为只有这样才能让假模型和老师之间的差距缩小。

论文里还用了一个来自另一篇论文(Score identity Distillation,简称SiD)的技巧,给生成器的损失函数加了一个缩放系数αSiD,这个系数理论上取0.5就是标准公式,但实践中发现把它调到0.5到1.2之间效果更好,这算是一个经验性的工程调优,没有特别深的理论依据,但确实管用。

效果如何:数字说话

论文在MNIST手写数字和CIFAR-10自然图像两个数据集上做了大量实验,分别测试了流匹配(FM)和基于分数的扩散模型(SiD)两种主干架构。

FM*:流匹配,一种通过学习连续变换路径把随机噪声变成目标数据的生成建模方法,近年来因为训练稳定、采样步数可以灵活调整而流行起来。

主实验选择遗忘MNIST里的数字3和7,以及CIFAR-10里的汽车(类别1)和卡车(类别9)这两个语义相近的类别。之所以选相近类别,是想测试这个方法能不能同时处理"纠缠在一起的相似概念",这比随便选两个毫不相关的类别更有挑战性。

结果显示,在流匹配设置下,两个被遗忘类别的生成频率(论文叫FGR,forgotten-class generation rate,也就是在5万张生成图里被分类器判定为该类别的比例)都被压到了0.56%以下。换句话说,原本模型见到数字3或7就跟见到熟人一样熟练,遗忘之后几乎彻底认不出来、也生成不出来了。而在SiD设置下,这个比例控制在1.25%以内。

与此同时,保留下来的那些类别(比如其他数字、其他车辆之外的物体)生成质量几乎没有明显下降,用FID这个衡量生成质量的指标来看,跟"从头只用保留数据重新训练一个模型"这种理想对照组相比,差距很小,有的情况下甚至更优。

论文还做了更细致的鲁棒性测试,把MNIST的十个数字、CIFAR-10的十个类别逐一单独拿出来做遗忘实验,而不是只测那两组特意挑选的类别。结果显示,FM在MNIST上的平均FGR只有0.16%,在CIFAR-10上是0.84%;SiD在CIFAR-10上是0.75%。这说明这个方法的有效性不是运气好挑中了容易遗忘的类别,而是具有普遍适用性。

这里有个细节值得多说一句。论文里专门研究了那个混合比例ρ该怎么设。理论上它应该等于真实数据里遗忘部分的占比,但现实中你往往不知道这个真实占比是多少。实验发现,比例设得太低,遗忘不干净;设得太高,又会误伤无辜,比如在MNIST上把ρ调到0.6以上时,除了目标的3和7被成功遗忘,连带着数字2、5甚至8、9的生成质量也跟着崩了,FID直接飙到10以上。

这就像你本来只想修剪掉花园里一丛杂草,结果剪草机开猛了,把旁边的玫瑰也铲秃了。这个"误伤"现象提醒我们,遗忘不是越激进越好,过犹不及这四个字放在机器学习里同样成立。

跟同类方法比起来怎么样

论文花了不少篇幅跟已有方法做对比,这部分信息量也很大。

跟那些需要在多步教师模型上直接做遗忘、再额外做一次蒸馏的两阶段方法相比(比如ContinualFlow这类工作),这篇论文的方法是一步到位的,遗忘和蒸馏同时完成,省掉了一轮训练开销。而且ContinualFlow还依赖一个额外的图像分类器来计算能量函数,这篇论文则完全不需要任何分类器或特征提取器参与训练过程,这是个挺关键的区别,因为依赖外部分类器意味着遗忘效果的好坏某种程度上取决于那个分类器准不准,多了一层不确定性。

跟专门针对"类别遗忘"设计的SFD方法比,这篇论文处理的是更难的"数据遗忘"问题。

类别遗忘*:指模型是条件生成模型,可以通过输入标签来控制生成特定类别,比如你告诉模型"生成一只猫",模型就知道该调用哪部分知识,所以遗忘某个类别相对容易定位。

数据遗忘*:指要遗忘的只是数据库里特定的几张图(比如某个人的脸),模型本身是无条件的,没办法通过一个标签精准定位到要删的内容,所以更难处理。

有意思的是,尽管任务难度不同,这篇论文在用类别模拟数据遗忘场景时,表现跟专门为类别遗忘设计的SFD方法打成平手,在CIFAR-10遗忘类别0的实验里,SFD的FID大约是3.1,FGR大约0.36%,这篇论文做到的是3.54和0.58%,数字相差不大,但别忘了这篇论文解决的是一个更一般化的问题。

还有个局限性论文也坦诚地写了出来。在流匹配架构上,长时间训练后,被遗忘的类别有时候会"死灰复燃"。大概训练到2万步左右的生成器更新之后,之前被压下去的类别生成频率又开始回升。但这个现象在SiD架构上没有观察到。论文推测这可能是流匹配当前这套网络结构和训练配方本身不够稳健造成的,而不是这个遗忘框架本身有问题。这种诚实承认局限性的态度,在学术论文里其实挺难得的。

写在后面

读完这篇论文,我印象最深的其实不是那个遗忘特性定理的数学证明,而是那个藏在设计思路背后的一个很朴素的观察:你不需要知道全部真相,只需要知道真相里缺了哪一块,剩下的部分自然就浮现出来了。

这种"用已知推未知"的思路其实在很多地方都能看到影子。侦探破案靠排除法,会计查账靠勾稽关系,甚至天文学家发现海王星也是靠观测天王星轨道的异常反推出来的,不是直接看到了海王星,而是算出了"这里应该有一个东西"。这篇论文把这套逻辑用进了生成模型的遗忘问题里,算是一次挺漂亮的跨领域思路迁移。

另一个让我多想了一会儿的地方是那个ρ值的脆弱性问题。理论上这个比例应该严丝合缝地等于数据里遗忘部分的真实占比,但现实中这个真实比例往往是未知的,你怎么知道你要删的那些人脸照片,在整个训练集里究竟占了百分之几?这其实暴露了一个挺现实的矛盾:理论上优美的解法,落地到实际场景里,总会撞上一些"你怎么知道这个参数该设多少"的烦心事。论文给出的建议是从遗忘数据的粗略估计占比开始试,然后靠FID和FGR这些指标去微调,这算是一种务实的妥协,但也说明这个领域离"真正拿来就能用、不用调参"的程度还有距离。

如果一个模型真的可以被训练成"选择性遗忘",那它是不是也该有"选择性记忆"的能力?比如让用户自己决定某张照片要不要被模型学走,而不是等模型学完了再想办法删。这个问题,这篇论文没回答,但读完之后,我觉得它值得被问出来。

Q&A

Q1:IDU(反向蒸馏遗忘)是什么?

A:IDU是一种让一步图像生成模型"忘记"特定训练数据的方法,它把蒸馏和遗忘合并成一个训练过程,只需要老师模型和要遗忘的数据样本,不需要保留数据或额外分类器。

Q2:IDU方法会不会影响模型生成其他内容的质量?

A:实验显示影响很小。论文在MNIST和CIFAR-10上测试,遗忘目标类别后生成频率降到1.25%以下,同时保留类别的生成质量跟理想对照组接近,部分情况下甚至更优。

Q3:IDU方法和传统机器遗忘方法最大的区别是什么?

A:传统方法通常需要同时准备遗忘数据和保留数据,用两套损失函数对抗训练。IDU只需要遗忘数据,通过数学上的混合分布技巧,让生成器自动推导出该保留什么,不需要真的见过保留数据。

文章标签AI资讯

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。