VLM Unlearning 核心方法综述
在多模态大模型(Vision-Language Model)的落地过程中,我们常面临一个棘手的问题:如何精准删除模型中的特定知识(如隐私数据、不安全概念),同时不破坏模型整体的理解与生成能力?
重新训练成本太高,于是 Machine Unlearning 应运而生。它的核心目标很明确:让模型'遗忘'指定内容,同时尽量不影响其他知识。
但在多模态场景下,由于视觉和文本特征高度耦合,单纯微调容易伤及无辜。目前业界主要探索了四条技术路线:AUVIC、Neuron Pruning、Neuron Path Editing 以及 MLLM Eraser。
背景:为什么需要 Unlearning
在 VLM 应用中,我们可能需要:
- 删除用户隐私数据
- 移除不安全或有害知识
- 符合 GDPR 等法规要求
难点在于知识分布在视觉 + 文本双模态中,且相互纠缠。因此,我们需要更精细的方法论。
AUVIC:对抗性视觉概念遗忘
论文链接:AUVIC: Adversarial Unlearning of Visual Concepts for Multi-modal Large Language Models
核心思想
AUVIC 的核心在于强迫模型在最困难的情况下学会抑制目标,而不影响相邻概念。简单来说,就是让模型在目标身份上答错或模糊回答,而在非目标样本上保持正常。
方法结构
该方法采用 min-max 对抗优化策略,公式如下:
$$ \min_{\theta}\ \max_{\phi}\ \mathbb{E}{x\sim\mathcal{D}}\Big[ \mathcal{L}{f} + \lambda \mathcal{L}{p} + \beta \mathcal{L}{c} \Big] $$
这里涉及三个关键角色:
- θ (Vision Tower):通过 LoRA 微调来最小化 Loss,目标是降低 target identity 的识别能力。
- ϕ (Generator):对输入图像添加扰动,目标是最大化 Loss,即生成最困难的样本。
- Loss 设计:
- Forget Loss:增加 target identity 的预测 loss(logits ↑ → loss ↑)。
- Prediction Consistency Loss:保证非目标样本的回答准确度。 $$ \mathcal{L}{p} = \left| \mathrm{logits}{\mathrm{before}}(x_{t}) - \mathrm{logits}{\mathrm{after}}(x{t}) \right|_{2}^{2} $$
- Representation Consistency:保证同一个人的视觉表示在扰动前后要一致。 $$ \mathcal{L}{c} = \mathrm{KL}\Big(p{\theta}(\cdot\mid G(x;\phi ))\ \Big|\ p_{\theta}(\cdot\mid x)\Big) $$
优势
- 不破坏相邻概念
- 对抗训练鲁棒性强
- 特别适用于人脸隐私删除场景
Neuron Pruning:感知模态的神经元剪枝
论文链接:Modality-Aware Neuron Pruning for Unlearning in Multimodal Large Language Models
核心思想
不同模态的输入会激活不同的神经元子集。既然知道哪些神经元负责 Forget 数据,那直接剪掉它们不就完了?
实施步骤
第一步:检测模态偏置神经元
我们需要计算不同模态下的神经元指标,差异越大越可能是模态专属神经元:
- 激活强度差:$I_{\mathrm{abs}}(D,n)$,差异越大越专属。
- 激活频率差:$I_{\mathrm{freq}}(D,n)$,差异越大越专属。
- 激活方差:$I_{\mathrm{var}}(D,n)$,方差越大信息承载能力越强。
- RMS 指标:$I_{\mathrm{rms}}(D,n)$,用于惩罚无脑常亮的神经元。
第二步:计算 Forget Score
综合上述指标计算得分,选取最大的神经元作为 selected neurons:
$$ S_{n}=\frac{I(D_{f},n)}{I(D_{r},n)+\epsilon} $$
其中 $D_r$ 是保留数据集,$D_f$ 是遗忘数据集。
第三步:部署 Mask
在选定的神经元上设置 mask = 0,后续推理中永久生效。
优势
- 无需重新训练
- 计算效率极高
- 可解释性强
Neuron Path Editing:跨模态路径编辑
论文链接:Cross-Modal Unlearning via Influential Neuron Path Editing in Multimodal Large Language Models
核心思想
模型中的知识通常沿着特定的神经元路径传播。与其盲目剪枝,不如找到关键路径并进行精确编辑。
方法步骤
路径定位
利用 Integrated Gradient 找到关键神经元。这里有个细节要注意:为什么要累积梯度?因为神经元对任务的影响可能是非线性的,某一点梯度可能为 0,但之前的累积梯度很大。所以需要从 $\frac{1}{m}\alpha$ 到 $\alpha$ 逐步累积。
文本输出影响: $$ \text{IGI}(\mathbf{w}) = \sum_{j=1}^N \tilde{w}{i_j}^n \sum{k=1}^m \sum_{l=1}^N \frac{\partial F_T\left(\frac{k}{m}\alpha_{i_1}^1, \dots, \frac{k}{m}\alpha_{i_N}^N\right)}{\partial w_{i_l}^l} $$
视觉输出影响: $$ \text{IFI}(\mathbf{z}) = \sum_{n=1}^N \tilde{z}{i_n}^n \sum{k=1}^m \sum_{l=1}^N \left(\frac{\partial \mathbf{G}\left(\frac{k}{m}\beta_{i_1}^1, \dots, \frac{k}{m}\beta_{i_N}^N\right)}{\partial z_{i_l}^l}\right)^2 $$
构建关键路径
逐层寻找满足 $\max(\text{IGI} / \text{IFI})$ 的神经元加入现有路径。
RMisU Path Editing
编辑关键路径对应参数。这里只解冻极少量参数(基本就是一个参数矩阵的一行和一列),损失函数设计如下:
$$ \mathcal{L} = \mathcal{L}{\text{retain}} + \mathcal{L}^{f}{\text{RMisU}} + \gamma \mathcal{L}^{r}_{\text{RMisU}} $$
- Retain Loss:在保留数据上,新模型输出行为仍正常。 $$ \mathcal{L}{\text{retain}} = \mathbb{E}{(x^r, y^r) \in D^r} \left[ -\sum_{i=1}^{|y^r|} \log P_{M_{\theta^*}}(y_i^r \mid x^r, y_{<i}^r) \right] $$
- Forget Loss:中间隐藏层表示必须长得像随机噪声向量。 $$ \mathcal{L}^{f}{\text{RMisU}} = \mathbb{E}{x^f \in D^f} \left| \mathbf{h}^{(l)}{M{\theta^*}}(x^f) - \mathbf{v}^f \right|_2^2 $$
- Retain Representation Loss:在保留集上,新模型中间层表示必须和原模型几乎一模一样。 $$ \mathcal{L}^{r}{\text{RMisU}} = \mathbb{E}{x^r \in D^r} \left| \mathbf{h}^{(l)}{M{\theta^*}}(x^r) - \mathbf{h}^{(l)}{M\theta}(x^r) \right|_2^2 $$
优势
- 精确编辑知识
- 参数修改极少
- 最大程度保留模型能力
MLLM Eraser:测试时激活引导
核心思想
不需要改权重,直接在推理阶段向隐藏层添加方向向量,将模型行为从 knowledge recall 转变为 knowledge erasure。
方法步骤
构造两类输入
- Recall 行为:使用 jailbreak prompt 或 adversarial image,唤起模型尝试回答。 $$ h^{(i)}_{\text{recall}} = h(I'_i, Q'_i) $$
- Refusal 行为:使用 clean image 或 blocked prompt,强制模型无法回答。 $$ h^{(j)}_{\text{refusal}} = h(I_j, Q_j) $$
计算 Erasure Direction
$$ d_{\text{erase}} = \mathbb{E}!\left[h_{\text{refusal}}\right] - \mathbb{E}!\left[h_{\text{recall}}\right] $$ 这代表了从 recall 到 refusal 的方向。
学习线性门控函数
我们需要学习一个函数来判断是否触发 erasure: $$ f(\mathbf{h}) = \mathbf{W} \mathbf{P} \mathbf{h} $$ 其中 $P$ 是投影矩阵(保留相关子空间),$W$ 是映射矩阵(判断是否触发)。优化目标是最小化误差并控制正则项。
输入感知 Steering
最终修改隐藏层: $$ \tilde{h}^{(\ell)} = h^{(\ell)} + \lambda W P h^{(\ell)} $$ 如果输入接近 recall 状态,则添加 $d_{\text{erase}}$;如果接近 refusal,则保持不变。
优势
- 不需要重新训练
- 推理阶段可控
- 支持输入感知动态调整

