简介

想象一下,给 AI 展示一张白雪皑皑的森林照片,让它描述所看到的内容。模型自信地描述了雪、树木,然后补充道: “……还有一只松鼠正在树枝上吃坚果。”你仔细一看,确实有一只松鼠,但它是跳跃状态,并没有在吃东西。而且它是在地面上,不是在树枝上。

这种现象被称为幻觉 (Hallucination) 。 在大型视觉语言模型 (LVLM) ——即 GPT-4V 或 LLaVA 等工具背后的系统中——这是一个持续且关键的问题。虽然这些模型在理解视觉数据方面表现出了惊人的能力,但它们经常生成与图像相矛盾的内容,或者凭空捏造根本不存在的物体。

在这篇文章中,我们将探讨一篇引人入胜的研究论文,题为 “HELPD: Mitigating Hallucination of LVLMs by Hierarchical Feedback Learning with Vision-enhanced Penalty Decoding” (HELPD: 通过分层反馈学习与视觉增强惩罚解码缓解 LVLM 的幻觉) 。 作者提出了一个全面的框架,从两个角度解决幻觉问题: 模型的训练方式以及模型在生成文本时的“思考”方式。

图 1: LVLM 幻觉案例。红色标记的部分实际上是幻觉。蓝色标记的部分会被仅关注对象的检测方法误认为是幻觉。

如图 Figure 1 所示,幻觉并不是非黑即白的。如果一种检测方法只检查对象是否存在 (对象级) ,它可能会将“捕食者 (predators) ”或“食物 (food) ”标记为幻觉,因为这些特定的词并没有直接标记图像中的物体。然而,从语义上讲,在松鼠生活的语境中它们是合理的。HELPD 的作者认为,我们需要一种更聪明的方法来检测和惩罚这些错误——一种既理解对象又理解语义的方法。

背景: LVLM 为何会产生幻觉?

要理解解决方案,我们首先需要诊断问题。LVLM 通常由视觉编码器 (如 Vision Transformer) 连接到大型语言模型 (LLM) 组成。其目标是将视觉特征与文本嵌入对齐,以便 LLM 能够“看见”。

然而,先前的研究发现了一种称为 “过度信任 (Over-trust) ” 的现象。当模型过分依赖其已经生成的文本而忽略视觉输入时,就会发生这种情况。它创造了一个自证预言: 如果模型生成了单词“桌子”,它在统计上就会倾向于接下来生成“椅子”,即使图像中并没有椅子。

图 2: LVLM 的注意力可视化。对于相同的输入,每张图代表特定 LVLM 生成实例的注意力矩阵。红色表示对图像的关注,而绿色表示生成文本中的“过度信任”现象。

Figure 2 所示,作者分析了 InstructBLIP 和 MiniGPT-4 等流行模型的注意力矩阵。

  • 红框显示模型实际上正在关注图像。
  • 绿框显示了生成文本中的“过度信任” (右侧的垂直条) 。

作者意识到,现有的解决方案往往会惩罚文本的过度信任,但未能加强视觉注意力。这一观察促成了 HELPD 的开发,这是一个双管齐下的框架:

  1. 分层反馈学习 (Hierarchical Feedback Learning) : 一种训练方法,利用强化学习 (RL) 在对象和句子层面上惩罚幻觉。
  2. 视觉增强惩罚解码 (Vision-enhanced Penalty Decoding) : 一种在生成过程中使用的采样策略,用于平衡文本惩罚与视觉奖励。

核心方法: HELPD

让我们拆解一下这个架构。HELPD 的高明之处在于它在模型生命周期的两个不同阶段解决问题: 微调 (Fine-tuning) 和推理 (Inference) 。

图 3: 此图展示了 HELPD 的框架。分层反馈学习通过比较从采样句子和标签句子中提取的对象集来获得对象级反馈,并通过利用 GPT-4 的少样本推理能力进行语义比较来获得句子级反馈,从而检测幻觉。为了提高采样的有效性,视觉惩罚解码将视觉增强惩罚分数添加到过度信任惩罚分数中,使最终的 logits 更接近图像。

Figure 3 提供了高级路线图。左侧是反馈学习循环 (训练) ,中间/右侧是解码惩罚策略 (推理) 。

第一部分: 分层反馈学习

标准的训练使用交叉熵损失,它只检查模型是否正确预测了下一个确切的单词。只要语法和词汇概率模仿训练数据,它并不关心句子是否在事实上是错误的。

