Skip to content

OPERA:通过过度信任惩罚与回溯分配缓解多模态大模型幻觉

论文OPERA: Alleviating Hallucination in Multi-Modal Large Language Models via Over-Trust Penalty and Retrospection-Allocation

作者:Qidong Huang, Xiaoyi Dong, Pan Zhang, Bin Wang, Conghui He, Jiaqi Wang, Dahua Lin, Weiming Zhang, Nenghai Yu

机构:University of Science and Technology of China (USTC)、Shanghai AI Laboratory、The Chinese University of Hong Kong (CUHK)

发布时间:2023年10月(CVPR 2024

🔗 arXiv | 代码

分类标签对象幻觉 解码策略 注意力分析 Beam Search Training-Free


一句话总结

发现 MLLM 幻觉与自注意力矩阵中的知识聚合模式(少数 summary token 呈柱状注意力吸引后续所有 token 注意力)高度共现,提出在 Beam Search 解码中引入过度信任 logit 惩罚(列乘积度量聚合强度)和回溯重分配策略(检测到持续聚合时回滚到 summary token 重选),无需额外训练/数据/知识,在 InstructBLIP/MiniGPT-4/LLaVA-1.5/Shikra 上 CHAIRS 平均降低 20%+。


一、问题与动机

1.1 MLLM 幻觉:严重且普遍

多模态大语言模型(MLLM)在图像描述中频繁产生对象幻觉——描述图中不存在的物体、错误的属性或关系。例如 LLaVA-1.5 对一碗燕麦的图片描述中凭空生成了"bottle"、"cup"、"book"等不存在的物体。

1.2 现有方法的代价

方法类型代表局限
训练阶段LRV-Instruction需要大量额外标注数据
后处理Woodpecker依赖外部更强模型(ChatGPT)
外部知识VIGC引入额外模型和知识源

共同缺陷:都引入了显著的额外成本(数据、计算、外部依赖)。

1.3 核心观察:幻觉与"过度信任"注意力模式共现

论文通过可视化自注意力矩阵发现了一个关键现象——partial over-trust(部分过度信任):

  1. 柱状注意力模式:在自注意力矩阵中,某些 token(通常是句号、引号等低信息量 token)会呈现柱状注意力——即后续所有 token 都将大量注意力分配给它们
  2. 这些 token 是 summary token:它们在浅层聚合了前文的关键知识,在深层被后续 token 过度依赖
  3. 幻觉在柱状模式后出现:统计 100 张图片发现,大部分幻觉内容在知识聚合模式出现后的 10 个 token 内开始

这一观察与 NLP 领域的 anchor token 现象一致:LLM 倾向在浅层将信息聚合到少数 anchor token 上,在深层基于这些 anchor 预测下一个 token。

1.4 为什么聚合模式导致幻觉?

MLLM 的视觉 token 通常放在序列开头。随着生成变长:

  • summary token 越来越多
  • 视觉信息在 summary token 间传递时逐渐衰减(单个 summary token 无法记住全部上下文的密集信息)
  • 后续 token 忽略开头的图像 token,转而过度信任距离更近的 summary token
  • 模型基于文本偏差而非视觉内容生成,导致幻觉(如从"road"联想出"cars")

实证验证:将 MLLM 的长回复按 summary token 位置分段,分别计算 CHAIR 分数。结果显示 CHAIR 分数与分段编号呈正相关——越靠后(经过越多 summary token),幻觉越多。


二、核心方法

OPERA 基于 Beam Search 解码,包含两个核心组件:Over-Trust Logit Penalty(过度信任惩罚)和 Retrospection-Allocation Strategy(回溯分配策略)。

2.1 MLLM 生成流程回顾

MLLM 的生成可分为三步:

  1. 输入构造:视觉 token xv={x0,,xN1}N 个)+ 文本 token xp={xN,,xM+N1},拼接为完整序列 {xi}i=0T1T=N+M
  2. 模型前向h=MLLM(xi),再通过词表头 H 得到下一个 token 的概率:p(xt|x<t)=Softmax[H(ht)]xt
  3. 解码:Beam Search 维护 Nbeam 条候选序列,逐步扩展并选择累积得分最高的假设

2.2 Over-Trust Logit Penalty(过度信任惩罚)

核心思想:在 beam score 中引入累积惩罚项,使包含知识聚合模式的候选序列得分降低,从而被淘汰。

Step 1:提取局部窗口注意力。 在最后一层自注意力中,取多头的最大值,裁剪出仅覆盖生成 token 的局部窗口(不包含图像和 prompt token):

Wt1k={wi}i=tkt1,s.t. wi={ωi,j}j=tki

其中 k 是窗口大小,ωi,j 是第 j 个 token 对第 i 个 token 的注意力权重。窗口起始位置满足 tkN+M,确保只关注生成的 token。

