想象你是市立图书馆的管理员老陈。图书馆里存放着百万册书——那是大模型在训练时读过的全部语料。一天,馆长下令:有几本书必须从所有人的记忆中抹去,一本夹带公民隐私,一本盗版小说吃了官司,还有一本写满了错误偏见。可问题是,这些书的内容早就被读者抄进各自的笔记本里了。你不能烧掉整座图书馆从头重建,也不能靠一纸禁令让读者真心忘记。 机器遗忘学习,就是给大模型做“记忆手术”的技术:在不推倒重来的前提下,精准清除指定的知识,同时保护其余能力。它像图书馆里三种温柔的“擦除法”——顺着笔迹反向擦掉不该写的字、让新学徒只学干净的书目、或者暗中调查每本书对读者的影响力再对症下药。学会这门技术,你就能让 AI 既聪明又守规矩,在隐私与合规的时代稳稳落地。

岗位关联

掌握机器遗忘学习,你将成为 AI 隐私保护与合规治理的关键角色——这是大模型落地绕不开的“刹车技术”,也是数据合规工程师的核心竞争力。

目录
  1. 可视化演示
  2. 遗忘学习入门
  3. 梯度上升遗忘
  4. 知识蒸馏遗忘
  5. 影响函数遗忘
  6. 遗忘完整性
  7. 性能保持
  8. 验证与落地
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示遗忘学习的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

遗忘学习:遗忘学习 遗忘学习概念与应用场景 梯度上升遗忘方法 核心机制可视化 遗忘学习整体架构与关键组件

遗忘学习入门

老陈的第一反应是“把书烧了”,但馆长提醒他:这些书的内容早就被读者抄在各自笔记本里了。模型也一样——训练数据不是躺在硬盘上的文件,而是化成了千亿参数里的“笔迹”。删除原始文件,模型脑中依然留着印象。真正的遗忘,必须作用于模型的行为本身。

机器遗忘学习(Machine Unlearning)研究的就是:如何让一个已经训练好的模型,在指定数据子集上表现出“从未见过”的样子。这里有两个关键对象:待遗忘集(那些必须消失的知识)与保留集(其余必须如常工作的知识)。与从头重训不同,遗忘学习追求的是“手术级”修改——低成本、可验证、副作用小。

目前主流方法分三大流派:梯度上升(顺着记忆痕迹反向擦除)、知识蒸馏(让一个没读过禁书的学生模型接班)、影响函数(追溯每本书对读者答案的贡献,精准定位“罪魁祸首”)。此外,任何方案都要回答两个问题:忘得干不干净(完整性)、其余能力掉没掉(性能保持)。全套目标可以写成一句话:

老陈把这两行目标写在笔记本扉页:不动书架,只动记忆;该忘的忘到像没读过,该留的一字不差。接下来,他要亲自试验三种“擦除术”。

