论文题目:
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 具有易于在不同模型和架构上部署的特点,同时也激发了更多研究者从机制层面研究和解决多模态大模型的幻觉问题。
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
- 目标:了解AI大模型的基本概念、发展历程和核心原理。
- 内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践 - L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
- 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
- 内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词 - L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用 - L2.4 总结与展望
- L2.1 API接口
阶段3:AI大模型应用架构实践
- 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
- 内容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介绍
- L3.1 Agent模型框架
阶段4:AI大模型私有化部署
- 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
- 内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
学习计划:
- 阶段1:1-2个月,建立AI大模型的基础知识体系。
- 阶段2:2-3个月,专注于API应用开发能力的提升。
- 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
- 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