跳转至

下面是普通正文版,不用代码块、不用写作块。

VCD:Visual Contrastive Decoding 学习笔记

论文:Mitigating Object Hallucinations in Large Vision-Language Models through Visual Contrastive Decoding

核心关键词:

  • LVLM Object Hallucination
  • Statistical Bias
  • Language Prior / Unimodal Prior
  • Visual Uncertainty
  • Contrastive Decoding
  • Training-free
  • Adaptive Plausibility Constraint

一、论文研究的问题是什么?

VCD 关注的是 Large Vision-Language Models(LVLMs)中的 Object Hallucination。

所谓 object hallucination,就是:

模型生成了图片中实际不存在的物体。

例如图片中只有:

  • 一个男人
  • 一张桌子
  • 一台电脑

但模型描述:

A man is sitting at a table with a laptop and a cup of coffee.

其中 cup of coffee 如果图片里不存在,就是 object hallucination。

从 token 生成角度来看,可以理解为:

模型错误地给了与当前视觉输入不一致的物体 token 较高概率,并最终将其生成。


二、VLM 和 LVLM

1. VLM

VLM = Vision-Language Model

泛指同时处理视觉与语言信息的模型。

早期 VLM 经常针对某一个具体任务,例如:

  • Image Captioning
  • VQA
  • Image-Text Retrieval
  • Visual Grounding

2. LVLM

LVLM = Large Vision-Language Model

可以看作 VLM 中规模更大、通常接入强大 LLM 的一类:

\[ \text{LVLM} \subset \text{VLM} \]

典型结构:

\[ \text{Image} \rightarrow \text{Vision Encoder} \rightarrow \text{Projector / Adapter} \rightarrow \text{LLM} \rightarrow \text{Response} \]

例如:

  • LLaVA
  • InstructBLIP
  • MiniGPT-4
  • Qwen-VL

LLaVA 属于典型 LVLM。

LVLM 相比传统 VLM 的一个重要特点是:

LLM 自身已经具有非常强的语言能力和世界知识。

这虽然增强了模型能力,但也带来了更强的 language prior,因此模型即使视觉证据不足,也可能生成听起来非常合理的内容。


三、Visual Instruction Fine-tuning

Visual Instruction Fine-tuning 可以理解成:

使用大量“图片 + 人类指令 + 理想回答”的数据,让模型学会根据自然语言指令完成各种视觉任务。

训练样本可以表示为:

\[ (\text{Image},\text{Instruction},\text{Answer}) \]

例如:

  • Image + “Describe this image.” → 图片描述
  • Image + “What color is the car?” → Red.
  • Image + “How many people are there?” → Three.

相比传统模型只针对单一任务训练,Visual Instruction Fine-tuning 让 LVLM 可以根据不同自然语言 instruction 灵活执行不同任务。

LLaVA 是这一路线的重要代表。


四、Object Hallucination 的两个核心原因

VCD 全文反复强调两个概念:

\[ \boxed{\text{Statistical Bias}} \]

和

\[ \boxed{\text{Language Prior}} \]

它们也是理解 VCD 的核心。

1. Statistical Bias

指训练数据中存在大量物体共现统计规律,模型把这些规律错误地当成当前图像中的真实证据。

例如训练数据中:

\[ \text{table}\rightarrow\text{chair} \]

经常一起出现。

于是当模型在当前图片里看到 table 时,即使图片里没有 chair,也容易生成 chair。

可以粗略记成:

图看了一半,根据过去的数据经验脑补另一半。

更加严谨地说,它来自:

训练数据中的 object co-occurrence statistical bias。

所以最好不要正式称作“图像先验”,更准确的说法是:

视觉侧 / 数据侧的共现先验。

2. Language Prior / Unimodal Prior

LVLM 中的 LLM 已经通过海量文本学到了强大的语言统计规律。

例如已经生成:

A man is sitting at a dining table with a ...

即使完全不看图片,LLM 也可能认为:

  • cup
  • food
  • plate

这些词接在后面非常合理。

也就是模型可能过度依赖:

\[ P(y_t|y_{<t}) \]

而没有充分利用:

