引言

想象一下,你让 AI 描述一张足球场的照片。模型自信地回答: “一名身穿绿色球衣的球员正将球踢向球门。”这句话听起来很完美,除了一点问题: 照片里根本没有球。

这种现象被称为幻觉 (Hallucination) 。 尽管大型视觉语言模型 (LVLMs) 在理解图像和文本方面能力惊人,但它们经常编造出根本不存在的物体、属性或关系。对于日常使用来说,这很烦人。而对于医学影像分析或自动驾驶等关键应用来说,这则是危险的。

在这篇文章中,我们将深入探讨一篇题为 “Octopus: Alleviating Hallucination via Dynamic Contrastive Decoding” (Octopus: 通过动态对比解码缓解幻觉) 的引人入胜的研究论文。研究人员提出了一种新颖的框架,不再将幻觉视为单一问题,而是一种动态的、不断变化的挑战。他们没有使用“一刀切”的解决方案,而是引入了“Octopus (章鱼) ”——一种能在运行中自适应切换策略的方法,以保持模型基于现实。

“一刀切”的问题

要理解为什么 Octopus 是必要的,我们首先需要看看研究人员目前是如何对抗幻觉的。通常有两大流派:

  1. 重训练 (Retraining) : 这涉及整理高质量的数据集并对模型进行微调,使其更加诚实。虽然有效,但这既昂贵又耗时,而且计算量巨大。
  2. 对比解码 (Contrastive Decoding, CD) : 这是一种事后方法 (在训练后应用) ,用于在生成过程中操纵模型的输出概率。它通常将模型的标准输出与“失真”输入的输出进行比较,以消除偏差。

图 1. 不同缓解幻觉方法的范式比较。(a) 重训练方法。(b) 对比解码。(c) Octopus。

图 1 所示,重训练 (a) 更新模型权重,而对比解码 (b) 比较来自原始输入和失真输入的 Logit 分数。该论文介绍了 Octopus (c) , 它增加了一个决策层来动态选择最佳策略。

静态策略的局限性

对比解码 (CD) 一直是一种流行的修复方法,因为它不需要重新训练庞大的模型。目前存在几种特定的 CD 策略:

  • VCD (视觉对比解码) : 向图像添加噪声,以阻止模型过度依赖语言先验 (例如,不管图像内容如何,只要看到“沙发”就假设后面跟着“客厅”) 。
  • M3ID: 遮蔽文本以迫使模型更多地观察图像,减少视觉信息丢失。
  • AVISC: 使用“盲 Token”来最小化注意力偏差。

然而,Octopus 的作者提出了一个关键问题: 一种策略对所有图像都有效吗?

他们使用现有的这些策略进行了诊断实验。结果如下图所示,非常说明问题。

图 2. 不同 CD 方法在生成任务和判别任务中的有效样本比例。

图 2 揭示了一个重要的见解: 现有的 CD 策略是互补的,而不是多余的。

  • 在 AMBER 数据集 (生成任务) 中,大约 48% 的样本仅通过一种特定策略得到了改善。
  • 只有大约 10% 的样本从所有策略中受益。

这意味着,如果你只选择一种方法 (例如 VCD) 并将其应用于所有内容,你将无法修正——甚至可能恶化——很大一部分数据。

幻觉是逐个 Token 发生的

研究人员进行了更深入的研究。他们发现幻觉不仅仅是一个“图像级”的问题;它是一个“Token 级 (词元级) ”的问题。在 AI 生成的同一个句子中,一个词可能是因为语言偏差而产生的幻觉,而下一个词可能是因为注意力偏差而产生的幻觉。

图 4. Token 级幻觉定性分析,展示了样本中的混合成因。

图 4 中,请观察注意力图。单词 “sitting” (坐) 是由注意力偏差 (策略 3) 触发的,而 “lying” (躺) 则是由视觉信息丢失 (策略 2) 引起的。

这一发现是 Octopus 方法的基础。如果幻觉的成因是逐词变化的,那么解决方案也必须逐词变化。

Octopus 框架

Octopus 框架设计为置于现有的 LVLM (如 LLaVA) 之上。它不会改变 LVLM 的权重。相反,它充当指挥家,决定为生成的每个 Token 使用哪种解码策略。

隐喻: 眼睛和触手

作者使用生物学隐喻来描述该架构:

  • 眼睛 (Eye) : 一种感知当前状态并检测可能发生何种幻觉的机制。
  • 触手 (Tentacles) : 各种可用于修复问题的对比解码策略。

图 5. 我们方法的概览。Octopus 由决策 token “eye” 及其触手 (策略) 组成。

图 5 所示,工作流程包括输入图像和文本。一个“Eye” Token 处理隐藏状态,然后做出决策以激活特定的“触手” (策略 k) 来修正输出。

分步架构解析

让我们分解一下 Octopus 在生成过程中如何工作的数学原理和机制。