HELPD 引入了一个使用强化学习 (RL) 的微调阶段。模型生成一个句子,系统根据句子的准确性计算“奖励 (Reward) ”。如果奖励高,模型就会受到鼓励重复该行为;如果低,则会受到抑制。

“分层”意味着奖励来自两个层面:

1. 对象级反馈 (\(R_{obj}\))

这会检查模型生成的特定名词是否确实存在于真实标签 (Ground Truth) 中。

  • \(S_{sam}\): 模型采样句子中的对象集合。
  • \(S_{lab}\): 真实标签中的对象集合。

作者计算这两个集合之间的精确率 (Precision) 和召回率 (Recall) 。

精确率公式

召回率公式

最终的对象级奖励 (\(R_{obj}\)) 是 F1 分数,它平衡了精确率和召回率:

对象级奖励公式

该指标确保模型不会臆造随机对象 (精确率) ,也不会遗漏关键对象 (召回率) 。

2. 句子级反馈 (\(R_{sen}\))

对象并不是一切。正如我们在松鼠的例子中看到的,对象之间的关系很重要。为了捕捉这一点,作者利用了 GPT-4。他们使用少样本提示 (few-shot prompting) 将生成的句子和真实标签提供给 GPT-4,要求其在 0 到 1 的范围内对语义准确性进行评分。这提供了句子级奖励 (\(R_{sen}\))。

3. 通过 RL 组合奖励

总奖励 \(R_i\) 是语义分数和对象分数的加权和,由超参数 \(\sigma\) 控制:

总奖励公式

由于这些奖励 (F1 分数和 GPT-4 输出) 是不可微的 (你无法直接通过 GPT-4 计算梯度) ,作者使用了 Reinforce 算法 。 这是 RL 中一种标准的策略梯度方法。

首先,他们查看模型选择的特定动作 (单词) 的对数概率:

对数概率公式

然后,他们计算 RL 损失。该损失鼓励模型增加产生高奖励 (\(R_i\)) 的序列的概率:

RL 损失公式

4. 课程策略

你不能立即开始用 RL 训练模型;它需要先理解语言的基础。因此,HELPD 采用了课程学习。在训练步骤的第一部分 (由比率 \(c\) 定义) ,它使用标准的交叉熵 (\(\mathcal{L}_{CE}\)) 。一旦模型稳定下来,它就会切换到交叉熵和强化学习的组合损失:

带有课程学习的总损失公式

这确保了模型在学习事实准确性的同时保持语言质量。


第二部分: 视觉增强惩罚解码

训练需要时间和计算资源。如果我们能仅仅通过改变选择下一个单词的方式来即时减少幻觉呢?这就是视觉增强惩罚解码的用武之地。

现有的方法如“Opera”使用过度信任惩罚 (Over-trust Penalty) 。 它们查看生成文本的注意力矩阵。如果模型过度盯着自己之前的单词 (这是循环或幻觉的迹象) ,该方法会从 logits (下一个单词的概率分数) 中减去一个惩罚值,迫使模型看向别处。

HELPD 的作者认为这只是解决方案的一半。如果你惩罚对文本的依赖,你应该同时增强对图像的依赖。

图 4: 视觉增强惩罚解码示意图。总惩罚由视觉惩罚和过度信任惩罚组成。过度信任惩罚基于生成的文本 (上部区域) 计算,而视觉惩罚则根据视觉注意力窗口 (下部区域) 计算。

Figure 4 展示了这种双重路径:

  1. 上方路径: 计算基于文本 token 的标准过度信任分数。
  2. 下方路径: 计算基于图像 token 的视觉增强分数。

视觉注意力的数学原理

系统查看与图像特征对应的注意力矩阵的特定窗口 (\(\mathbf{W}_l^h\)) :

定义视觉窗口的公式

它计算一个分数 (\(\psi\)) ,代表模型对视觉输入的关注程度。这是通过聚合该窗口中的注意力权重来完成的:

视觉增强分数公式

计算最终惩罚

最终的惩罚项 \(\rho\) 不仅仅是一个减法。它平衡了文本过度信任惩罚 (\(\phi\)) 和视觉分数 (\(\psi\)) 。

总体惩罚权重公式

这里,\(\beta\) 充当平衡项。逻辑很优雅: 我们想要惩罚那些具有高文本过度信任的 token, 除非它们同时也具有高视觉支持。通过从文本惩罚中减去视觉分数 (由 \(\beta\) 加权) ,如果模型对文本的信任有图像作为支撑,那么它就会被“宽恕”。

最后,这个调整后的惩罚会在采样下一个单词之前应用于概率分布:

最终 Logit 调整公式

这迫使模型选择不仅在语言上可能,而且在视觉上有依据的单词。