D=Dr∪Df,fθ′(Df)→chance,fθ′(Dr)≈fθ(Dr)\mathcal{D} = \mathcal{D}_r \cup \mathcal{D}_f, \qquad f_{\theta'}(\mathcal{D}_f) \to \text{chance},\quad f_{\theta'}(\mathcal{D}_r) \approx f_{\theta}(\mathcal{D}_r)
全部数据被分成保留集与遗忘集;新模型在遗忘集上像随机猜测,在保留集上和旧模型几乎一致。
  1. 数据集划分全部训练语料被分成“要保留的”和“要遗忘的”两堆书。
    D=Dr∪Df\mathcal{D} = \mathcal{D}_r \cup \mathcal{D}_f
  2. 遗忘条件新模型在被遗忘的书上表现得像随机猜测,仿佛从没读过。
    fθ′(Df)→chancef_{\theta'}(\mathcal{D}_f) \to \text{chance}
  3. 保持条件在其余书上,新模型和旧模型几乎一模一样,图书馆其他区域照常营业。
    fθ′(Dr)≈fθ(Dr)f_{\theta'}(\mathcal{D}_r) \approx f_{\theta}(\mathcal{D}_r)

梯度上升遗忘

老陈发现图书馆公告栏是一块巨大的黑板,每本书的摘要都用粉笔写在上面。正常的“学习”是用粉笔反复描字,让字迹越来越清晰;而“忘记”则是顺着笔迹的方向,把粉笔灰一点点往回擦——这就是梯度上升的直觉来源。

深度学习训练时,我们计算损失函数,并沿着它的负梯度方向更新参数,让损失不断下降——相当于把字越描越深。遗忘则完全相反:在待遗忘数据上,我们沿着损失的正梯度方向更新,让模型在这些数据上“错得越来越离谱”。两种操作只差一个正负号,效果却南辕北辙:

但老陈很快发现:黑板上的笔迹互相叠压,擦一本书的摘要,可能会蹭花隔壁的笔记。梯度上升也一样——待遗忘知识和其它知识共享参数,擦得太多会引发灾难性遗忘,模型连“苹果是水果”这种常识都丢了。所以要用小步长、并在保留集上盯紧损失,擦到目标消失、别的字还清晰时立刻收手。“擦到哪停”,正是梯度上升的艺术。

θt+1=θt+η×∇θL(Df;θt)\theta_{t+1} = \theta_t + \eta \times \nabla_{\theta} \mathcal{L}(\mathcal{D}_f; \theta_t)
在待遗忘数据上做梯度上升:让损失变大、记忆变淡。
  1. 当前参数黑板此刻的全部笔迹,是擦除的起点。
    θt\theta_t
  2. 遗忘集损失模型在待遗忘数据上的“别扭程度”,还记得越牢,损失越小。
    L(Df;θt)\mathcal{L}(\mathcal{D}_f; \theta_t)
  3. 梯度方向损失上升最快的方向,也就是笔迹被写下的方向。
    ∇θL(Df;θt)\nabla_{\theta} \mathcal{L}(\mathcal{D}_f; \theta_t)
  4. 擦除力度学习率决定了每次往回擦多少粉笔灰,太大容易擦穿黑板。
    η×∇θL\eta \times \nabla_{\theta} \mathcal{L}
  5. 更新后参数完成一次擦除迭代,记性淡了一分。
    θt+1\theta_{t+1}

知识蒸馏遗忘

馆长给了老陈另一个思路:与其费劲擦黑板,不如招一个“没读过禁书”的学徒来接班。首席馆员(原模型)在保留集上把所有知识娓娓道来,学徒(学生模型)逐条记录;当讲到禁书内容时,馆长故意跳过,甚至让学徒对着禁书目录做“反向训练”——故意答错。

知识蒸馏本是模型压缩技术:学生模型模仿老师模型的软输出,把大模型的“判断力”迁移到小模型。遗忘学习借用这个框架,把核心变成“选择性迁移”——老师只在保留集上教,学生只学该学的;在待遗忘集上,学生被要求与正确答案背道而驰。常用损失如下:

当学徒学成出师、正式接管图书馆后,老陈发现:读者完全感觉不到服务变化,而所有关于禁书的提问,学徒都会一脸茫然地给出“我没读过”式的回答。蒸馏遗忘的优雅之处正在于此——不直接攻击旧记忆,而是用“干净的新人”取代“记性太好的老人”。

L=LKD(Dr;θS,θT)−λ⋅LCE(Df;θS)\mathcal{L} = \mathcal{L}_{\mathrm{KD}}(\mathcal{D}_r;\theta_S, \theta_T) - \lambda \cdot \mathcal{L}_{\mathrm{CE}}(\mathcal{D}_f; \theta_S)
在保留集上模仿老师(该学的学走),在遗忘集上反向惩罚(该忘的忘掉)。
  1. 老师与学生老师是原模型(什么都知道的馆长),学生是接班的新模型(干净的学徒)。
    θT,θS\theta_T, \quad \theta_S
  2. 蒸馏项学生在保留集上模仿老师的软标签,把“该学的本领”学走。
    LKD(Dr;θS,θT)\mathcal{L}_{\mathrm{KD}}(\mathcal{D}_r;\theta_S, \theta_T)
  3. 遗忘项学生在待遗忘集上计算交叉熵损失,前面的负号让损失被最大化——越学越不会。
    −λ⋅LCE(Df;θS)- \lambda \cdot \mathcal{L}_{\mathrm{CE}}(\mathcal{D}_f; \theta_S)
  4. 平衡系数控制“忘”的分量,避免学徒为了躲禁书连常识都丢了。
    λ\lambda

影响函数遗忘

老陈是个较真的人,他想知道:到底是哪几本书,让某位读者产生了不该有的想法?影响函数(Influence Function)就是这样的“侦探工具”——它能估算“如果当初某本书从未入库,读者今天的答案会变化多少”。

在数学上,影响函数衡量的是:移除一个训练样本后,模型在某个测试样本上的损失变化量。它通过样本梯度与 Hessian 逆矩阵的组合近似计算:

拿到所有样本的影响分数后,就能圈出高影响的训练样本,把它们划入待遗忘集,再用梯度上升或重训一个小模型清除。这种“先定位、再清除”的思路,特别适合处理少量但影响恶劣的数据——比如某条引发偏见的留言。

但代价不小:Hessian 矩阵是参数数量乘以参数数量,大模型根本存不下,只能用 L-BFGS、Fisher 信息矩阵等近似手段估算。名侦探虽准,出诊费也高——影响函数目前更适合小模型、判别式模型或离线分析,在大模型上是“狙击枪”,而不是“日常扫帚”。

I(zi,ztest)=∇θL(ztest)⊤H−1∇θL(zi)\mathcal{I}(z_i, z_{test}) = \nabla_{\theta} \mathcal{L}(z_{test})^{\top} H^{-1} \nabla_{\theta} \mathcal{L}(z_i)
这本书(训练样本)对那个问题(测试样本)的影响力有多大,用梯度内积配上纠缠矩阵来算。
  1. 训练样本第 \(i\) 本书,也就是待排查的“嫌疑书”。
    ziz_i
  2. 测试样本读者最新提出的问题,也就是我们关心的“影响对象”。
    ztestz_{test}
  3. 该书的梯度这本书在黑板上的笔迹方向,代表它“写”下了什么。
    ∇θL(zi)\nabla_{\theta} \mathcal{L}(z_i)
  4. 纠缠矩阵黑板笔迹之间的交叠关系,用 Hessian 的逆来解开“哪根线压在哪根线上”。
    H−1H^{-1}
  5. 影响力得分两者方向越一致,这本书对这个问题的影响越大;得分高者就是重点清除对象。
    I(zi,ztest)\mathcal{I}(z_i, z_{test})

遗忘完整性

禁书擦完了,馆长问老陈:你怎么证明读者真的忘了?老陈说“我抽问几个问题,答不上来就是忘了”。馆长摇头:有个叫“成员推理攻击”的家伙,专测模型是否记得某个样本——他不问“答案是什么”,而是旁敲侧击:让模型给样本打分、补全上下文、甚至观察内部神经元的反应。

遗忘完整性指:模型在待遗忘样本上的行为,应当和“从未见过这些样本”的模型无法区分。最直接的度量是“遗忘准确率”——模型还记不记得这些样本的真实标签:

注意,遗忘准确率并不是越低越好——低到 0 反而可疑:模型为何对“没见过的数据”如此自信地错?完整性的标准是“像没见过”:准确率掉到随机水平,且成员推理攻击无法区分训练集内外的样本。这就像老陈把禁书的书页换成白纸,读者翻到那里只看到空白,而不会看到“此地无银三百两”的标记。

为了系统验证完整性,工程上会组合多种探测手段:样本补全、困惑度对比、成员推理攻击成功率、内部表征距离等。老陈把“抽问几个问题”升级成了“一整套测谎流程”,这才敢在验收单上签字。

Aforget=1∣Df∣∑x∈Df1[fθ(x)=ytrue]\mathcal{A}_{forget} = \frac{1}{|\mathcal{D}_f|} \sum_{x \in \mathcal{D}_f} \mathbb{1}[ f_{\theta}(x) = y_{true} ]
忘得越干净,这个“还记得”的准确率越接近随机水平,而不是越低越好。
  1. 遗忘集所有不该被记住的样本集合。
    Df\mathcal{D}_f
  2. 模型预测模型对样本 \(x\) 给出的类别猜测。
    fθ(x)f_{\theta}(x)
  3. 指示函数猜对了真实标签就记 1,否则记 0。
    1[fθ(x)=ytrue]\mathbb{1}[ f_{\theta}(x) = y_{true} ]
  4. 均值比率结果越接近随机水平(二分类约 0.5),说明忘得越干净。
    1∣Df∣∑x∈Df\frac{1}{|\mathcal{D}_f|} \sum_{x \in \mathcal{D}_f}

性能保持

遗忘不是目的,让图书馆继续正常营业才是目的。老陈担心:擦掉禁书的笔迹后,旁边的书会不会也被蹭花?这就是性能保持要回答的问题——遗忘发生后,模型在保留集上还能不能维持原来的水平。

最直观的指标是保留集准确率:

除了准确率,工程上还看三样东西:一是表征余弦相似度——模型内部对保留样本的“想法”是否和原来一致;二是幻觉引发率——遗忘后模型会不会为了掩饰“失忆”而胡编乱造;三是通用基准(问答、推理、代码生成)的分数波动。它们共同回答一个问题:病治好了,人是完整的吗?

遗忘完整性与性能保持天生是一对矛盾:擦得越狠,忘得越干净,但保留能力掉得也越狠。老陈在黑板前调了一下午粉笔灰的用量,最终在“禁书消失”与“其他书照常”之间找到了平衡点。这个平衡,就是每次遗忘工程的核心调参目标。

Aretain=1∣Dr∣∑x∈Dr1[fθ′(x)=ytrue]\mathcal{A}_{retain} = \frac{1}{|\mathcal{D}_r|} \sum_{x \in \mathcal{D}_r} \mathbb{1}[ f_{\theta'}(x) = y_{true} ]
手术后模型在正常样本上的准确率,越接近遗忘前越好。
  1. 遗忘后的参数完成记忆手术后的新模型。
    θ′\theta'
  2. 保留集图书馆里所有正常书籍的目录。
    Dr\mathcal{D}_r
  3. 模型判断手术后模型对正常样本的预测。
    fθ′(x)f_{\theta'}(x)
  4. 保留准确率越接近遗忘前水平,说明“手术副作用”越小。
    1∣Dr∣∑x∈Dr1[fθ′(x)=ytrue]\frac{1}{|\mathcal{D}_r|} \sum_{x \in \mathcal{D}_r} \mathbb{1}[ f_{\theta'}(x) = y_{true} ]

验证与落地

手术结束,验收开始。老陈把三份表格贴在公告栏:①遗忘完整性检测报告(成员推理攻击通过率、遗忘集准确率);②性能保持报告(保留集准确率、余弦相似度、幻觉率);③对抗性测试报告(恶意用户用各种提示词诱导,模型是否还会泄密)。三份全过,才算真正“忘干净”。

为了把多维指标合并成一句话结论,工程上常用综合评分:

落地链路大致是:确定遗忘范围 → 划分保留集与遗忘集 → 选择方法(梯度上升适合快速迭代、蒸馏适合有老师模型可用、影响函数适合精准定位)→ 训练 → 三份验收报告 → 上线并长期监控。目前工业界已有一些论文复现工具和开源框架,但离“一键遗忘”还有距离;也要留意,不同文献里“遗忘”的定义差异很大,指标不能跨场景硬套。

老陈终于盖下了“验收通过”的章。他总结道:遗忘学习不是魔法,而是一套严谨的记忆外科手术——定位要准、擦除要稳、验收要狠。正如馆长叮嘱的:“让 AI 忘记该忘记的,正是为了保护那些不该被忘记的信任。”这也是数据合规时代,每个 AI 工程师最温柔的工程。

E=12((1−Aforget)+Aretain)E = \frac{1}{2}\left( (1 - \mathcal{A}_{forget}) + \mathcal{A}_{retain} \right)
遗忘得分与保留得分各占一半,满分 1 代表“忘得干净且没伤元气”。
  1. 遗忘得分遗忘准确率越低,这一项越接近 1。
    (1−Aforget)(1 - \mathcal{A}_{forget})
  2. 保留得分保留集准确率越高,这一项越接近 1。
    Aretain\mathcal{A}_{retain}
  3. 综合平均两项缺一不可,避免“只顾忘、不顾能力”或“只顾能力、没真忘”。
    12((1−Aforget)+Aretain)\frac{1}{2}\left( (1 - \mathcal{A}_{forget}) + \mathcal{A}_{retain} \right)

AI 应用场景

用户隐私数据行使“被遗忘权”

阶段:模型后处理 / 合规治理

解决的问题:传统做法是从头重训大模型,成本极高;而且用户要求删除数据后,模型仍可能通过记忆泄露其信息。遗忘学习可以在不重训的前提下,定向抹去特定用户的记忆痕迹。

具体案例:某社交平台的对话模型曾用用户聊天记录微调,用户投诉后依据法规行使删除权。工程师把包含该用户信息的样本锁定为遗忘集,用梯度上升法处理后,成员推理攻击无法再判定这些样本属于训练集,而闲聊能力几乎不变。

版权内容定向清洗

阶段:内容安全治理

解决的问题:大模型可能记忆盗版小说或歌词片段,生成时原文复述,侵犯版权。传统输出过滤只能“遮住症状”,模型内部记忆依然存在,换种提问方式还会泄露。

具体案例:某音乐平台发现 AI 助手能一字不差复述未授权歌词,团队采用蒸馏遗忘:让学生在保留集上重新跟老师学习,被标记的歌词在训练中刻意跳过并反向惩罚。上线后模型对涉案歌词“一脸茫然”,但聊天、翻译等能力保持稳定。

有害偏见消除

阶段:对齐与安全微调

解决的问题:模型从训练数据学到歧视性偏见,重新采集并清洗数据周期长、成本高;影响函数可以帮助定位“是哪几条数据造成了偏见”,实现精准清除。

具体案例:某招聘 AI 被曝对女性简历打分偏低,团队用影响函数筛选出贡献度最高的偏见样本,划入遗忘集,再配合梯度上升微调。处理后偏见指标显著下降,且简历筛选的整体准确率几乎无损。

Python 演示

python64 行
# -*- coding: utf-8 -*-"""梯度上升机器遗忘演示:训练一个小型逻辑回归后遗忘指定样本"""import numpy as npfrom sklearn.datasets import make_blobs  def make_data():    np.random.seed(42)    X, y = make_blobs(n_samples=400, centers=2, n_features=2,                      cluster_std=1.2, center_box=(-6, 6), random_state=7)    return X, y  class SimpleLR:    def __init__(self, dim=2):        self.w = np.random.randn(dim) * 0.1        self.b = 0.0     def predict_proba(self, X):        return 1.0 / (1.0 + np.exp(-(X @ self.w + self.b)))     def predict(self, X):        return (self.predict_proba(X) >= 0.5).astype(int)     def logit_grad(self, X, y):        p = self.predict_proba(X)        return (p - y) / len(y)     def train_step(self, X, y, lr=0.2):        g = self.logit_grad(X, y)        self.w -= lr * (X.T @ g)        self.b -= lr * g.sum()     def unlearn_step(self, X, y, lr=0.5):        g = self.logit_grad(X, y)        self.w += lr * (X.T @ g)        self.b += lr * g.sum()     def accuracy(self, X, y):        return float(np.mean(self.predict(X) == y))  def main():    X, y = make_data()    model = SimpleLR()    for _ in range(300):        model.train_step(X, y, lr=0.2)     forget_mask = (X[:, 0] > 1.5) & (y == 1)    forget_idx = np.where(forget_mask)[0][:40]    retain_idx = np.array([i for i in range(len(y)) if i not in forget_idx])     print("遗忘前 全体准确率 %.3f" % model.accuracy(X, y))    print("遗忘前 待遗忘样本准确率 %.3f" % model.accuracy(X[forget_idx], y[forget_idx]))     for _ in range(25):        model.unlearn_step(X[forget_idx], y[forget_idx], lr=0.4)     print("遗忘后 待遗忘样本准确率 %.3f (应显著下降)" % model.accuracy(X[forget_idx], y[forget_idx]))    print("遗忘后 保留样本准确率 %.3f (应基本保持)" % model.accuracy(X[retain_idx], y[retain_idx]))  if __name__ == "__main__":    main()
目的:训练一个二分类逻辑回归模型,然后用梯度上升法让模型“忘记” 40 个指定样本,对比遗忘前后的准确率变化。
  1. for _ in range(300): model.train_step(X, y, lr=0.2)先用梯度下降正常训练,让模型学会区分两类数据。
  2. def logit_grad(self, X, y): return (p - y) / len(y)计算交叉熵损失对模型输出的梯度,这是“笔迹方向”。
  3. self.w -= lr * (X.T @ g)梯度下降更新:让损失更小,相当于把知识“描”进黑板。
  4. def unlearn_step(self, X, y, lr=0.5): self.w += lr * (X.T @ g)梯度上升更新:只把符号从减号换成加号,让损失变大。
  5. forget_mask = (X[:, 0] > 1.5) & (y == 1)从训练集里挑出需要“遗忘”的隐私样本,模拟现实中的遗忘集划定。
  6. retain_idx = np.array([i for i in range(len(y)) if i not in forget_idx])其余样本构成保留集,用来验证“其他能力没被伤到”。

常见误区

误区以为遗忘学习就是把隐私数据从硬盘删除,或者把模型某几层权重清零,模型就“忘”了。

正解模型的知识分布在亿万参数里,删数据不等于删记忆。遗忘的本质是行为层面的改变——让模型在相关输入上不再产生不该有的输出,同时保持其他能力。就像黑板上的字不能靠砸黑板来擦,而要顺着笔迹小心地抹去。

为何常见:人类直觉里“删文件=删除记忆”,但神经网络没有集中存储的“文件”。

误区有人认为在待遗忘数据上多做几轮梯度上升,遗忘效果一定更好。

正解梯度上升会让待遗忘样本的损失越来越大,但与它共享参数的其它知识也会被牵连。步数过多会引发灾难性遗忘——模型连“苹果是水果”这种常识都丢了。正确做法是控制步长并监控保留集性能,擦到目标消失、别的字还清晰时立刻住手。

为何常见:优化领域“多迭代几次效果更好”的惯性思维,在遗忘场景下不成立。

误区用几个手写问题去问模型,答不上来就宣布遗忘成功。

正解攻击者会用成员推理攻击等更狡猾的手段探测残留记忆——让模型补全、对比困惑度、观察内部表征。真正的验证要系统化:排除性指标(答错)、保留性指标(其他能力不降)、鲁棒性指标(对抗攻击下也不泄露)。一次口头问卷远不够。

为何常见:人记没记住可以“考一考”,但模型存在类似潜意识的隐性记忆,表面答不出来不代表内部没有痕迹。

误区把蒸馏遗忘理解成简单复制模型,只是换了个壳。

正解蒸馏遗忘的关键是“选择性过滤”——学生模型只在保留集上模仿老师的软标签,待遗忘内容被刻意跳过,甚至反向惩罚。学生是一个“没读过那本书”的干净学徒,而不是老师的克隆。老师脑中仍有禁书,但学生的记忆是干净的。

为何常见:只听过分说“老师教学生”,没注意“教什么、不教什么”才是遗忘的关键所在。

面试题

Q1. 机器遗忘学习(Machine Unlearning)要解决的核心问题是什么?

单选题 · easy

  • A.让模型训练更快速高效
  • B.忘掉指定知识并保留能力← 正确答案
  • C.提升模型推理时的速度
  • D.增加模型的参数与容量

答案:B。遗忘学习的核心是“定向遗忘”——让模型在指定数据上表现得像没见过,同时尽量保持其他能力。这就像在图书馆里精准撤下一本书,而不是把整座图书馆推倒重建。

Q2. 梯度上升遗忘法的核心做法是什么?

单选题 · easy

  • A.沿损失减小方向更新参数
  • B.沿损失增大方向更新参数← 正确答案
  • C.随机重置全部的模型参数
  • D.冻结所有网络层的学习率

答案:B。正常训练沿负梯度让损失下降(描字),遗忘则沿正梯度让损失上升(擦字)。两者只差一个正负号,效果完全相反。

Q3. 知识蒸馏遗忘中“软标签”的作用是什么?

单选题 · mid

  • A.让老师模型输出更多随机噪声
  • B.携带老师对类别的判断← 正确答案
  • C.直接删除学生的全部语料
  • D.强制扩大学生的参数量

答案:B。软标签是老师模型对各类别的概率输出,带着“像猫但有点像狗”这类模糊判断。学生在保留集上模仿软标签,把老师的能力学走,而敏感内容被刻意跳过。

Q4. 影响函数中 H⁻¹(Hessian 逆矩阵)刻画的是什么?

单选题 · mid

  • A.训练样本之间的相互纠缠← 正确答案
  • B.模型推理时的时间开销
  • C.训练数据集的存储总量
  • D.优化器的学习率衰减曲线

答案:A。Hessian 逆矩阵描述黑板笔迹之间的交叠关系。样本梯度要经过它“解纠缠”,才能算出某本书对某个问题真实的影响力。

Q5. 下列哪项最能说明遗忘完整性达标?

单选题 · mid

  • A.保留集上的准确率极高
  • B.成员推理攻击无法识别样本← 正确答案
  • C.模型参数量出现显著减少
  • D.训练所需时间大幅缩短

答案:B。完整性指模型在遗忘样本上“像没见过”。成员推理攻击专门探测样本是否在训练集中,它无法识别,说明记忆痕迹已基本抹除。保留集准确率高是性能保持,不是完整性。

Q6. 遗忘操作完成后,通常用来衡量“性能保持”的指标是?

单选题 · mid

  • A.待遗忘集上的准确率高低
  • B.保留集准确率与表征相似度← 正确答案
  • C.推理时显存占用大小
  • D.训练语料的字节总量

答案:B。性能保持看的是“其余能力有没有受伤”:保留集准确率、内部表征余弦相似度、幻觉引发率等。待遗忘集准确率衡量的是完整性,属于另一套指标。

Q7. 以下哪些场景需要用到遗忘学习?

多选题 · easy

  • A.用户行使被遗忘权删除数据← 正确答案
  • B.清理模型中的版权侵权内容← 正确答案
  • C.增加模型的上下文窗口长度
  • D.清除模型学到的有害偏见← 正确答案

答案:ABD。用户删除权、版权清洗、偏见消除都是典型的遗忘场景——模型已经学会了不该学的东西,需要定向抹除。增加上下文窗口是架构优化,与遗忘无关。

Q8. 影响函数遗忘方法的主要挑战包括?

多选题 · mid

  • A.Hessian 矩阵计算代价高昂← 正确答案
  • B.大模型上近似求逆有误差← 正确答案
  • C.完全无需重新训练模型
  • D.每个样本贡献要多次计算← 正确答案

答案:ABD。Hessian 是参数量的平方,大模型根本存不下,只能近似;而且每个样本都要独立估算贡献,计算量大。影响函数定位后仍需更新模型参数,并非完全不用训练。

Q9. 梯度上升遗忘的步数过多,最可能导致什么后果?

单选题 · hard

  • A.灾难性遗忘使通用能力下降← 正确答案
  • B.模型彻底不再产生幻觉
  • C.训练数据会自动完成加密
  • D.模型参数会被自动压缩

答案:A。梯度上升会在遗忘集上不断增大损失,但共享参数会把“火”烧到其他知识上。步数过多就像把黑板擦得太狠,连旁边的正常笔记一起抹掉,导致通用能力崩溃。

Q10. 关于“全量重训”与“机器遗忘”,下列说法正确的有?

多选题 · hard

  • A.全量重训成本高而遗忘更高效← 正确答案
  • B.遗忘学习无需完整原始数据← 正确答案
  • C.重训可彻底抹除一切知识痕迹
  • D.遗忘后必须验证遗忘确实发生← 正确答案

答案:ABD。重训大模型成本极高,遗忘学习只需在目标数据上做定向修改,且一般不需要全部原始数据。但重训也不能保证痕迹 100% 消失,所以无论哪种方式,都要用成员推理攻击等手段验证遗忘确实发生。