Look Closer! An Adversarial Parametric Editing Framework for Hallucination Mitigation in VLMs
(AAAI 2025)
激活数据集构建
为了找到导致幻觉的参数,首先需要构建对比数据,即针对同一张图片生成“无幻觉”和“有幻觉”的两种回答。
- 正样本(Positive Sample):
使用强调“关注视觉事实”的提示词(Prompt $x^+$),诱导模型生成基于图像内容的准确描述 $y^+$ 。
样本对:$[v, x^+, y^+]$(其中 $v$ 是图像)。
- 负样本(Negative Sample):
使用强调“依赖内部知识/大胆推测”的对抗性提示词(Prompt $x^-$),诱导模型忽略图像,生成包含幻觉的描述 $y^-$ 。
样本对:$[v, x^-, y^-]$。
- 质量筛选:
- 使用 GPT-4o 对生成的描述进行评分(0-2分),确保正样本无幻觉,负样本包含幻觉,从而形成有效的正负样本对 。
编辑区域定位
目标是找到模型中具体哪一层的参数对幻觉负责。
将正负样本对分别输入 VLM,获取每一层解码器(Decoder Layer)的隐藏状态(Hidden States)。计算正样本隐藏状态 $h_l^{(+)}$ 和负样本隐藏状态 $h_l^{(-)}$ 在每一层 $l$ 的欧几里得距离 。
距离最大的层被认为是“幻觉易发层”(Hallucination-prone layer),因为该层在处理事实与幻觉时表现出最大的差异 。
$$l _ {hallu} = \arg\max _ {l \in {1,\dots,L}} | h_l^{(+)} - h_l^{(-)} |_2$$
在定位到的第 $l _ {hallu}$ 层中,作者具体锁定 MLP(多层感知机)模块的第二层权重矩阵作为编辑目标,因为该层通常负责知识的存储和传播 。
对抗性参数编辑
作者并没有简单地微调模型,而是设计了一个“对抗性”的训练目标:强迫模型即使在受到干扰(对抗性前缀)的情况下,也能生成正确的、基于视觉的回答 。
对抗性前缀微调 (Adversarial Prefix Tuning)
首先,需要自动生成一个最能诱导模型产生幻觉的“对抗性前缀”(而不是手动编写 Prompt)。
冻结 VLM 的所有参数,只训练一个可学习的前缀矩阵 $E_x$ 。
最大化生成“负样本(幻觉回答)” $y^-$ 的概率。这意味着这个前缀 $E_x$ 会极力诱导模型忽略视觉信息 。
$$\min _ {E_x} \mathcal{L}_q = - \log P _ {W_0}(y^- | [V, E_p, E_x])$$
其中
- $W_0$:原始模型参数。
- $V$:图像嵌入。
- $E_p$:良性提示词嵌入。
参数编辑与优化 (Fine-tuning with Constraints)
现在,使用训练好的对抗性前缀 $E_x$ 来“特训”模型中被定位到的参数 $W_t$。
冻结除 $l _ {hallu}$ 层 MLP 参数以外的所有参数 。
损失函数 1:对抗性编辑损失 ($\mathcal{L}_e$)
要求模型在输入对抗性前缀(旨在诱导幻觉)的情况下,依然生成正样本(正确回答) $y^+$ 。
公式:
$$\min _ {W_t} \mathcal{L}_e = - \log P _ {W_t}(y^+ | v, q, x)$$
原理:如果模型能在有人故意误导(对抗前缀)时都答对,那么在正常情况下它会更关注视觉证据 。
损失函数 2:KL 散度约束 ($\mathcal{L}_c$)
为了防止编辑破坏模型的通用能力,要求编辑后的模型 $W_t$ 在面对正常输入时,输出分布应与原始模型 $W_0$ 保持一致 。
$$\min _ {W_t} \mathcal{L}_c = KL(P _ {W_t}(\cdot | [v, x]) || P _ {W_0}(\cdot | [v, x]))$$
总优化目标:
$$\min _ {W_t} \mathcal{L} = \min _ {W_t} (\lambda \mathcal{L}_e + \mathcal{L}_c)$$
其中 $\lambda$ 是平衡系数,实验中设为 0.1 。