多模态大语言模型(MLLMs)经常会出现幻觉现象,但其潜在原因仍未被充分理解。在本文中,我们通过实证分析发现,尽管 MLLMs 在最终输出中会错误地生成一些物体,但它们实际上在前面的网络层中已经能够识别出视觉对象。我们推测,这种现象可能是由于语言模型中强大的知识先验抑制了视觉信息,从而导致了幻觉的产生。
基于这一发现,我们提出了一种新的动态纠正解码方法(DeCo),用于多模态大语言模型。该方法能够自适应地选择合适的前层,并按比例将这些层中的知识融合到最终层中,从而调整输出的 logits。需要注意的是,DeCo 具有模型无关性,可以无缝地结合多种经典解码策略,并适用于不同的 MLLMs。
我们在多个广泛使用的基准数据集上对 DeCo 进行了评估,结果表明,与基线方法相比,它能够显著降低幻觉率,展示了其在缓解幻觉问题方面的潜力。
1 INTRODUCTION
MLLM 幻觉产生的原因是复杂的。不同于针对单模态语言模型(LLM)的分析(Chuang et al., 2024; Chen et al., 2024d; Orgad et al., 2024; Chen et al., 2024e; Lu et al., 2024b; Wang et al., 2024a),许多现有研究通常假设 MLLM 确实能够"看到"视觉信息。然而,由于模型深度过大(Chen et al., 2024c; Zhang et al., 2024a)、信息聚合模式(Huang et al., 2024)以及模型内部固有的先验知识(Leng et al., 2023; Zhang et al., 2024b)等因素,这些模型最终仍然会产生幻觉(具体细节见附录 B)。总体而言,我们对 MLLM 幻觉内在机制的理解仍然有限,目前尚不清楚:究竟是模型从未正确识别视觉信息,还是虽然识别了,但在后续的信息流中被抑制了。
发生幻觉的 MLLM 在一定程度上其实"能够看见"。 受上述工作的启发,我们进行了实证分析,发现 MLLM 并非"看不见";它们能够在前面的网络层中识别图像中的物体,但这种识别在后续层中被抑制,从而导致幻觉的产生。具体而言,我们聚焦于物体幻觉,并在 MLLM 上开展实验,结果表明模型在一定程度上确实能够判断某个物体是否存在(如图1和第2.1节所示)。我们进一步观察到,生成 token 的置信度会受到 MLLM 中知识先验的影响(见第2.2节),从而导致真实(ground truth)token 在更深层中的概率降低。
基于前层知识的动态纠正解码。 基于上述发现,我们提出了一种用于缓解 MLLM 幻觉的动态纠正解码方法------DeCo(Dynamic Correction Decoding with preCeding-Layer Knowledge)。我们的核心假设是:前面的网络层对真实 token 具有更高的置信度,因此这些 token 在最终层输出中的 logits 应当占据更高排名。为增强真实 token 的 logits,DeCo 会动态选择一个前层,并利用其中的先验知识对最终输出的 logits 进行修正。此外,我们引入了一种动态软调制机制,以在纠正的同时保留生成结果的原始风格。DeCo 无需训练,可以与各种主流解码策略(如贪心搜索、核采样和束搜索)结合,并可无缝应用于不同的 MLLM 中以缓解幻觉问题。
贡献。 本文的主要贡献在于探索了 MLLM 幻觉的内部机制。我们发现,生成 token 的置信度会受到模型知识先验的影响,从而在深层中降低真实 token 的概率。在此基础上,我们提出了 DeCo,一种由前层知识引导的动态纠正解码方法。我们将 DeCo 应用于 InstructBLIP、MiniGPT-4、LLaVA 和 Qwen-VL,并结合三种常用解码策略(贪心搜索、核采样和束搜索)进行实验。结果表明,在图像描述任务中,DeCo 的平均幻觉抑制率达到 10.8% ,表现出优越的抑制效果。此外,在包括 POPE 和 MME 在内的视觉问答数据集上,DeCo 也优于现有基线方法。同时,我们还分析了方法的延迟和吞吐量,结果显示 DeCo 相较基础解码过程仅带来约 1.2 倍 的延迟开销,显著快于 VCD 和 OPERA 等方法。
2 为什么 MLLM 会生成不存在的物体?
在本节中,我们通过一系列实证分析来研究 MLLM 的内部机制,并阐明其生成不存在物体的根本原因。为了在实验的真实性与复杂性之间取得平衡,我们主要关注**图像描述任务(image caption)**中物体生成的问题。
2.1 发现一:MLLM 在一定程度上知道物体是否存在
受(Ye et al., 2024)的启发,我们研究 MLLM 在图像描述任务中是如何理解物体的。为简化分析,我们将这一过程抽象为一个函数:
isexist(obj)\text{isexist(obj)}isexist(obj)
用于判断某个物体是否存在于图像中。
为了考察该能力在 MLLM 中的体现,我们在语言模型部分的每一层,在完成物体描述的位置进行 probing 实验。实验模型为一个包含 32 层 Transformer 的 7B 参数模型(具体设置见附录 C.1)。
我们使用如下 prompt 模板:
USER: <image>Describe the image.
ASSISTANT: The image contains obj.
训练集和测试集均按照该格式构建后输入模型。在每一层的最后位置,我们训练一个 probe 分类器,因此总共得到 32 个分类器。(关于数据划分、OOD 设置和 prompt 细节见附录 C.1)
模型在测试集上的结果如图 1(a)(左)所示。同时,我们还在 POPE 数据集的三种划分上进行了进一步实验,结果如图 1(a)(右)所示。这些评估全面反映了模型在不同场景下的物体识别能力。
我们从这 32 个分类器中选择性能最优的一个,对所有物体、存在物体以及不存在物体进行准确率对比。结果表明:
- MLLM 在正确生成物体时具有较高准确率
- 尽管模型生成了许多不存在的物体,但在 probing 实验中仍然能达到约 80% 的准确率
这说明:
MLLM 在一定程度上具备判断物体是否存在的能力
此外,我们的 probing 实验还发现:
- 前层(preceding layers)的准确率更高(见图 1(b))
- 这一现象与以往研究一致(Zhang et al., 2024b; Leng et al., 2023)
进一步地,我们发现:
- 将视觉编码器分辨率从 224 提升到 336
→ 可以提升对"不存在物体"的识别准确率
2.2 发现二:语言模型先验会抑制 MLLM 已经感知到的视觉信息
我们假设,前面的网络层中的表示在一定程度上能够有效捕捉视觉信息。然而,嵌入在 MLLM 中的先验知识会在更深层中降低真实(ground truth)token 的概率。图 2 通过具体示例展示了这一假设。
我们分析了最终层输出中概率排名前四的 token。可以观察到,非幻觉 token(如 "people"、"left"、"blue" 和 "umbrella")从第 18 层开始就具有较高的概率;相比之下,幻觉 token(如 "bird" 和 "green")则只在接近第 30 层时才表现出较高的概率。有趣的是,真实 token(如 "umbrella" 和 "blue")的概率从第 30 层开始急剧下降,最终在最后一层中甚至低于幻觉 token 的概率。
(图 3:不同层中被激活的真实 token 的分布)
为了进一步研究这一现象,我们开展了 early-exit 实验(Teerapittayanon et al., 2016; Elbayad et al., 2020; Schuster et al., 2022),用于分析 MLLM 在 Transformer 各层中的内部表示演化过程。
具体而言,我们从 MSCOCO 数据集中随机选取 500 张图像,并使用随机 prompt 生成 LLaVA-1.5-7B 的原始输出。随后,我们提取所有不存在的物体及其对应的前文文本,并将这些数据重新输入到 MLLM 中。我们观察 Transformer 各层中下一 token 的概率分布,以分析模型的行为(详细实验设置见附录 C.2)。
第 iii 层的输出记为 hih^ihi,下一 token 的概率分布表示为:
p(⋅∣x<s)i=softmax(ϕ(hs−1i))p(\cdot | x_{<s})i = \text{softmax}(\phi(h^i{s-1}))p(⋅∣x<s)i=softmax(ϕ(hs−1i))
为了减少观测 token 数量并模拟真实采样过程,我们采用类似 Top-p 采样的截断策略,对词表进行裁剪,得到候选 token 集合 VcandidateV_{candidate}Vcandidate,默认阈值为 0.9。
随后,我们对 VcandidateV_{candidate}Vcandidate 中的 token 进行标注。具体来说,我们筛选出那些 VcandidateV_{candidate}Vcandidate 中至少包含一个真实 token 的样本,并判断是否存在一个"被激活的真实 token",其定义为:
∃xa∈Vcandidate∧i∈(0,N],p(xa∣x<s)i−p(xh∣x<s)i≥threshold\exists x_a \in V_{candidate} \land i \in (0, N], \quad p(x_a|x_{<s})i - p(x_h|x{<s})_i \geq threshold∃xa∈Vcandidate∧i∈(0,N],p(xa∣x<s)i−p(xh∣x<s)i≥threshold
其中:
- xax_axa:被激活的真实 token
- xhx_hxh:在最终层概率分布中最可能的幻觉 token
- threshold∈(0,1)threshold \in (0,1)threshold∈(0,1)
基于上述实验设置,我们进一步探究:
是什么抑制了视觉事实的表达?
我们分析了每一层中 xax_axa 的出现情况,如图 3 所示。结果表明:
- 被激活的真实 token 主要集中在第 20--28 层
- 说明 MLLM 在这些中后层已经能够正确识别图像内容
需要注意的是,不同实验设置会导致 Finding 1 和 Finding 2 中层区间的差异。
然而,在最终输出层中,这些真实 token 被明显抑制。这种抑制可能来源于:
- 输入图像的引导不足
- 或 MLLM 内部固有的知识偏置
为了进一步验证,我们在没有输入图像的情况下生成候选 token 集合 Vcandidate′V'_{candidate}Vcandidate′,该集合仅反映 MLLM 的内在知识。我们计算发现:
- 幻觉 token xhx_hxh 出现在 Vcandidate′V'_{candidate}Vcandidate′ 中的重合率高达 91.05%
这表明:
即使没有视觉信息,MLLM 仍倾向于生成这些"幻觉 token"
3 方法:基于前层知识的动态纠正解码(DeCo)
在分析了 MLLM 生成不存在物体的原因之后,受(Chuang et al., 2024)的启发,我们提出了一种方法:基于前层知识的动态纠正解码(DeCo),用于在推理阶段缓解幻觉问题。DeCo 的整体框架如图 4 所示,主要包括两个部分:
- 动态前层选择(第 3.1 节)
- 基于前层知识的解码纠正(第 3.2 节)
3.1 动态前层选择
候选 token 获取
由于词表空间巨大,为了降低计算开销,我们仅跟踪不同层中**概率排名靠前的 token(候选 token)**的变化。
5 相关工作
5.1 MLLM 幻觉机制
MLLM 中的幻觉问题表现为图像输入与文本输出之间的不一致,这一问题已经被广泛关注(Liu et al., 2024a;Chen et al., 2024g)。
当前关于 MLLM 幻觉机制的研究主要集中在两个方面:
- 不同层中的图像-文本交互机制
- 解码过程中语言模型的先验偏置
一些研究探讨了图像与文本在不同层中的交互作用。例如:
- Grad-CAM(Zhang et al., 2024a)的可视化结果表明:
- 图像-文本交互主要存在于前层(1--11 层)
- 在深层中这种交互明显减弱
- OPERA(Huang et al., 2024)进一步提出了"聚合模式(Aggregation Pattern) ":
- 前层的视觉信息逐渐被聚合到某些锚点 token 上
- 在预测时模型过度关注这些 token,而忽略视觉信息
- 从而导致生成序列中出现较高概率的幻觉
另一方面,也有研究指出:
即使存在视觉信息,MLLM 仍然会受到语言模型先验的强烈影响
例如:
- VCD(Leng et al., 2023)发现:
- 即使输入图像是噪声或不存在
- 模型仍然会生成高置信度答案
→ 表明模型偏向语言先验
- PAI(Liu et al., 2024b)将这一现象称为"文本惯性(Text Inertia) ":
- 由于当前范式将视觉表示映射为文本 token
- 导致推理过程中对图像 token 的利用不足
- 从而引发幻觉
5.2 MLLM 幻觉缓解方法
缓解 MLLM 幻觉的研究主要分为三类方法:
(1)基于训练的方法
一种直观的方法是在训练阶段减少视觉与语言之间的知识差距和数据偏差。
主要包括:
- 构建特定数据集(You et al., 2024;Gunjal et al., 2024;Chen et al., 2024f)
- 对齐训练(alignment training)(Sun et al., 2023;Yu et al., 2023;Chen et al., 2023;Li et al., 2023c)
这些方法可以提升图文对齐效果,但存在明显问题:
- 需要大量标注数据
- 计算成本高
(2)后处理方法
这类方法通过额外步骤对模型输出进行修正,例如使用工具或自反思机制。
代表方法包括:
- LURE(Zhou et al., 2024) :
- 使用人工设计的特征检测幻觉
- 并对生成文本进行修正
- Woodpecker(Yin et al., 2023) :
- 结合专家 VQA 模型对输出进行后编辑
缺点:
- 增加推理成本和延迟
- 需要针对具体任务设计额外流程和 prompt
(3)无需训练的解码方法(Training-free Decoding)
这类方法在推理阶段直接修改解码过程,是当前研究热点。
代表方法包括:
- OPERA(Huang et al., 2024) :
- 识别与幻觉相关的异常注意力模式
- 并基于该模式进行抑制
- VCD(Leng et al., 2023) :
- 指出视觉不确定性会增加幻觉
- 提出对比解码方法进行缓解
- VDD(Zhang et al., 2024b) :
- 提出"事后去偏(Post-Hoc Debias)"
- 在无图像时使各答案得分均匀
- 从而减弱语言先验影响