Step 2:缩放与列乘积。 将窗口注意力值乘以缩放因子 σ(默认 50),使聚合模式处的注意力值 > 1、弱注意力处 < 1:

Wt1k{wi}i=tkt1,s.t. wi={σωi,j}j=tkt1

上三角补零(因果掩码),然后对下三角做列乘积——对每一列 j,将该列所有非零值相乘。直觉:如果某个 token 被后续很多 token 都高度关注(柱状模式),其列乘积就会非常大。

Step 3:取最大列乘积作为惩罚值。 选择列乘积最大的那一列作为聚合模式的强度度量:

ϕ(ω<t)=i=ct1σωi,c,s.t. c=argmaxtkjt1i=jt1σωi,j

Step 4:融入 beam score。 从每个 beam 的 logit 中取 top-Ncan(默认 5)组成候选集 Y,修改 token 选择概率:

p(xt|x<t)=Softmax[H(ht)αϕ(ωt)]xt,xtY

其中 α=1 是惩罚权重。用大白话说:如果当前候选序列的注意力矩阵中出现了强烈的柱状模式,ϕ 值会很大,所有候选 token 的 logit 都被减去这个惩罚值,使该序列在 beam 竞争中处于劣势。

2.3 Retrospection-Allocation Strategy(回溯分配策略)

问题:惩罚项有滞后性——知识聚合模式需要生成几个后续 token 后才能被观察到,此时幻觉可能已经发生。极端情况下,所有 beam 的候选都已包含幻觉。

核心思想:当检测到持续的聚合模式时,回滚到 summary token 位置,排除之前的选择,重新选择后续 token。

Step 1:收集位置坐标。 对最近 l 个 token(默认 l=k),分别计算各自局部窗口的最大列乘积位置 c,组成位置集合:

C={cc=argmaxtkjzi=jzσωi,j, z[tl,t1]}

Step 2:检查位置重叠。 计算集合 C 中众数 s=Mode(C) 的出现次数:

Noverlap=cC1c=s

如果 Noverlapr(默认 r=15),说明连续多个 token 都指向同一个 summary token xs,聚合模式持续存在。

Step 3:回滚与重选。 将序列回滚到 {x0,,xs},在候选集 Y{xs+1} 中重新选择 xs 之后的 token。

约束条件

  • 回滚位置 s 必须单调不递减(防止无限回滚)
  • 每个位置最多回滚 β 次(默认 5),超过则再向前回滚一步到 xs1

2.4 超参数设置

超参数含义默认值
NbeamBeam 大小5
Ncan每个 beam 的候选数5
σ注意力缩放因子50
α惩罚权重1
k局部窗口大小(论文未明确指定统一值)
r回溯触发阈值15
β最大回滚次数5

所有超参数在四个 MLLM 上统一设置,无需逐模型调优。


三、实验结果

3.1 CHAIR 评估(MSCOCO 500 张图)

长描述(max new tokens = 512):

方法InstructBLIP CSCIMiniGPT-4 CSCILLaVA-1.5 CSCIShikra CSCI
Greedy58.823.731.89.945.014.755.815.4
Nucleus54.624.832.610.748.814.255.615.4
Beam Search55.615.830.69.548.813.950.413.3
DoLa48.415.932.210.047.813.855.815.1
OPERA46.414.226.29.544.612.836.212.1

在 Shikra 上,CS 从 DoLa 的 55.8 降至 36.2(~35% 改进)。

短描述(max new tokens = 64):

方法InstructBLIP CSCIMiniGPT-4 CSCILLaVA-1.5 CSCIShikra CSCI
Greedy30.014.524.28.220.66.222.07.0
Beam Search21.47.223.67.818.85.920.26.4
DoLa22.27.124.28.220.46.320.26.3
OPERA16.66.822.68.214.25.214.25.9

短描述和长描述下均一致优于所有基线。

3.2 GPT-4 辅助评估(VG-100K)

指标含义OPERA vs GreedyOPERA vs DoLa
HSR↓幻觉句子比例~30.4% 改进~15.4% 改进
HWR↓幻觉词比例显著降低显著降低
SPI↑每图句子数略有减少

OPERA 在减少幻觉的同时仅轻微减少输出长度,可能是因为去掉了多余的幻觉内容。

3.3 GPT-4V 辅助评估(MSCOCO 500 张图)

方法InstructBLIP C/DMiniGPT-4 C/DLLaVA-1.5 C/DShikra C/D
Beam Search5.52 / 5.265.29 / 5.065.53 / 5.155.25 / 5.08
OPERA6.26 / 5.276.87 / 5.086.32 / 5.166.29 / 5.26

正确性(C)最高提升 27.5%(MiniGPT-4),详细度(D)基本持平。

3.4 POPE 评估