实验与结果

研究人员使用 LLaVA-1.5 和 mPLUG-Owl2 等模型在多个标准基准上测试了 HELPD。

幻觉基准测试

  1. POPE (Polling-based Object Probing Evaluation): 询问“图像中有[物体]吗?”之类的问题。
  2. CHAIR (Caption Hallucination Assessment with Image Relevance): 衡量生成的对象中不存在于图像中的比例。
  3. GAVIE & MMHal-Bench: 使用 GPT-4 作为相关性和准确性的裁判。

关键结果

1. POPE 上的改进

在 POPE 基准测试中 (见下表 1) ,我们看到了持续的改进。配备 HELPD 的模型 (“w/ ours”) 的 F1 分数全面高于基础模型。

表 1: LVLM 在 MSCOCO 验证集上三种 POPE 评估设置下的结果。“Yes”表示对给定问题回答“是”的比例。“w/ ours”表示应用了 HELPD。

2. 减少描述中的幻觉 (CHAIR)

CHAIR 指标至关重要,因为它衡量的是自由形式的生成。这里的分数越低越好 (意味着幻觉更少) 。

表 2: CHAIR 幻觉评估结果。“w/ ours”表示使用分层反馈学习,“Vep”是视觉增强惩罚解码。

Table 2 所示:

  • \(CHAIR_s\) (句子级幻觉) 显著下降。对于 mPLUG-Owl2,它从 46.6 降至 22.4 。 这是一个巨大的错误减少。
  • 关键是,看 “Len” 列,生成句子的长度并没有下降。模型并不是为了安全而少说;它说的一样多,但更准确。

3. 整体性能 (MMHal-Bench)

Figure 5 中的雷达图可视化了 8 个类别 (如计数、空间关系、属性) 的性能。红线 (LLaVA + HELPD) 始终包围着橙线 (LLaVA 基础版) ,显示了广泛的改进。

图 5: LVLM 在 MMHAL-Bench 八个类别上的详细性能,其中“Overall”表示所有类别的平均性能。“w/ours”表示应用了 HELPD。

消融实验: 我们需要两个层级的反馈吗?

怀疑论者可能会问: “复杂的 GPT-4 反馈是必要的吗?我们不能只检查对象吗?”

表 4: CHAIR 和 GAVIE 上不同反馈层级的消融结果。R_obj 和 R_sen 分别代表对象级和句子级反馈。

Table 4 回答了这个问题。

  • 第 1 行: 无反馈 (基础模型) 。
  • 第 2 行: 仅对象反馈 (\(R_{obj}\))。
  • 第 3 行: 仅句子反馈 (\(R_{sen}\))。
  • 第 4 行: 两者都有。

使用两者始终产生最低的幻觉分数 (\(C_s\) 和 \(C_i\)) 。有趣的是,如果只能选一个,句子级反馈 (\(R_{sen}\)) 似乎比对象级反馈稍微强大一些,可能是因为它能更好地捕捉上下文,但组合使用的效果是最好的。

定性示例

让我们看一个现实世界的修正案例,以此了解 HELPD 的实际作用。

图 8: 展示了一个说明性案例,比较 mPLUG-Owl2 和带有 HELPD 的 mPLUG-Owl2 的输出。

Figure 8 中,基础模型 (mPLUG-Owl2) 产生了幻觉,称狮子“站在猎物上方 (standing over a kill) ”,这可能是因为照片中的狮子经常这样做。它忽略了追逐的视觉证据。 带有 HELPD 的模型正确识别了动作: 狮子正在“追逐角马 (chasing a wildebeest) ”。生成的文本扎根于图像的实际视觉动态。

结论

HELPD 框架代表了使多模态 AI 变得可靠的重要一步。通过认识到幻觉既源于模型的学习方式 (训练激励) ,也源于模型的表达方式 (解码策略) ,作者提供了一个稳健的解决方案。

对学生和研究人员的关键要点是:

  1. 训练中的指标很重要: 超越简单的交叉熵,转向强化学习,使我们能够针对“事实一致性”等复杂目标进行优化,而不仅仅是“单词概率”。
  2. 解码是主动的: 我们不必接受模型的原始输出。通过在推理过程中检查注意力机制 (视觉增强惩罚解码) ,我们可以引导模型回归图像,远离其自身的幻觉。
  3. 层次结构必不可少: 评估真相需要检查原子事实 (对象) 和整体图景 (语义) 。

HELPD 仅通过少量的额外训练就实现了这一切,使其成为 LVLM 工具包中实用且高效的补充。