简介
想象一下,给 AI 展示一张白雪皑皑的森林照片,让它描述所看到的内容。模型自信地描述了雪、树木,然后补充道: “……还有一只松鼠正在树枝上吃坚果。”你仔细一看,确实有一只松鼠,但它是跳跃状态,并没有在吃东西。而且它是在地面上,不是在树枝上。
这种现象被称为幻觉 (Hallucination) 。 在大型视觉语言模型 (LVLM) ——即 GPT-4V 或 LLaVA 等工具背后的系统中——这是一个持续且关键的问题。虽然这些模型在理解视觉数据方面表现出了惊人的能力,但它们经常生成与图像相矛盾的内容,或者凭空捏造根本不存在的物体。
在这篇文章中,我们将探讨一篇引人入胜的研究论文,题为 “HELPD: Mitigating Hallucination of LVLMs by Hierarchical Feedback Learning with Vision-enhanced Penalty Decoding” (HELPD: 通过分层反馈学习与视觉增强惩罚解码缓解 LVLM 的幻觉) 。 作者提出了一个全面的框架,从两个角度解决幻觉问题: 模型的训练方式以及模型在生成文本时的“思考”方式。

如图 Figure 1 所示,幻觉并不是非黑即白的。如果一种检测方法只检查对象是否存在 (对象级) ,它可能会将“捕食者 (predators) ”或“食物 (food) ”标记为幻觉,因为这些特定的词并没有直接标记图像中的物体。然而,从语义上讲,在松鼠生活的语境中它们是合理的。HELPD 的作者认为,我们需要一种更聪明的方法来检测和惩罚这些错误——一种既理解对象又理解语义的方法。
背景: LVLM 为何会产生幻觉?
要理解解决方案,我们首先需要诊断问题。LVLM 通常由视觉编码器 (如 Vision Transformer) 连接到大型语言模型 (LLM) 组成。其目标是将视觉特征与文本嵌入对齐,以便 LLM 能够“看见”。
然而,先前的研究发现了一种称为 “过度信任 (Over-trust) ” 的现象。当模型过分依赖其已经生成的文本而忽略视觉输入时,就会发生这种情况。它创造了一个自证预言: 如果模型生成了单词“桌子”,它在统计上就会倾向于接下来生成“椅子”,即使图像中并没有椅子。

如 Figure 2 所示,作者分析了 InstructBLIP 和 MiniGPT-4 等流行模型的注意力矩阵。
- 红框显示模型实际上正在关注图像。
- 绿框显示了生成文本中的“过度信任” (右侧的垂直条) 。
作者意识到,现有的解决方案往往会惩罚文本的过度信任,但未能加强视觉注意力。这一观察促成了 HELPD 的开发,这是一个双管齐下的框架:
- 分层反馈学习 (Hierarchical Feedback Learning) : 一种训练方法,利用强化学习 (RL) 在对象和句子层面上惩罚幻觉。
- 视觉增强惩罚解码 (Vision-enhanced Penalty Decoding) : 一种在生成过程中使用的采样策略,用于平衡文本惩罚与视觉奖励。
核心方法: HELPD
让我们拆解一下这个架构。HELPD 的高明之处在于它在模型生命周期的两个不同阶段解决问题: 微调 (Fine-tuning) 和推理 (Inference) 。

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\)) 的序列的概率:

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

这确保了模型在学习事实准确性的同时保持语言质量。
第二部分: 视觉增强惩罚解码
训练需要时间和计算资源。如果我们能仅仅通过改变选择下一个单词的方式来即时减少幻觉呢?这就是视觉增强惩罚解码的用武之地。
现有的方法如“Opera”使用过度信任惩罚 (Over-trust Penalty) 。 它们查看生成文本的注意力矩阵。如果模型过度盯着自己之前的单词 (这是循环或幻觉的迹象) ,该方法会从 logits (下一个单词的概率分数) 中减去一个惩罚值,迫使模型看向别处。
HELPD 的作者认为这只是解决方案的一半。如果你惩罚对文本的依赖,你应该同时增强对图像的依赖。

Figure 4 展示了这种双重路径:
- 上方路径: 计算基于文本 token 的标准过度信任分数。
- 下方路径: 计算基于图像 token 的视觉增强分数。
视觉注意力的数学原理
系统查看与图像特征对应的注意力矩阵的特定窗口 (\(\mathbf{W}_l^h\)) :

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

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