方法InstructBLIPMiniGPT-4LLaVA-1.5Shikra
Greedy80.058.582.281.1
Beam Search84.470.384.982.5
DoLa83.472.883.282.1
OPERA84.873.385.482.7

POPE 提升边际但一致。论文坦诚指出:POPE 的 Yes/No 回答太短,知识聚合模式不容易出现——OPERA 的优势主要体现在长序列生成中。

3.5 文本质量与通用基准

指标GreedyBeam SearchDoLaOPERA
PPL112.7211.1112.8911.67
PPL210.278.8910.409.31
Grammar↑9.589.549.319.54
Fluency↑9.018.958.898.93
基准GreedyBeamDoLaOPERA
MMBench64.364.463.864.4
MME1510.71504.31480.11515.4

OPERA 不仅不损害文本质量和通用能力,甚至在 MME 上略有提升。


四、局限性与未来方向

OPERA 基于 Beam Search 解码,相比 greedy 解码速度更慢(Nbeam=5 意味着约 5× 前向计算量)。对实时应用不够友好。

4.2 短序列效果有限

POPE 实验表明,对于简短回答(Yes/No),知识聚合模式不易出现,OPERA 的优势不明显。核心收益集中在长文本生成场景。

4.3 仅验证 7B 模型

所有实验均在 7B 级别模型上进行。更大模型的注意力模式可能不同,OPERA 的有效性和超参数泛化性有待验证。

4.4 缩放因子的敏感性

σ=50 的设定是为了让聚合模式处的注意力值经缩放后 > 1,但不同模型的注意力分布差异可能需要不同的 σ。论文虽然在 4 个模型上统一使用 σ=50,但更广泛的泛化性未知。


五、个人思考

5.1 与项目内其他幻觉缓解工作的对比

方法干预阶段核心机制额外成本长序列优势
OPERA解码时注意力柱状模式检测 + beam 惩罚 + 回滚Beam Search(~5× 前向)
HALC解码时FOV 对比 + 视觉匹配 beam search多次前向 + 外部检测器
VisFlow推理时双层注意力干预(token + head 级)几乎零开销
DLC解码时CLIP 探针动态校准 logitsCLIP 前向
HIME推理前模型编辑 MLP 权重零推理开销
MemVR推理时FFN key-value 视觉回溯1.04× 延迟
SENTINEL训练时句子级 C-DPO训练成本
CSR训练时CLIP 校准自奖励 + 迭代 DPO训练成本

OPERA 的独特价值在于它从注意力机制的内部视角揭示了幻觉的成因,而非仅仅从输出端修正。这一观察启发了后续大量工作(如 VisFlow 对注意力头的分类分析)。

5.2 "Summary Token"观察的深远影响

OPERA 发现的 summary token / anchor token 现象后来被 NLP 社区广泛验证:

  • Attention Sink(StreamingLLM)发现第一个 token 总是获得大量注意力——这也是一种聚合模式
  • VisFlow 进一步将注意力头分为 Visual Sink Head / System Prompt Head / Text Following Head,并发现抑制后两者可以缓解幻觉

OPERA 可以说是最早将这一注意力现象与 MLLM 幻觉建立因果联系的工作之一。

5.3 列乘积度量的巧妙之处

用列乘积(而非列求和或列最大值)来度量聚合模式强度是一个精巧的设计:

  • 求和无法区分"一个 token 被所有后续高度关注"(柱状)和"一个 token 被少数后续极度关注"(尖刺)
  • 最大值丢失了"持续性"信息
  • 乘积要求该 token 被连续多个后续 token 都有一定关注度,才能产生大值——这恰好是柱状模式的定义

5.4 回溯策略的局限

回溯策略虽然直觉合理,但有一个潜在问题:回滚后重新选择的 token 仍然基于同一个模型的同一组注意力权重——如果模型本身的知识偏差很强(如"road"→"cars"),排除一个候选后选出的下一个候选可能同样是幻觉。这也解释了为什么 OPERA 在 POPE 这种简单场景下提升有限。


参考

  • DoLa(Chuang et al., 2023):层间对比解码缓解 LLM 幻觉——OPERA 的基线之一,DoLa 从"层"维度寻找对比信号,OPERA 从"注意力模式"维度检测幻觉
  • Anchor Token(Wang et al., 2023):NLP 中发现 LLM 将信息聚合到少数 anchor token 的现象——OPERA 的核心观察与之一致
  • HALC(Chen et al., 2024):自适应 FOV 对比解码——另一种解码阶段方法,从视觉上下文角度缓解幻觉,与 OPERA 从注意力模式角度互补
  • VCD(Leng et al., 2023):视觉对比解码,添加噪声视觉输入做对比——比 OPERA 更简单但效果也更弱
  • StreamingLLM(Xiao et al., 2023):发现 Attention Sink 现象——与 OPERA 的 summary token 观察密切相关