VLM Unlearning 有关论文阅读总结与梳理

VLM Unlearning 有关论文阅读总结与梳理

文章目录

目录

前言

一、什么是 Unlearning

二、AUVIC

三、Neuron Pruning

四、 Neuron Path Editing

五、 MLLM Eraser


前言

本文整理了当前多模态大模型(VLM)中常见的 Unlearning 技术路线,主要包括:

  • AUVIC
  • Neuron Pruning
  • Neuron Path Editing
  • MLLM Eraser

这些方法的核心目标都是:

让模型“遗忘”指定知识,同时尽量不影响其它知识。

一、什么是 Unlearning

在多模态大模型(Vision-Language Model / VLA)中,我们经常需要:

  • 删除隐私数据
  • 移除不安全知识
  • 删除特定人物或敏感概念
  • 符合法规(GDPR)

但重新训练模型成本非常高,因此提出:Machine Unlearning

即:让模型有选择地忘记某些知识,而不影响其他能力。

在多模态模型中,这件事更困难,因为:

  • 知识分布在视觉 + 文本两个模态
  • 多模态特征高度耦合
  • 单纯 finetune 容易破坏模型能力

因此出现了多种 Unlearning 方法。

二、AUVIC

原文链接:[2511.11299] AUVIC: Adversarial Unlearning of Visual Concepts for Multi-modal Large Language Models

1.核心思想

AUVIC 的目标是:

强迫模型在最困难情况下学会只抑制目标,而不影响相邻概念

具体来说:在 target identity 上答错或 回答模糊;在非目标样本上保持正常回答

2.方法结构

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)

对输入图像添加扰动

目标:max loss,即生成最困难的样本。


Loss

1️⃣ Forget Loss
\mathcal{L}_{f} = \log p_{\theta}(y^{*}\mid x_{t})
增加 target identity 的预测 loss:logits ↑ → loss ↑
2️⃣ Prediction Consistency Loss
\mathcal{L}_{p} = \left\| \mathrm{logits}_{\mathrm{before}}(x_{t}) - \mathrm{logits}_{\mathrm{after}}(x_{t}) \right\|_{2}^{2}
保证非目标样本的回答准确度
3️⃣ Representation Consistency
\mathcal{L}_{c} = \mathrm{KL}\Big(p_{\theta}(\cdot\mid G(x;\phi ))\ \Big\|\ p_{\theta}(\cdot\mid x)\Big)
保证同一个人的视觉表示在扰动前后要一致

3.方法优势

  • 不破坏相邻概念
  • 对抗训练鲁棒
  • 可用于人脸隐私删除

三、Neuron Pruning

原文链接:[2502.15910] Modality-Aware Neuron Pruning for Unlearning in Multimodal Large Language Models

1.核心思想

不同模态输入会激活 不同的神经元子集

因此可以 剪枝负责 Forget 数据的神经元

2.方法步骤

Step1:检测模态偏置神经元

计算不同模态下的神经元指标:

激活强度差

1️⃣

I_{\mathrm{abs}}(D,n)
差异越大 → 越可能是模态专属神经元
激活频率差

2️⃣ 

I_{\mathrm{freq}}(D,n)
差异越大 → 模态专属
激活方差

3️⃣ 

I_{\mathrm{var}}(D,n)
方差越大 → 信息承载能力越强
RMS 指标

4️⃣ 

I_{\mathrm{rms}}(D,n)
用于惩罚无脑常亮的神经元

Step2:计算 Forget Score

S_{n}=\frac{I(D_{f},n)}{I(D_{r},n)+\epsilon}

其中:

\mathcal{I}(\mathcal{D}, n) := \sum_{k \in \mathcal{K}} I_k(\mathcal{D}, n)
\mathcal{K} = \{I_{\text{abs}}, I_{\text{freq}}, I_{\text{var}}, I_{\text{rms}}\}
D_r

 = Retain dataset

D_f

 = Forget dataset

通过计算选取最大的神经元作为selected neurons

Step3:部署 Mask

selected neurons 上:

mask = 0

后续推理中永久生效。