1. 标准 LVLM 流程 通常,LVLM 基于图像 \(v\)、查询 \(q\) 和之前的单词 \(y_{

Equation 2 Equation 3

2. 对比解码 (CD) 基础 在标准的 CD 方法中,模型会从原始输入的概率分布中减去“失真”输入 (如模糊图像) 的概率分布。这会惩罚模型基于偏差进行猜测的行为。

Equation 5

3. Octopus “眼睛” (检测) 核心创新是一个小型的基于 Transformer 的模块,表示为 \(O_{\phi}\)。在每一步 \(t\),它接收 LVLM 的隐藏状态 (视觉、查询和历史记录) 以及一个称为 eye 的可学习 Token。

Equation 10

这个 eye Token 聚合了所有需要的上下文,以决定模型当前是否正在产生幻觉以及原因。

4. 决策 (行动) eye Token 的输出通过多层感知机 (MLP) 传递,以创建一个动作向量。

Equation 11

该向量表示选择特定策略的概率。模型创建一个“独热 (one-hot) ”向量 \(a_t\) 来为这个特定时刻选择最佳策略 (或“触手”) 。

Equation 12

本文中可用的动作包括:

  1. VCD (针对语言先验)
  2. M3ID (针对视觉丢失)
  3. AVISC (针对注意力偏差)
  4. Null (什么都不做 / 标准生成)

优化 Octopus

这里存在一个重大挑战: 我们没有这方面的标签。 没有任何数据集会注明: “对于第 103 号图像的第 5 个单词,你应该使用 VCD。”

为了解决这个问题,研究人员使用了直接偏好优化 (Direct Preference Optimization, DPO)

DPO 不需要显式标签,而是允许模型从偏好中学习。研究人员使用不同的随机策略组合生成多个输出。然后,他们测量这些输出的幻觉率 (使用 CHAIR 等指标) 。

  • 正样本 (\(A^+\)): 产生真实描述的策略序列。
  • 负样本 (\(A^-\)): 导致幻觉的序列。

Octopus 被训练为最大化选择正样本中使用的策略的可能性,并最小化负样本的可能性。

Equation 13

这使得“眼睛”能够直观地学习哪种情况需要哪种“触手”,而无需人类手动标记策略。

实验与结果

这种动态切换真的有效吗?作者在多个基准测试中将 Octopus 与最先进的方法进行了对比测试。

生成任务 (图像描述)

主要测试是生成任务 : 要求模型描述图像。使用的指标包括 CHAIR (Caption Hallucination Assessment with Image Relevance) ,分数越低越好,因为这意味着幻觉更少。

表 1. 生成任务中最先进方法的比较。

表 1 显示了在 AMBER、Object HalBench 和 MMHalBench 数据集上的结果。

  • 性能: Octopus 在所有指标上均实现了最低的幻觉率 (CHAIR 分数) 。
  • 比较: 它显着优于 VCD 和 AVISC 等单一策略方法。
  • 幅度: 在 AMBER 数据集上,Octopus 将 CHAIR 分数从 8.0 (Base LLaVA) 降至 6.1 , 大幅减少了编造内容。

判别任务 (是/否问题)

他们还测试了判别任务 (例如 POPE 基准) ,即模型对“图像中是否有餐桌?”这类问题回答“是”或“否”。

表 2. 判别任务中最先进方法的比较。

表 2 所示,Octopus 实现了比任何单一策略都高的准确率和 F1 分数。这证明了动态切换策略有助于模型更准确地验证事实。

为什么不直接随机组合?

你可能会想,复杂的“眼睛”机制是否真的必要。我们能不能直接随机选择策略或者一次性组合它们?

表 3. 消融实验展示了智能组合策略的有效性。

表 3 通过消融实验提供了答案:

  • 第 2-5 行: 使用成对的策略有帮助,但不如使用所有策略。
  • 第 6 行 (Octopus): 完整的 Octopus 框架产生了最佳结果 (在此特定消融运行中 CHAIR 分数为 4.8) 。这证实了智能选择优于随机选择或静态组合。

定性证明

最后,眼见为实。让我们回到足球的例子。

图 6. 不同 CD 策略与我们的方法生成的描述对比。

图 6 中,我们看到了足球运动员图像的输出结果:

  • LLaVA (Base): 幻觉出了一个“足球” (红色文字) 。
  • VCD / M3ID / AVISC: 都在继续幻觉出球或其他细节,因为它们特定的偏差修正并不适合这种特定的视觉混淆。
  • Octopus: 正确识别出球员正在“踢 [动作]… 在球场上”,但至关重要的是,它没有幻觉出球。它准确地描述了场景。

结论

“Octopus” 论文展示了我们处理大型视觉语言模型错误方式的一个重大转变。通过承认幻觉是混合的——由语言先验、视觉丢失和注意力偏差混合引起——研究人员摆脱了静态解决方案。

主要结论:

  1. 幻觉是动态的: 错误的成因因样本而异,因词而异。
  2. Octopus 解决方案: 一个轻量级模块 (“眼睛”) 可以学习预测这些错误并实时分配正确的修复方案 (“触手”) 。
  3. 易于部署: 因为它使用对比解码和一个小的附加模块,它在提高性能的同时无需承担重新训练基础模型的巨大成本。

该框架具有高度的可扩展性。随着研究人员发明新的解码策略 (新的“触手”) ,它们可以简单地添加到 Octopus 的工具包中,这使得 LVLM 在未来可能变得更加可靠。