\[ P(y_t|v,y_{<t}) \]

因此:

Language Prior = 话说了一半,根据语言经验脑补另外半句。

3. 两者共同点

它们本质上都属于:

模型不是完全依据当前视觉证据,而是在依靠过去学到的统计规律进行“猜测”。

可以这样记:

\[ \boxed{\text{Statistical Bias:看图脑补}} \]
\[ \boxed{\text{Language Prior:说话脑补}} \]

五、VCD 之前,幻觉缓解方法主要有哪些流派?

到 VCD 这个阶段,可以把已有 hallucination mitigation 方法粗略分成以下几类。

1. Fine-grained Visual-Language Alignment

核心思想:

加强视觉信息和文本之间的细粒度对齐,让模型生成某个词时能够找到真实视觉依据。

Fine-grained 是什么?

“粒度”就是:

一个问题被拆得有多细。

粗粒度:

\[ \text{整张图} \leftrightarrow \text{整句话} \]

细粒度:

\[ \text{dog区域} \leftrightarrow \text{dog} \]
\[ \text{cup区域} \leftrightarrow \text{cup} \]

甚至:

\[ \text{cup颜色} \leftrightarrow \text{red} \]

所以 fine-grained alignment 就是:

不只让整图和整句大致匹配,而是让 region、object、attribute、word 等更细的单位对齐。

代表方法包括:

  • Fine-grained Contrastive Learning
  • ROI Feature Fusion

ROI = Region of Interest。

ROI Feature Fusion 的思想是:

不只使用整张图的全局特征,还把具体 object region 的局部视觉特征融合进生成过程。


2. Data Augmentation / Reducing Object Co-occurrence Bias

核心思想:

通过重新构造训练数据,打破训练数据中过强的 object co-occurrence。

例如原数据经常:

\[ \text{table}+\text{chair} \]

模型容易学成:

\[ \text{table}\Rightarrow\text{chair} \]

于是数据增强可以增加:

\[ \text{table without chair} \]

这样的样本,削弱这种虚假关联。

这一类方法本质上是在:

\[ \boxed{\text{训练阶段修改数据分布}} \]

因此通常需要重新训练或 fine-tune。


3. Hallucination-targeted Fine-tuning / Instruction Tuning

进入 LVLM 阶段以后,一类直接的方法是:

专门构造“教模型不要产生幻觉”的训练数据,再 fine-tune LVLM。

代表工作:

M-HalDetect

构建 hallucination 专项数据,对不同类型的 hallucination 进行细粒度标注,然后用于训练模型。

LRV-Instruction

构建大量 positive + negative visual instruction。

例如图片里没有狗,但故意问:

What color is the dog?

正确答案应该是:

There is no dog in the image.

而不是顺着错误前提继续编狗的颜色。

这种方法通过增加 negative instructions,让模型学会拒绝错误视觉前提。


4. RLHF / Preference Alignment

RLHF:

\[ \text{Reinforcement Learning from Human Feedback} \]

即:

基于人类反馈的强化学习。

基本过程:

\[ \text{模型生成多个回答} \]

↓

\[ \text{人类判断哪个更好} \]

↓

训练:

\[ \text{Reward Model} \]

↓

再利用强化学习优化模型,使其更倾向于生成高 reward 的回答。

在多模态 hallucination 中,可以让人类更偏好:

更符合图片事实、更少 hallucination 的回答。

LLaVA-RLHF 就属于这一类。

这一类方法通常需要:

  • 人类 preference 数据
  • Reward Model
  • 额外训练
  • 大量计算资源

5. Post-hoc Revision

Post-hoc:

事后处理 / 事后修正。

基本流程:

\[ \text{LVLM生成答案} \rightarrow \text{Revisor检查} \rightarrow \text{重新生成修正版} \]

代表工作:

LURE

LURE 训练一个专门的 Hallucination Revisor。

它不是让 Revisor 从头生成,而是:

已经有一个可能包含 hallucination 的回答,再让 Revisor 对可疑部分进行修改。

LURE 分析发现 hallucination 与以下因素有关:

  • Object co-occurrence
  • Model uncertainty
  • Generation position