3.方法优势

  • 无需重新训练
  • 计算效率高
  • 可解释性强

   

四、 Neuron Path Editing

原文链接:[2511.06793] Cross-Modal Unlearning via Influential Neuron Path Editing in Multimodal Large Language Models

1.核心思想

模型中的知识通常沿着 神经元路径(neuron path)传播

因此 找到关键路径并进行编辑


2.方法步骤

Step1:路径定位

通过 Integrated Gradient 找到关键神经元:

\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}
IGI(w) 表示各层的选取神经元对文本输出的影响。
\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
IFI(z) 表示各层的选取神经元对视觉输出的影响。

Q:为什么要累积梯度?

因为:

神经元对任务的影响可能是非线性的

在某一点梯度可能为0或负值,但在此之前的梯度都很大,都能展现出强相关性

因此需要从

\frac{1}{m}\alpha

到 

\alpha

逐步累积梯度才能真实反映神经元影响。


Step2:构建关键路径

逐层寻找:

可以满足 

max(IGI / IFI)

 的神经元加入现有路径。


Step3:RMisU Path Editing

编辑关键路径对应参数

Loss 设计:

\mathcal{L} = \mathcal{L}_{\text{retain}} + \mathcal{L}^{f}_{\text{RMisU}} + \gamma \mathcal{L}^{r}_{\text{RMisU}}
以这个Loss为损失,只解冻(更新)“关键路径所在的目标层中,与该路径神经元通道直接相关的极少量参数,基本就是一个参数矩阵的一行,和另一个参数矩阵的一列

其中:

1️⃣  

\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]
在“保留数据”上,新模型的输出行为仍然是一个正常的语言模型

2️⃣  

\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
在中间层形成的隐藏层表示,必须长得像一个随机噪声向量

3️⃣  

\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
在保留集上:新模型在中间层的表示,必须和原模型几乎一模一样

Forget目标

中间隐藏层表示:像随机噪声

Retain目标

在保留数据上:新模型 ≈ 原模型


3.方法优势

  • 精确编辑知识
  • 参数修改极少
  • 保留模型能力

五、 MLLM Eraser

原文链接:[2510.04217] MLLMEraser: Achieving Test-Time Unlearning in Multimodal Large Language Models through Activation Steering

1.核心思想

通过 向隐藏层添加方向向量

将模型行为从 knowledge recall 转变为 knowledge erasure

2.方法步骤

Step1:构造两类输入

Recall 行为(模型还能被尝试着唤醒对问题的正确回答)

使用:

  • jailbreak prompt
  • adversarial image

构造能唤起 Recall 行为的输入,得到: 

h^{(i)}_{\text{recall}} = h(I'_i, Q'_i)

Refusal 行为(不管怎么样模型都无法正常回答问题)

使用:

  • clean image
  • blocked prompt

构造能唤起 Refusal 行为的输入,得到:

h^{(j)}_{\text{refusal}} = h(I_j, Q_j)

Step2:计算 Erasure Direction

d_{\text{erase}} = \mathbb{E}\!\left[h_{\text{refusal}}\right] - \mathbb{E}\!\left[h_{\text{recall}}\right]

表示:

从 recall 到 refusal 的方向。

Step3:学习线性门控函数

f(\mathbf{h}) = \mathbf{W} \mathbf{P} \mathbf{h}
\mathbf{W}^* := \arg\min_{\mathbf{W}} \left( \|\mathbf{W} \mathbf{P} \mathbf{H}_f - \mathbf{D}\| + \gamma \|\mathbf{W} \mathbf{P}\| \right)

其中:

P \in \mathbb{R}^{d \times d}, \quad W \in \mathbb{R}^{1 \times d}, \quad D \in \mathbb{R}^{1 \times N_f}
  • P:投影矩阵
  • W:映射矩阵

P 的作用

保留与遗忘任务相关的子空间

W 的作用

判断是否触发 erasure

Step4:输入感知 Steering

最终修改隐藏层:

\tilde{h}^{(\ell)} = h^{(\ell)} + \lambda W P h^{(\ell)}

如果 

h \approx h_{\text{recall}}
则添加 d_erase

