论文题目:
OPERA: Alleviating Hallucination in Multi-Modal Large Language Models via Over-Trust Penalty and Retrospection-Allocation
论文地址:
https://arxiv.org/abs/2311.17911
代码地址:
https://github.com/shikiw/OPERA
1、背景
从 LLaVA 到 Qwen-VL,从 GPT-4V 到 Claude 3,幻觉(Hallucination)问题一直是当前多模态大模型(MLLM)的重要问题。当前大多数的多模态大模型对于用户提供的图像和提问,容易因为幻觉给出非常离谱的回答,例如说出图像上根本不存在的事物,识别出与图像上物体的颜色、数量和位置关系不符的特征。
而这一现象,在多模态大模型生成较长回答时尤其常见。试想一下,如果将有严重幻觉问题的多模态大模型部署在自动驾驶上,在高速公路上前方无车的情况下,由于模型出现前方有车的幻觉而下令急刹车,将会导致严重的交通追尾事故。
例如 LLaVA-1.5 的 7B 模型在描述图中的食物时,一开始会表达得较为准确,但随着回答越来越长会说出许多“不存在”的事物:
对于多模态大模型中幻觉问题的成因,研究者们至今仍未找到确切答案。为了解决这一问题,近期提出了多种不同的方法。其中一些方法涉及构建额外的训练数据,并将其融入到训练过程中;而另一些方法则依赖于外部知识或强大的模型来进行辅助。
然而,这些方法通常会带来巨大的额外成本,并且许多方法并未对幻觉的机制与由来进行深入分析。因此,人们不禁思考,多模态幻觉的成因究竟是什么?同时,是否存在一种方法,可以在不需要额外知识和训练的情况下轻松解决多模态大模型的幻觉问题呢?
2、分析
为此,中科大等单位的研究人员从可视化模型在推理时的 Self-Attention 权重出发,希望寻找得到一些有趣的结论。他们首先观察到,在模型生成幻觉内容时,最后一层的 Self-Attention 权重大概率会在幻觉部分之前呈现出明显的“柱状”特征,这导致幻觉部分的 Self-Attention 权重表现出一种“过度信赖”的趋势。以多模态大模型 InstructBLIP 为例:
可以清晰地观察到,在幻觉句子出现之前,存在一个 token,其对后续所有 token 都具有较高的注意力权值。通常情况下,这种现象并不合乎常理,因为从输出的回答来看,这个词并不一定包含丰富的语义信息。那么问题来了,这些自注意力图上的“柱状”特征究竟是什么呢?
研究者们分析认为,这种现象可能是多模态大模型在生成较长语句时展现的一种“自动总结”本能。这些“柱状”特征所对应的 token 正是模型推理过程中的 summary token,这一观察与同期在 EMNLP best paper 中 “anchor token” [1] 类似,进一步揭示了大模型内部的运作机制。
由于现有多模态大模型的基座取自大语言模型,其因果语言模型的特点使其在浅层时将前文 token 的信息聚合到 summary token,同时在深层时主要利用 summary token 中聚合的信息来预测整个序列的下一个 token(见下图图 a)。
这一现象非常类似于人类在处理长文本时也经常使用的阶段性总结的习惯,有助于更高效地处理大量信息。那么这样的机制又是如何影响到多模态幻觉的产生的呢?
研究者们先让多模态大模型根据给定的图作出较长的回答,再根据各个 summary token 出现的不同位置将模型的回答划分为不同的子句,并且计算每个子句的 CHAIR 指标来评估子句中出现幻觉内容的程度。CHAIR 值越高代表幻觉程度越严重。
如上图图 b、c,随着序列中 summary token 数量的增多,子句的幻觉程度也在逐渐提升。这说明了在序列中出现越多 summary token 会越容易让模型输出幻觉内容。
对此,研究者们给出了基于信息流的解释:他们认为在生成的文本序列越来越长的同时,通常位于序列前段的 vision tokens 所提供的视觉信息会在 summary token 之间信息流动的过程中逐渐被稀释(因为一个 summary token 很难将序列中所有前文 token 所包含的信息都完整地记录)。
因此,越往后生成的 token 越容易忽视 vision tokens,并“过度信赖”某些 summary tokens,从而产生幻觉内容。研究者们将这一现象描述为 “partial over-trust”,并发现大模型的这种阶段性总结可能是导致幻觉问题的一大“元凶”!同时,研究者们进行了数值统计,在不同模型中都观察到了这一现象与幻觉之间的相关性。
研究者们通过随机采样 100 张图像,并向不同的多模态大模型提出问题。他们发现在所有出现幻觉回答的情况下,有 80%~90% 的回答都呈现出了“过度信赖”现象,进一步证实了这一现象与幻觉之间的伴生关系。
3、方法
为此,研究者们提出了一种名为 OPERA 的解码方法,该方法基于注意力惩罚与回退策略,成功地在不借助外部知识并不引入额外训练的情况下缓解了多模态大模型的幻觉问题。
研究者们希望通过改变解码策略来缓解这种“过度信赖”现象的出现,从而来减轻幻觉问题。在经典解码方法 Beam Search 的基础上,他们首先在解码过程中对每个 token 的输出概率引入了一个额外的惩罚项,来惩罚其出现“过度信赖”的注意力特征。
具体来说,他们首先在自注意力的权重图上划分出一个局部窗口,然后将这些权重在数值进行放大,同时使用列乘法得到一个得分向量,最后选择得分向量中的最大得分作为惩罚得分。这个惩罚得分越大说明出现生成句子中存在“过度信赖”的特征越明显,越可能出现幻觉。
最后,这个惩罚得分的作用会体现在每个序列的 Beam 得分上,得分较低的序列最后将被淘汰。
由于这种“过度信赖”的特征具有“滞后性”,即只有在解码的过程中输出了若干 token 之后才能发现这样的特征。为了解决这种滞后带来的局限性,研究者们还提出了“回退-再分配”的策略。
具体来说,可以计算最近几个 token 的得分向量的最大值下标,并检查该下标连续出现的次数是否大于一定阈值。如果高于阈值,则将当前序列的解码过程回退到这一下标所在 token 的位置,并重新选择词表中概率次高的词(除了之前已经选择的词之外)。
结合所提出的“过度信赖”惩罚与“回退-再分配”策略,研究者们提出一个新的多模态大模型解码方法 OPERA,极大地缓解了模型的尤其是在生成长文的幻觉现象。
4、实验
研究者们在 InstructBLIP,MiniGPT-4,LLaVA-1.5 以及 Shikra 等多种多模态大模型的 7B 模型上进行了测试,在不同维度上进行了统计验证。相比于之前的解码方法,所提出的 OPERA 解码方法在缓解幻觉上均表现出优越的性能。
此外,研究者们还引入了 GPT-4 和 GPT-4V 进行打分测试,在生成内容的准确程度与具体程度上,OPERA 同样也表现出优越的性能。
同时,研究者们还意外地发现 OPERA 能够帮助 LLaVA-1.5 等多模态模型成功在 MME、MMBench 等多模态 benchmark 上涨点。例如,在 LLaVA-1.5 的 7B 模型上的结果如下:
此外,研究者们还给出了 OPERA 的一些具体表现的实例:
总的来说,本文从一个独特的视角解释了现有多模态大模型幻觉产生的原因。作为一种通过改进解码策略来减轻多模态大模型幻觉的方法,OPERA 具有易于在不同模型和架构上部署的特点,同时也激发了更多研究者从机制层面研究和解决多模态大模型的幻觉问题。