这里,\(\beta\) 充当平衡项。逻辑很优雅: 我们想要惩罚那些具有高文本过度信任的 token, 除非它们同时也具有高视觉支持。通过从文本惩罚中减去视觉分数 (由 \(\beta\) 加权) ,如果模型对文本的信任有图像作为支撑,那么它就会被“宽恕”。
最后,这个调整后的惩罚会在采样下一个单词之前应用于概率分布:

这迫使模型选择不仅在语言上可能,而且在视觉上有依据的单词。
实验与结果
研究人员使用 LLaVA-1.5 和 mPLUG-Owl2 等模型在多个标准基准上测试了 HELPD。
幻觉基准测试
- POPE (Polling-based Object Probing Evaluation): 询问“图像中有[物体]吗?”之类的问题。
- CHAIR (Caption Hallucination Assessment with Image Relevance): 衡量生成的对象中不存在于图像中的比例。
- GAVIE & MMHal-Bench: 使用 GPT-4 作为相关性和准确性的裁判。
关键结果
1. POPE 上的改进
在 POPE 基准测试中 (见下表 1) ,我们看到了持续的改进。配备 HELPD 的模型 (“w/ ours”) 的 F1 分数全面高于基础模型。

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

如 Table 2 所示:
- \(CHAIR_s\) (句子级幻觉) 显著下降。对于 mPLUG-Owl2,它从 46.6 降至 22.4 。 这是一个巨大的错误减少。
- 关键是,看 “Len” 列,生成句子的长度并没有下降。模型并不是为了安全而少说;它说的一样多,但更准确。
3. 整体性能 (MMHal-Bench)
Figure 5 中的雷达图可视化了 8 个类别 (如计数、空间关系、属性) 的性能。红线 (LLaVA + HELPD) 始终包围着橙线 (LLaVA 基础版) ,显示了广泛的改进。

消融实验: 我们需要两个层级的反馈吗?
怀疑论者可能会问: “复杂的 GPT-4 反馈是必要的吗?我们不能只检查对象吗?”

Table 4 回答了这个问题。
- 第 1 行: 无反馈 (基础模型) 。
- 第 2 行: 仅对象反馈 (\(R_{obj}\))。
- 第 3 行: 仅句子反馈 (\(R_{sen}\))。
- 第 4 行: 两者都有。
使用两者始终产生最低的幻觉分数 (\(C_s\) 和 \(C_i\)) 。有趣的是,如果只能选一个,句子级反馈 (\(R_{sen}\)) 似乎比对象级反馈稍微强大一些,可能是因为它能更好地捕捉上下文,但组合使用的效果是最好的。
定性示例
让我们看一个现实世界的修正案例,以此了解 HELPD 的实际作用。

在 Figure 8 中,基础模型 (mPLUG-Owl2) 产生了幻觉,称狮子“站在猎物上方 (standing over a kill) ”,这可能是因为照片中的狮子经常这样做。它忽略了追逐的视觉证据。 带有 HELPD 的模型正确识别了动作: 狮子正在“追逐角马 (chasing a wildebeest) ”。生成的文本扎根于图像的实际视觉动态。
结论
HELPD 框架代表了使多模态 AI 变得可靠的重要一步。通过认识到幻觉既源于模型的学习方式 (训练激励) ,也源于模型的表达方式 (解码策略) ,作者提供了一个稳健的解决方案。
对学生和研究人员的关键要点是:
- 训练中的指标很重要: 超越简单的交叉熵,转向强化学习,使我们能够针对“事实一致性”等复杂目标进行优化,而不仅仅是“单词概率”。
- 解码是主动的: 我们不必接受模型的原始输出。通过在推理过程中检查注意力机制 (视觉增强惩罚解码) ,我们可以引导模型回归图像,远离其自身的幻觉。
- 层次结构必不可少: 评估真相需要检查原子事实 (对象) 和整体图景 (语义) 。
HELPD 仅通过少量的额外训练就实现了这一切,使其成为 LVLM 工具包中实用且高效的补充。
](https://deep-paper.org/en/paper/2409.20429/images/cover.png)