如果:

h \approx h_{\text{refusal}}
则保持不变

方法优势

  • 不需要重新训练
  • 推理阶段可控
  • 支持输入感知

Read more

Flutter 组件 dart_vlc_ffi 的适配 鸿蒙Harmony 实战 - 驾驭全能媒体播放引擎、实现鸿蒙端 4K 高清解码与跨平台流媒体播放方案

Flutter 组件 dart_vlc_ffi 的适配 鸿蒙Harmony 实战 - 驾驭全能媒体播放引擎、实现鸿蒙端 4K 高清解码与跨平台流媒体播放方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 dart_vlc_ffi 的适配 鸿蒙Harmony 实战 - 驾驭全能媒体播放引擎、实现鸿蒙端 4K 高清解码与跨平台流媒体播放方案 前言 在鸿蒙(OpenHarmony)生态的影音娱乐、监控中心以及智能座舱开发中,一个极致的播放器引擎是一切体验的生命线。虽然鸿蒙系统自带了播放组件,但在面对一些极其冷门、古老或是经过高度加密的视频流格式(如 RTSP、RTMP 或特定的 MKV 封装)时,往往需要一套兼容性更强、更硬核的播放方案。 VLC 作为开源播放器界的“王者”,其内部沉淀了数十年的解码器优化。 dart_vlc_ffi 通过 Dart FFI(外部函数接口)技术,将 VLC

By Ne0inhk
HarmonyOS6 半年磨一剑 - RcList 组件事件处理机制与应用示例

HarmonyOS6 半年磨一剑 - RcList 组件事件处理机制与应用示例

文章目录 * 前言 * 开源计划 * rchoui 官网 * 一、触摸事件处理 * 1.1 触摸事件的用途 * 1.2 触摸事件的内部绑定 * 二、外部 Scroller 控制 * 2.1 Scroller 的注入与使用 * 2.2 Scroller 常用 API * 三、事件综合应用示例 * 四、常见交互场景速查 * 4.1 场景对照表 * 4.2 禁用状态的注意事项 * 总结 前言 Hello 各位开发者们大家好, 我是若城,今天我们开始对Rchoui三方库新的组件开始讲解, 本期我们主要讲解的是 RcList 这个组件, 话不多说我们先看下效果图吧~~~ 开源计划 项目预计于 2026 年

By Ne0inhk
Flutter 组件 serverpod_swagger 的适配 鸿蒙Harmony 实战 - 驾驭 API 文档自动化、实现鸿蒙端全栈联调与 Swagger UI 动态审计方案

Flutter 组件 serverpod_swagger 的适配 鸿蒙Harmony 实战 - 驾驭 API 文档自动化、实现鸿蒙端全栈联调与 Swagger UI 动态审计方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 serverpod_swagger 的适配 鸿蒙Harmony 实战 - 驾驭 API 文档自动化、实现鸿蒙端全栈联调与 Swagger UI 动态审计方案 前言 在鸿蒙(OpenHarmony)的大型项目研发中,前端(鸿蒙应用)与后端(Dart Server)的沟通效率,往往直接决定了产品的上线节奏。传统的“手动维护 API 文档”模式,不仅耗时耗力,更由于文档与代码的脱节,导致了大量“因为 API 字段改动而引发的 Crash”。 我们需要一种“代码即文档”的高阶自动化生产力。 serverpod_swagger 是 Serverpod

By Ne0inhk
claude code的安装和更新方法(macos)

claude code的安装和更新方法(macos)

目录 一、native安装:Run `claude install` 二、npm安装 1. 安装 node.js 2. 安装/更新 claude code 2.1. 检查当前版本和最新版本 3. Claude Code 自带更新命令: claude update 一句话总结:用npm安装claude code,用brew安装npm,用node来安装npm * homebrew是macos的系统级包管理器,类似app store的命令行版 * npm是node.js的包管理器,类似python的pip 【注意】 1)brew也可以安装claude code,而且能一条命令搞定安装和更新 (安装:brew install claude-code;更新:brew upgrade 一次性更新所有软件)

By Ne0inhk