Revisor 的任务可以理解成:

\[ \text{错误/可疑 caption} \rightarrow \text{更可靠 caption} \]

优点:

纠错任务比从头生成任务搜索空间更小。

但 Revisor 本身也不是绝对不会 hallucinate,因此可能出现:

  • over-correction
  • 删除真实物体
  • 引入新的错误

6. Inference-time / Decoding-time Intervention

代表:

\[ \boxed{\text{VCD}} \]

它和前面方法最大的区别是:

不重新训练模型,不构造新的 hallucination 数据集,而是在推理阶段修改 decoding。

因此属于:

\[ \boxed{\text{Training-free Hallucination Mitigation}} \]

六、为什么作者要提出 VCD?

前面这些方法虽然有效,但经常需要:

  • 专门构造训练数据
  • 人工标注
  • Fine-tuning
  • RLHF
  • Reward Model
  • Revisor
  • 额外训练资源

因此作者认为需要一种:

\[ \boxed{\text{simpler but efficient}} \]

的方法。

也就是:

不改变模型参数,不重新训练,只修改推理过程,就减少 hallucination。

这就是 VCD 的主要 motivation。

需要注意:

training-free ≠ computation-free

VCD 不需要额外训练,但推理时需要额外处理扰动图,因此 inference cost 会增加。


七、Encoding 和 Decoding

Encoding

Encoding 可以理解成:

把原始输入转化成模型内部可以处理的表示。

例如文本:

\[ \text{text} \rightarrow \text{tokens} \rightarrow \text{embeddings} \rightarrow \text{hidden representations} \]

图像:

\[ \text{image} \rightarrow \text{vision encoder} \rightarrow \text{visual features / visual tokens} \]

Tokenization 本身更偏预处理,encoding 更强调形成内部表示。

Decoding

Decoding 是:

根据内部状态一步一步决定最终输出哪个 token。

大致过程:

\[ \text{hidden state} \rightarrow \text{logits} \rightarrow \text{softmax} \rightarrow \text{probability distribution} \rightarrow \text{sampling} \rightarrow \text{token} \]

VCD 主要就在:

\[ \boxed{\text{decoding phase}} \]

进行干预。


八、LVLM 普通生成公式

论文写:

\[ y_t \sim p_\theta(y_t|v,x,y_{<t}) \]

其中:

  • \(\theta\):模型参数
  • \(v\):visual input
  • \(x\):textual query
  • \(y_t\):第 \(t\) 个生成 token
  • \(y_{<t}\):此前已经生成的 token
  • \(p_\theta\):模型预测概率分布

其中:

\[ \sim \]

表示:

从某个概率分布中采样。

所以:

\[ y_t\sim p_\theta(...) \]

就是:

下一个 token \(y_t\) 从模型当前预测的概率分布里生成。


Logit

Logit 就是:

模型给每个 token 的原始分数。

例如:

Token Logit
dog 3
cat 2
chair 0
tree -1

Logit:

  • 可以是正数
  • 可以是负数
  • 不要求加起来等于 1

因此还不是概率。


exp

\[ \exp(x)=e^x \]

指数运算会把 logit 转换成正值。

再经过归一化,就得到:

\[ P(y_i) = \frac{ \exp(z_i) }{ \sum_j\exp(z_j) } \]

这就是 Softmax。

因此整个过程可以记成:

\[ \boxed{ \text{Logit} \rightarrow \text{Softmax} \rightarrow \text{Probability} \rightarrow \text{Token} } \]

九、VCD 的核心假设:Visual Uncertainty

作者认为:

高质量、可靠的视觉输入可以让模型更多依据真实图像生成答案。

但如果视觉信息变得模糊、不确定:

\[ \text{Visual Evidence}\downarrow \]

模型就会更加依赖:

\[ \text{Statistical Bias} + \text{Language Prior} \]

因此:

\[ \boxed{ \text{Visual Uncertainty}\uparrow \Rightarrow \text{Prior/Bias Influence}\uparrow \Rightarrow \text{Hallucination}\uparrow } \]

例如:

原图里:

table + laptop,没有 cup。

清晰图片时,模型可能知道没有 cup。

但图片被破坏以后,模型看不清:

“table + laptop 好像经常和 cup 一起出现。”

于是:

\[ P(\text{cup})\uparrow \]

十、如何人为制造 Visual Uncertainty?

作者借鉴 diffusion model 的前向加噪过程,对图片不断加入 Gaussian Noise。

大致过程:

\[ v_0 \rightarrow v_1 \rightarrow v_2 \rightarrow \cdots \rightarrow v_T \]

其中:

  • \(v_0\):原始清晰图片
  • \(v_T\):经过多步加噪后的 distorted image

论文中的:

\[ q(v_t|v_{t-1}) = \mathcal N(...) \]

本质上就是:

每一步按照 Gaussian Distribution 给图片加入随机噪声。

其中:

\[ \gamma \]

控制加噪强度。

可以粗略记成:

\[ \boxed{\gamma:图片破坏得有多狠} \]

不需要掌握 diffusion 公式推导,只要知道:

VCD 利用可控 Gaussian noise 人为降低视觉输入可靠性。


十一、VCD 最核心的方法

给定:

  • 原始图像 \(v\)
  • 扰动图像 \(v'\)
  • query \(x\)

LVLM 分别产生两套输出分布。

原图:

\[ L_{\text{original}} = \operatorname{logit}_\theta(y|v,x) \]

扰动图:

\[ L_{\text{distorted}} = \operatorname{logit}_\theta(y|v',x) \]

然后 VCD 构造:

\[ p_{\text{VCD}} = \operatorname{softmax} \left[ (1+\alpha)L_{\text{original}} - \alpha L_{\text{distorted}} \right] \]

这个公式可以重新写成:

\[ \boxed{ L_{\text{VCD}} = L_{\text{original}} + \alpha ( L_{\text{original}} - L_{\text{distorted}} ) } \]

这个形式更容易理解。


十二、VCD 核心直觉

假设:

token 原图 logit 扰动图 logit
dog 8 2
chair 5 4.5

对于 dog:

\[ 8-2=6 \]

说明图片被破坏以后,dog 的分数大幅下降。

意味着:

dog 很依赖真实视觉信息。

而 chair:

\[ 5-4.5=0.5 \]

几乎没有变化。

意味着:

图片看不清以后模型还是想生成 chair。

说明 chair 很可能主要来自:

  • Language Prior
  • Statistical Bias

而不是真实视觉证据。

因此 VCD 的思想就是:

\[ \boxed{ \text{正常图下很想说,但图像被破坏后就不想说的 token} } \]

更可能是真实视觉信息支持的 token。

而:

\[ \boxed{ \text{不管图片清不清楚都很想说的 token} } \]

更可能来自语言先验和统计偏差。


十三、\(\alpha\) 的作用

公式:

\[ L_{\text{VCD}} = L_{\text{original}} + \alpha ( L_{\text{original}} - L_{\text{distorted}} ) \]

其中:

\[ \alpha \]

控制 contrast 的强度。

可以记成:

\[ \boxed{\alpha:对比多狠} \]

如果:

\[ \alpha=0 \]

那么:

\[ L_{\text{VCD}} = L_{\text{original}} \]

VCD 就退化为普通 decoding。

\(\alpha\) 越大:

越强调原图和扰动图之间的差异。

\(\alpha\) 是人为设定的 hyperparameter,不是模型自动学习出来的。


十四、为什么 VCD 需要 Adaptive Plausibility Constraint?

单纯 VCD 有一个潜在问题:

“原图和扰动图差异大”不一定代表这个 token 本身合理。

某些本来概率极低、非常离谱的 token,也可能因为 contrast 被意外放大。

因此作者增加:

\[ \boxed{\text{Adaptive Plausibility Constraint}} \]

十五、Adaptive Plausibility Constraint

作者定义:

\[ V_{\text{head}}(y_{<t}) = \left\{ y_t\in V: p_\theta(y_t|v,x,y_{<t}) \ge \beta \max_w p_\theta(w|v,x,y_{<t}) \right\} \]

人话:

只允许原图下概率至少达到“当前最大概率 × \(\beta\)”的 token 参与 VCD。

例如:

最高概率:

\[ P_{\max}=0.6 \]

如果:

\[ \beta=0.1 \]

那么阈值:

\[ 0.6\times0.1=0.06 \]

只保留:

\[ P(y_t)\ge0.06 \]

的 token。

例如:

Token Probability 保留
dog 0.60 ✓
cat 0.20 ✓
running 0.10 ✓
tree 0.04 ×
refrigerator 0.0001 ×

因此:

对于原图下本身概率很低的 token,通过动态阈值提前排除,避免其因为对比解码而被错误放大,从而防止 VCD 引入新的不合理输出。


十六、为什么叫 Adaptive?

因为这个阈值不是固定概率,例如:

\[ P>0.1 \]

而是:

\[ \beta\times P_{\max} \]

随着模型当前最大概率变化。

因此模型越确定:

\[ P_{\max}\uparrow \]

筛选阈值也会上升。

模型越犹豫:

\[ P_{\max}\downarrow \]

会保留更多候选。

所以这是一个动态调整的 plausibility threshold。


十七、三个最重要的超参数

论文默认:

\[ \alpha=1 \]
\[ \beta=0.1 \]
\[ \gamma=0.1 \]

可以直接记成:

\[ \boxed{\alpha:对比多狠} \]
\[ \boxed{\beta:候选 token 筛多严} \]
\[ \boxed{\gamma:图像破坏多狠} \]

分别对应:

  1. Contrastive decoding strength
  2. Adaptive plausibility constraint
  3. Gaussian noise / visual uncertainty

十八、VCD 完整流程

整个 VCD 可以压缩成:

Step 1:原图预测

\[ v \rightarrow \text{LVLM} \rightarrow L_{\text{original}} \]

Step 2:构造扰动图

\[ v \rightarrow \text{Gaussian Noise} \rightarrow v' \]

Step 3:扰动图预测

\[ v' \rightarrow \text{同一个 LVLM} \rightarrow L_{\text{distorted}} \]

Step 4:过滤离谱 token

根据:

\[ P_{\text{original}}(y_t) \ge \beta P_{\max} \]

只保留合理候选。

Step 5:Contrastive Re-weighting

\[ L_{\text{VCD}} = L_{\text{original}} + \alpha ( L_{\text{original}} - L_{\text{distorted}} ) \]

Step 6:Softmax

\[ L_{\text{VCD}} \rightarrow P_{\text{VCD}} \]

Step 7:Sampling

再使用:

  • Direct Sampling
  • Nucleus Sampling
  • Beam Search

等正常 decoding strategy 选择 token。


十九、VCD 到底是不是“识别幻觉后删除”?

不是。

VCD 并不是:

\[ \text{先发现 chair 是 hallucination} \rightarrow \text{删除 chair} \]

而是:

在 hallucination token 真正生成之前,重新调整所有候选 token 的竞争关系。

它更加奖励:

\[ \text{真正依赖视觉证据的 token} \]

于是那些主要由:

  • language prior
  • statistical bias

支撑的 token 会相对失去竞争力。

所以 VCD 属于:

\[ \boxed{\text{decoding-time intervention}} \]

而不是 post-hoc correction。


二十、VCD 是不是 Data Augmentation?

严格来说不是。

传统 Data Augmentation:

\[ \text{修改训练图片} \rightarrow \text{扩充训练数据} \rightarrow \text{重新训练模型} \]

VCD:

\[ \text{修改当前推理图片} \rightarrow \text{构造 contrastive branch} \rightarrow \text{修改 decoding} \]

不更新参数。

因此更准确的说法是:

Inference-time input perturbation + contrastive decoding

而不是传统意义上的 data augmentation。


二十一、VCD 和 Classifier-Free Guidance 的关系

VCD 的公式:

\[ (1+\alpha)L(v) - \alpha L(v') \]

和 diffusion 中 classifier-free guidance 的:

\[ (1+\alpha)\epsilon_\theta(x,c) - \alpha\epsilon_\theta(x) \]

形式非常相似。

Classifier-free guidance:

比较有 condition 和无 condition 的预测,从而放大 condition 的影响。

VCD:

比较正常视觉输入和视觉信息被破坏后的预测,从而放大真实视觉信息的影响。

因此 VCD 的创新并不是:

第一次提出两个输出分布相减。

而是:

把 contrastive decoding / classifier-free guidance 的思想迁移到了 LVLM hallucination 问题,并提出用 distorted visual input 构造 contrastive branch。


二十二、Regular 和 VCD 实验设置

论文中的:

Regular

\[ \text{Original Logits} \rightarrow \text{Softmax} \rightarrow \text{Direct Sampling} \]

VCD

\[ \text{VCD-modified Logits} \rightarrow \text{Softmax} \rightarrow \text{Direct Sampling} \]

二者使用相同 sampling strategy。

因此实验是在控制:

唯一主要区别就是有没有使用 VCD。


二十三、POPE

POPE:

Polling-based Object Probing Evaluation

主要评估:

\[ \boxed{\text{Object Existence Hallucination}} \]

形式:

Is there a dog in the image?

回答:

Yes / No

正负样本各占约 50%。

三个 negative sampling setting:

Random

从图片中不存在的 object 中随机抽。

从数据集中高频 object 中选择不存在的 object。

Adversarial

优先选择:

与图片真实 object 经常共现、但当前图片里不存在的 object。

因此:

\[ \text{Random} \rightarrow \text{Popular} \rightarrow \text{Adversarial} \]

难度通常不断上升。

这也是为什么 POPE 可以很好测试 statistical bias。

如果模型越来越容易被 adversarial samples 骗,就说明 object co-occurrence bias 对 hallucination 有明显贡献。

指标:

  • Accuracy
  • Precision
  • Recall
  • F1

虽然 POPE 原论文已经发现过这种趋势,但 VCD 再次展示它的意义是:

用自己的模型和实验设置重新验证 VCD 的核心假设。

即:

\[ \text{Random Performance} > \text{Popular Performance} > \text{Adversarial Performance} \]

支持:

\[ \boxed{ \text{Statistical Bias 确实显著影响 LVLM hallucination} } \]

所以这里属于:

hypothesis validation / supporting evidence

而不是一个新的 POPE 发现。


二十五、MME

MME 不是一个单独的“指标”,而是一个:

\[ \boxed{\text{综合 LVLM Evaluation Benchmark}} \]

包含多种 perception 和 cognition 子任务。

VCD 主要使用其中:

Object-level hallucination

  • Existence
  • Count

Attribute-level hallucination

  • Position
  • Color

这已经属于比单纯“有没有 hallucination”更加细粒度的评估。


二十六、Accuracy 和 Accuracy+

MME 中:

Accuracy

普通单题准确率:

\[ \text{Accuracy} = \frac{ \text{Correct Questions} }{ \text{All Questions} } \]

Accuracy+

同一张图片的一对互补问题必须:

\[ \boxed{\text{全部回答正确}} \]

才算正确。

例如:

Is there a dog? → Yes
Is there a cat? → No

必须两个都答对。

因此 Accuracy+ 更严格,可以减少模型单纯依赖:

“一直回答 Yes”

之类 bias 获得高分的可能性。

MME 常用:

\[ \text{Score} = \text{Accuracy} + \text{Accuracy+} \]

二十七、VCD 在 Position 上效果有限

从 MME 结果来看,VCD 对:

  • Existence
  • Count
  • Color

等维度的改善相对更稳定。

但对于:

\[ \boxed{\text{Position}} \]

提升并不稳定,部分模型甚至出现轻微下降。

因此更严谨的表述是:

VCD 对 Position 类空间关系判断的改善有限且不稳定。

不应直接说:

VCD 对 Position 无效。

因为论文并没有专门进行 statistical significance test。

可能的原因是:

Position 更依赖精细 spatial relation reasoning,而 VCD 的 Gaussian noise 本身也会破坏空间关系信息。

因此:

\[ L_{\text{original}} - L_{\text{distorted}} \]

在 Position 类任务中未必能够像 object existence 那样干净地表示“有效视觉证据”。


二十八、Visual Uncertainty Ablation

作者进一步研究:

随着 Gaussian noise steps 增加,object hallucination 如何变化?

结果:

\[ \text{Noise Steps}\uparrow \Rightarrow \text{POPE Performance}\downarrow \]

说明:

\[ \boxed{ \text{Visual Uncertainty 越高,Hallucination 越严重} } \]

这一实验主要不是证明 VCD 本身有多强,而是在验证:

VCD 构造 distorted image 作为 contrastive branch 的合理性。

也就是说:

扰动图确实可以放大模型对 language prior 和 statistical bias 的依赖,因此能够暴露 hallucination tendency。


二十九、LLaVA-Bench 与开放式生成

LLaVA-Bench (In-the-Wild) 是一个规模较小的开放式 LVLM benchmark。

包含:

  • 24 张图片
  • 60 个问题

主要覆盖:

  • Conversation
  • Detailed Description
  • Complex Reasoning

它不是大规模统计 benchmark,而更像:

小而精的开放式能力测试。

因为样本规模较小,所以不应把它当作唯一证据。


三十、为什么还要测 Open-ended Generation?

POPE / MME 很多任务都是:

\[ \text{Yes / No} \]

作者希望证明:

VCD 不是只会“刷结构化 hallucination benchmark”。

因此进一步在 LLaVA-Bench 测开放式生成,并使用 GPT-4V 辅助评价。

作者想证明两件事。

1. Accuracy 提高

说明开放式回答也更贴合图片、更少 hallucination。

2. Detailedness 提高

说明 VCD 并不是简单:

“少说话,从而少犯错。”

如果模型为了避免 hallucination 什么都不敢说,确实可能让 hallucination 下降,但回答质量也会恶化。

因此作者希望证明:

\[ \text{Hallucination}\downarrow \]

同时:

\[ \text{Response Detail}\uparrow \]

不过:

GPT-4V-aided evaluation 属于 model-as-a-judge,作为补充证据可以,但没有 POPE 这类结构化 benchmark 那么直接。


三十一、VCD 对 General Capability 的影响

作者还利用 MME 等 benchmark 研究:

VCD 在降低 hallucination 的同时,会不会损害 LVLM 的其他能力?

这是一个非常重要的问题。

因为最简单的“防幻觉”方式可能是:

模型什么都少说、什么都回答 No。

这样 hallucination 可能下降,但模型本身也废了。

因此理想情况是:

\[ \text{Hallucination}\downarrow \]

同时:

\[ \text{General Capability}\not\downarrow \]

最好还能:

\[ \text{General Capability}\uparrow \]

VCD 实验显示 perception-related tasks 整体上倾向于提升,但提升幅度并不是都很大,并且部分其他任务存在轻微下降。

因此比较严谨的结论应该是:

VCD 在若干视觉感知任务上带来一定改善,同时整体上没有严重破坏模型原有能力。

而不是:

VCD 全面显著提升模型所有综合能力。


三十二、实验图表需要批判性阅读

阅读实验结果时不能只看作者正文中的:

  • consistent improvement
  • substantial improvement
  • significant improvement

还应该自己检查:

  • 实际提升多少?
  • 是否有下降的子任务?
  • 是否有 error bar?
  • 是否进行了 statistical significance test?
  • 柱状图纵轴是否从 0 开始?
  • 是否存在 benchmark selection bias?
  • 是否只测了对方法特别有利的任务?

论文中某些柱状图纵轴并非从 0 开始,因此视觉上可能会放大小幅差距。

所以阅读实验图时应区分:

\[ \boxed{\text{consistent improvement}} \]

和:

\[ \boxed{\text{large improvement}} \]

前者只表示:

大部分结果方向一致。

并不代表:

提升幅度非常大。


三十三、VCD 的主要优点

1. Training-free

不需要:

  • 重新训练 LVLM
  • hallucination-specific dataset
  • RLHF
  • Reward Model
  • Revisor

2. Plug-and-play

可以作用于多个不同 LVLM family,例如:

  • LLaVA
  • InstructBLIP
  • Qwen-VL

3. 方法直观

核心思想非常清晰:

如果某个 token 在视觉证据被破坏后仍然保持很高概率,那么它可能主要依赖语言先验或统计偏差。

4. 不只是事后修改

VCD 在:

\[ \boxed{\text{token 生成过程中}} \]

直接改变候选 token 的概率竞争,因此错误可以在真正生成之前被压制。


三十四、VCD 的潜在局限

1. 推理成本增加

虽然 training-free,但需要:

\[ \text{Original Image Forward} + \text{Distorted Image Forward} \]

因此 inference cost 增加。

2. 并非所有 hallucination 都来自 language prior / statistical bias

VCD 的核心假设是:

\[ \text{Hallucination} \approx \text{Statistical Bias} + \text{Language Prior} \]

但实际 hallucination 原因可能更加复杂。

3. 对 Position 等空间关系任务帮助有限

说明:

VCD 对 object existence 类型 hallucination 可能更擅长,而对于精细空间关系等问题并不一定稳定有效。

4. Distorted Image 本身可能破坏有用视觉信息

高斯噪声不仅会放大 language prior,也会同时破坏:

  • Object
  • Attribute
  • Spatial Relation
  • Fine-grained Detail

因此 contrastive signal 并不一定始终完美代表“hallucination tendency”。

5. \(\alpha,\beta,\gamma\) 是人为设定的超参数

分别需要实验选择:

\[ \alpha,\beta,\gamma \]

说明方法仍然存在一定的 hyperparameter sensitivity。


三十五、VCD 与此前方法的整体对比

方法流派 核心思想 是否额外训练 何时干预
Fine-grained Alignment 加强视觉与语言局部对应 是 训练阶段
Data Augmentation 打破 object co-occurrence bias 是 训练阶段
Hallucination Fine-tuning 专门构造防幻觉数据训练模型 是 训练阶段
RLHF 用人类偏好训练模型更可信地回答 是 训练阶段
Post-hoc / LURE 输出之后通过 Revisor 修改 Revisor 需要训练 生成之后
VCD 原图与扰动图做 Contrastive Decoding 否 生成过程中

因此 VCD 的核心定位可以总结为:

\[ \boxed{ \text{Training-free + Inference-time + Contrastive Decoding} } \]

三十六、整篇 VCD 最核心的逻辑链

把整篇论文压缩成一条线:

Step 1:发现问题来源

LVLM hallucination 很大程度上受到:

\[ \text{Statistical Bias} + \text{Language Prior} \]

影响。

Step 2:提出假设

视觉信息越不可靠:

\[ \text{Visual Evidence}\downarrow \]

模型越依赖:

\[ \text{Prior / Bias}\uparrow \]

从而:

\[ \text{Hallucination}\uparrow \]

Step 3:人为放大问题

给原图加入 Gaussian Noise:

\[ v\rightarrow v' \]

让模型的:

statistical bias / language prior

更加明显。

Step 4:构造 Contrast

比较:

\[ L(v) \]

和:

\[ L(v') \]

如果某个 token:

\[ L(v)\gg L(v') \]

说明它更依赖真实视觉信息。

如果:

\[ L(v)\approx L(v') \]

说明它可能主要依赖语言先验或共现偏差。

Step 5:重新调整 token 分数

\[ L_{\text{VCD}} = L(v) + \alpha [ L(v)-L(v') ] \]

增强真正有视觉依据的 token。

Step 6:过滤异常 token

利用:

\[ \beta \]

动态过滤原图下本来就极低概率的 token,防止 VCD 矫枉过正。

Step 7:正常生成

\[ L_{\text{VCD}} \rightarrow \text{Softmax} \rightarrow \text{Sampling} \rightarrow y_t \]

三十七、一句话理解 VCD

如果只允许记一句:

VCD 故意破坏图像来暴露模型在缺乏视觉证据时的“瞎猜倾向”,然后把正常图像预测与这种瞎猜倾向进行对比,在每个 token 生成前重新调整概率,使模型更依赖真实视觉信息,而不是 statistical bias 和 language prior。

再口语一点:

“图都看不清了你还特别想说的东西,我就怀疑你是在瞎猜;只有原图清楚时你才特别想说的东西,我更愿意相信是真的看到了。”

这就是 VCD 的核心。