多模态大模型幻觉
Detecting and Preventing Hallucinations in Large Vision Language Models
- 提出了一个数据集M-HalDetect,是一个新的幻觉检测数据集,专注于对详细图像描述进行子句级别的细粒度标注。
- 提出了DPO方法变种(FDPO)使用M-HalDetect数据集优化InstructBLIP
- 使用M-HalDetect构建的奖励模型采用best-of-64拒绝采样降低InstructBLIP模型幻觉,并能泛化到其他LVLM上
- 训练得到的奖励模型能够有效地估计幻觉率,到达和人类相当的水平。
相较于前序工作,除了关注物体存在幻觉,重点关注物体属性和相对关系。
发现使用人类偏好在使大语言模型(LLM)更好地符合人类期望方面更为有效(Stiennon 等人,2020),但在减少幻觉(hallucination)方面效果不一。Ouyang 等人(Ouyang 等人,2022)发现,RLHF 有助于较小的(6B 参数)语言模型降低其幻觉率,而在较大模型(175B 参数)中则出现相反的效果。
需要补充的知识:DPO算法,拒绝采样
VIGC: Visual Instruction Generation and Correction
旨在解决视觉微调指令数据集的生成问题,提出了名为VIGC的工作流
Mitigating Hallucination in Large Multi-Modal Models via Robust Instruction Tuning
类别:基于RL的方法
首次成功地将强化学习人类反馈(RLHF) 应用于大型多模态模型(LMMs),旨在解决视觉-语言模型中的“幻觉”问题——即模型生成与图像内容不符的文本。作者提出了 LLaVA-RLHF 模型,并引入了一种名为 Factually Augmented RLHF (Fact-RLHF) 的新算法来增强奖励模型,显著提升了模型在事实准确性和减少幻觉方面的表现。
IBD: Alleviating Hallucinations in Large Vision-Language Models viaImage-Biased Decoding
类别:基于视觉对比解码和调整注意力权重矩阵
研究团队通过构建图像偏置模型与原始模型进行对比解码,放大与图像内容高度相关的正确信息,同时抑制因过度依赖文本导致的错误。该方法无需额外训练数据,仅通过调整注意力权重矩阵结构实现,参数开销极低。实验表明,IBD在多个评估指标上显著优于现有方法,且能动态适应不同词汇类型。研究还揭示了内容词与功能词在解码中的差异性处理需求,并提出动态调整机制以应对预测相似度过高的情况。通过COCO数据集的统计分析,验证了CD分数与正确词元的强相关性,同时发现图像偏置幻觉现象的存在,为未来研究指明方向。
ICD:Mitigating Hallucinations in Large Vision-Language Models with Instruction Contrastive Decoding
类别:基于视觉对比解码
如果在给模型的指令前面加一个****干扰前缀(比如“你是一个混乱的目标检测器”或“你只关注形状颜色不识别具体物体”),会让模型更容易产生幻觉。换句话说,这种“带误导的指令”会加大模型在图文匹配上的不确定性,从而让它更爱瞎编。
既然“干扰指令”能让模型更容易产生幻觉,那我们是不是可以****反过来用这个现象?
设计了一个****对比解码的方法:
- 让模型同时看****正常指令和干扰指令下的输出概率分布
- 在正常分布中挑出那些在干扰分布中概率很低的词,这些词更可能是真实反映图片内容的
- 通过公式把干扰带来的虚假成分“减掉”,让最终生成的文本更贴近图像事实
- 还加了一个“合理性约束”,避免把本来正确的高置信度答案误删
实际上是换皮VCD,VCD通过模糊图像放大幻觉,ICD通过构造干扰指令放大幻觉。
那么是否能够放大幻觉的方法都能用这种思路?
Mitigating Object Hallucination in Large Vision-Language Models via Image-Grounded Guidance
类别:引导解码
MARINE 是一个****不需要额外训练、也不用调用外部 API 的框架,它直接在模型生成答案的时候,引入来自“图像级视觉模型”的信息,让模型更专注于真实看到的内容。
具体步骤:
- 用现成的目标检测模型(比如 DETR、RAM++)从图像里找出存在的物体,并转成文字描述。
- 把这些检测到的物体信息,作为额外的“指导语”加到输入里,让模型在生成时参考。
- 在生成每个词的时候,把“原本的生成概率”和“加了视觉指导后的概率”按一定比例融合,控制这个比例的参数叫 ****guidance strength (γ)。 γ=0 → 完全按原模型来 γ=1 → 完全按带视觉指导的生成 0<γ<1 → 两者结合,既保留原模型的能力,又减少胡编
思路类似于Diffusion模型的CFG生成。
Seeing is Believing: Mitigating Hallucination in Large VisionLanguage Models via CLIP-Guided Decoding
类别:引导解码方法
核心:在模型生成每一句话时,用 CLIP 去检查这句话和图像是否匹配,把匹配度作为评分的一部分。
具体做法:
- 在生成过程中保留多个候选句子序列(类似“多路径选择”)。
- **用 **综合评分 选最好的:一部分来自模型自己的概率,另一部分来自 CLIP 的匹配度。
- 这样模型会更倾向于选那些和图像内容一致的描述,减少胡编乱造。
优点:
- 不需要重新训练模型,直接用在推理阶段。
- 能显著减少幻觉,同时基本保持生成质量。
MLLM CAN SEE? DYNAMIC CORRECTION DECODINGFOR HALLUCINATION MITIGATION
类别:引导解码
发现:
在 MLLM 的****前几层(靠近输入的层),其实已经正确识别了图里的物体,说明它并不是完全“瞎”的。
但到了****后面的层,模型更倾向于用自己原本学过的语言知识去“补”或“改”结果,把正确的视觉信息压制了,于是就出现了幻觉。
**也就是说:**它看到了,但被自己的“知识惯性”给盖住了。
跟踪每个 token(词)的概率变化,发现: 正确反映图里内容的词,在前面的层概率挺高,但到后面会突然降低。 而那些“幻觉词”,在最后几层反而概率变高。
更夸张的是,即使不给模型看图片,它也会用语言知识“编”出很多幻觉答案,而且和它在有图时编的很相似。
**这说明:**MLLM 的语言部分太强,会盖住图像的真实信息。
DeCo核心思想是:在生成最终答案时,不仅看最后一层的输出,还参考前面某几层的判断。
具体做法:
- 动态选层:在中间某些层(比如第 20~28 层)里,找那些在候选词里概率最高的 token,认为它更可能是正确的。
- 软性融合:用这个选出来的层的信息,去调整最后一层的结果,让正确信息的概率提高,同时尽量不破坏原来生成的自然性。
M3ID: Multi-Modal Hallucination Control by Visual Information Grounding
**作者用一个叫 PDM(视觉提示依赖度的指标来衡量模型是否还依赖图像,发现:
- 一开始模型很依赖图像;
- 随着生成的词越来越多,它越来越不关注图像,幻觉就多了。
**这种现象叫 **“条件稀释” 或 “记忆消退”。
为了不让模型“忘掉”图像,作者提出一个方法:
- **在生成每个词的时候,比较 **有图像条件 和 没图像条件 下模型对这个词的概率差异。
- 如果差异大,说明这个词更依赖图像,就优先选它。
- 这个差异会随生成长度逐渐加强,以对抗“记忆消退”。
他们给这个方法起名叫 ****M3ID(多模态互信息解码):
- 推理阶段就能用,不需要重新训练模型;
- 计算量很小,只是每次要多算一次“没有图像”的预测概率。
**另外,如果有条件训练模型,还可以把 M3ID 和 **DPO(直接偏好优化) 结合,让模型在训练中学会更依赖图像,减少幻觉。
在标准的图像描述(captioning)和视觉问答(VQA)任务上测试:
- 在 LLaVA 13B 模型上,M3ID 能把描述中幻觉对象的比例减少 25%,DPO+M3ID 能减少 28%。
- 在 POPE 问答基准上,准确率分别提高 21% 和 24%。
- 而且不会明显影响语言流畅性,也不会让描述变短、漏掉太多正确信息。
和其他无训练方法(如 PMI、对比解码)相比,M3ID 在长文本生成中效果更好,因为它能持续对抗“记忆消退”,而不是只在开头有用。
Woodpecker: Hallucination Correction for Multimodal Large Language Models
Woodpecker 是一种****不需要重新训练的方法,它像啄木鸟修树一样,对已经生成的文本进行“诊断 + 修复”。它的流程分为 5 步:
- 提取关键概念:从生成的描述里找出主要物体,比如“大象”“蓝色包”。
- 生成问题:针对这些物体提问题,比如“图里有几只大象?”、“包是什么颜色?”
- 视觉知识验证:用现成的视觉模型(目标检测、VQA)去回答这些问题,得到事实依据。
- 生成视觉知识库:把问题和答案整理成结构化的信息,比如“有一只大象”、“有一个蓝色包”、“有两个轮胎”。
- 幻觉修正:用这些信息去修改原描述,让它跟图片一致,并且在提到物体时附上它在图中的边界框坐标,方便核对。
Reducing Hallucinations in Vision-Language Models via Latent Space Steering
VTI 的核心思想是:
- 先算好“方向”
用少量样本,算出在“加噪声 → 特征平均”这个过程中,特征的变化方向,这个方向代表了“更稳定”的特征该往哪走。 - 推理时直接“推一把”
新来的图像,在特征进入语言模型前,把它的特征按这个方向调整一下,让它们更接近“稳定版”,这样语言模型就不那么容易脑补。 - 同时,他们还针对****语言部分做了类似处理,让语言模型在生成时更依赖图像信息,而不是自己乱猜。
VOLCANO: Mitigating Multimodal Hallucination through Self-Feedback Guided Revision
- 第一步:像普通多模态模型一样,根据图像和问题生成一个初始回答。
- 第二步:用同一个模型,根据图像、问题和初始回答,生成一段反馈,说明哪里可能有问题。
- 第三步:再用同一模型,根据图像、问题、初始回答和反馈,生成修订后的新回答。
- 第四步:让模型自己比较原回答和新回答,决定哪个更好,如果新回答好,就继续循环这个过程,最多几轮。
- 这样,一个模型就能完成“答—评—改—选”整个流程,不需要额外的专门模块。
VORD: Visual Ordinal Calibration for Mitigating Object Hallucinations in Large Vision-Language Models
VORD 的目标就是让模型的概率更符合视觉事实,从而减少幻觉。它有两种形式:
(1)VORD 解码(免训练版)
- 在推理时,动态生成一张修改过的图像(比如加噪声、混合两张图)。
- 比较原图和修改图的词预测概率,只保留那些在原图中概率明显高于修改图的词。
- 用一个自适应的“相似度边界”来决定差异是否足够大,以避免误杀正确词。
- 好处:不需要重新训练模型,直接替换解码策略即可。
(2)VORD 损失(可训练版)
- 在训练过程中加入一个额外的损失函数,惩罚那些在修改图上概率反而更高的词。
- 损失函数是凸的,利于优化。
- 可以和普通的交叉熵损失一起用,让模型既学会生成正确的词,又保持概率分布的序数关系。
Mitigating Hallucinations in Large Vision-Language Models by Adaptively Constraining Information Flow
**作者发现,幻觉并不是偶然,而是因为模型在处理视觉信息时,**过度依赖那些无关的特征,并且对这些特征过于自信。
具体来说,模型会把图像编码成一组“软视觉标记”(soft visual tokens),然后映射到语言模型的词嵌入空间。如果映射后的相似度分布很“尖锐”(sharp),说明模型对某些词特别有信心,哪怕这些词对应的物体其实不在图中。这种过分的信心就导致了幻觉。
**作者提出了一种叫 **ADAVIB 的方法,用来缓解这种过信心的问题。它的核心思想是:
- 压缩无关信息
借鉴信息瓶颈(Information Bottleneck)的思想,引入随机噪声,让模型在训练时学会忽略那些不重要的视觉特征。这样,映射后的视觉标记就不会被无关特征主导。 - 自适应控制噪声量
**不同的样本需要的噪声量是不同的。作者设计了一个基于****熵(entropy)**的策略:- 如果相似度分布的熵很低(分布尖锐),说明模型可能过拟合到某些无关特征,这时就加大噪声,强制压缩掉这些信息。
- 如果熵很高(分布平滑),说明模型比较不确定,这时减少噪声,保留更多信息用于预测。
这种方法的好处是****不需要改动模型的其他部分,只需要微调视觉-语言投影器(vision-language projector),计算开销小。
Mitigating Object Hallucinations in Large Vision-Language Models with Assembly of Global and Local Attention
AGLA = 全局 + 局部注意力结合的方法
它不是重新训练模型,而是****在生成答案时,用一种巧妙的方式让模型同时利用两种信息:
- 原始图 → 提供全局信息
用于保持对整体场景的理解,这样生成的回答不会失去大方向。 - 增强图(经过处理的图) → 提供局部信息
通过一个叫 **IPM (Image-Prompt Matching) 的模块,让模型找出和当前问题最相关的区域,并屏蔽掉无关的背景干扰**,只保留“有用的部分”。
然后,在最终选词时,把这两种信息融合起来,让模型既知道“整张图在讲什么”,又知道“现在问题最关心哪一块”。
MITIGATING DIALOGUE HALLUCINATION FOR LARGEVISION LANGUAGE MODELS VIA ADVERSARIAL IN-STRUCTION TUNING
解决的是对话幻觉问题。不是我们的研究对象。
Attention Hijackers: Detect and Disentangle Attention Hijacking in LVLMs for Hallucination Mitigation
- 传统观点认为,模型出现幻觉是因为****没认真看图里的信息。
- **但作者发现,除了“没看够图”,还有一个新原因:**有些输入指令的词语会“抢走”模型的注意力,让它死盯图里不重要的地方,忽略了真正的目标。
- 这些捣乱的指令词被作者称为 ****“注意力劫持者” (Attention Hijackers)。
- 结果就是,模型在描述图像时,会错误地添加不存在的东西,比如本没有的桌子、椅子。
- 在模型逐字生成答案的过程中,每个新生成的词都会受到之前所有词的影响。
- 某些指令词会让模型反复把注意力放在图的某块区域,比如总盯着海报背景,而忽略主体(比如滑雪者和建筑)。
- 因为模型会缓存之前注意力的分布,这些“劫持者”会持续影响后续词的生成,让错误不断延续。
- 这就像有人一直指错方向,后面的人就都跟着走偏了。
**作者提出了一个叫 **AID(Attention Hijackers Detection and Disentanglement) 的方法,分三步走:
- 检测劫持者
- 计算哪些指令词在生成过程中,对图像注意力的干扰最大。
- 越能“带偏”模型视线的词,越可能是劫持者。
- 分离劫持者的影响
- 在生成时,屏蔽掉这些劫持者的视觉信息,让它们不再影响模型看图的注意力。
- 这样模型就能更多关注正确的区域。
- 再平衡
- 防止一刀切地屏蔽太多信息,导致正常指令词的作用也被削弱。
- 比较指令词和图像本身对注意力的贡献,只在确实有害时才屏蔽。
特点:
- 不需要重新训练模型
- 即插即用,可以和各种 LVLM 结合
- 在多个模型和任务上都能减少幻觉
Attention Reallocation: Towards Zero-cost and ControllableHallucination Mitigation of MLLMs
作者从自注意力机制的角度分析,把输入序列分成四类 token:
- 系统 token
- 图像 token
- 指令 token
- 已生成的历史输出 token
他们发现两个关键现象:
- 注意力分配不合理
随着生成的历史输出变长,模型对历史输出 token 的注意力越来越多,对图像 token 的注意力越来越少。这样模型就越来越依赖语言经验,而不是当前图像信息。 - 特征分布差异
图像 token 和文本 token 的特征分布差距很大,如果模型主要依据历史输出特征来预测下一个词,就容易产生和图像不符的幻觉。
AttnReal 的核心思想是****重新分配注意力,让模型更关注图像信息,减少被历史输出“带偏”。
方法分两步:
- 回收注意力
- 找到历史输出中那些“注意力汇聚点”(attention sinks),即获得异常高注意力但语义贡献不大的 token。
- 降低这些 token 的注意力值(用一个缩放因子 α 控制强度)。
- 重新分配注意力
- 把回收的注意力平均分配给所有图像 token,让它们对最终特征的影响更大。
这样做的好处:
- 不增加额外推理步骤,计算开销几乎为零。
- 可调节强度(α 值),在****减少幻觉和保持整体性能之间灵活平衡。
- 能直接套用到不同的 MLLM 和解码策略上。
Don’t Miss the Forest for the Trees: Attentional Vision Calibration for Large Vision Language Models
- 现在的 LVLM 很强大,可以根据图片和文字问题生成描述或答案。
- **但它们有一个通病:**会过度关注图片里一些其实没啥用的区域(比如背景、重复图案),而忽略真正重要的物体。
- 作者把这些被模型“盯死”的、但信息不相关的区域叫 ****“盲 token”(Blind Tokens)。
- 因为模型把太多注意力放在这些“盲 token”上,就容易生成和图片不符的内容,这就是“幻觉”。
📌 例子:
- 问:“图里有胡萝卜吗?”
即使图片是纯色背景,没有胡萝卜,模型也会盯着某块背景高亮,然后可能错误地答“有”。
发现:盲 token 的特点
- 在纯色、无物体的图片中,模型仍然会把注意力集中在少数几个 patch 上。
- 在真实图片中,盲 token 经常和真实物体位置不一致,只有约 3.7% 的盲 token 与物体重合。
- 如果去掉盲 token,模型预测几乎不变;但如果去掉非盲 token,预测就崩了——说明真正有用的信息在非盲 token 中。
这是作者提出的****免训练、即插即用的方法,核心思想是:
- 找盲 token
- 分析模型各层的注意力分布,挑出那些被过度关注的图片 token。
- 对比解码
- 分别用“全部 token”和“去掉盲 token”的两种输入,让模型生成两套预测分数。
- 在最终选词时,用公式把盲 token 的影响压低,让非盲 token 的作用更大。
这样改完之后,模型就不容易被无关背景带偏,能更准确地根据图片内容回答。
BACON: Improving Clarity of Image Captions via Bag-of-Concept Graphs
BACON 把描述拆成****结构化的元素,类似一个“概念包图”(Bag-of-Concept Graph),包括:
- 整体描述
- 图像风格(写实、油画等)
- 主题(城市交通、乡村风景等)
- 背景全局描述
- 前景全局描述
- 物体清单(每个物体单独列出来)
- 类别(人、车、建筑…)
- 前后景位置
- 详细描述(外观、动作)
- 颜色信息
- 物体之间的关系
- **比如 **
<火车> [行驶在] <轨道> <桥> [横跨在] <河流>
- **比如 **
这样做的好处:
- 信息分离:模型可以直接提取某个物体或关系的描述,不用在一大段文字里找。
- 结构化:可以用 JSON 字典等形式保存,方便程序读取。
- 更完整:不容易漏掉细节。
**用 GPT-4V + BACON 方法标注了 **10万张图片,叫做 ECO 数据集。
**然后用这些数据微调了一个 LLaVA 模型,让它也能生成 BACON 风格的描述,叫做 **LLaVA(BACON)-CAPTIONER。
这样就不必每次都用昂贵的 GPT-4V 了。
Cantor : Inspiring Multimodal Chain-of-Thought of MLLM
它的核心思想可以简单理解为:
- 先看图再想计划
- 传统方法可能只根据文字问题就直接去查资料或算答案,但这样容易“脑补”错,因为没结合图像信息。
- Cantor 在决定怎么解决问题之前,会先让模型仔细看图,把图像和文字一起分析,生成一个****带解释的行动计划,就像人先观察再决定怎么推理。
- 一个模型扮演多个专家
- 它给模型分配了四个“虚拟专家”身份:
- TextIntel Extractor:专门从图片里提取文字信息。
- ObjectQuant Locator:数图中的物体、比较数量、看位置。
- VisionIQ Analyst:回答关于图像内容的各种问题。
- ChartSense Expert:分析图表里的数据。
- 在具体执行时,Cantor 会让同一个 MLLM 按需要切换成不同专家,直接给出高层次结论,而不是只返回低层原始数据(比如坐标、颜色)。这样减少后续整理信息的工作量。
- 它给模型分配了四个“虚拟专家”身份:
- 两步走流程
- 第一步:决策生成
- 模型先根据图像和题目,明确要用的专家、具体任务和理由。
- 第二步:执行与综合
- 用对应专家身份去完成子任务,得到答案片段。
- 最后把所有信息和推理整合成最终答案。
- 第一步:决策生成
Mitigating Hallucinations in Multimodal Spatial Relations through Constraint-Aware Prompting
**解决的是 **多模态大模型(LVLM)在空间关系推理上的“幻觉”问题,也就是模型经常会错误地判断图像中物体的位置或空间布局。
**设计了一个叫 **约束感知提示(Constraint-Aware Prompting) 的框架,不需要重新训练模型,只通过改进提示词,就能让模型的空间推理更准确。
具体用了两种约束:
- 双向约束(Bidirectional Constraint)
- 让模型同时分析“A 在 B 的某方位”和“B 在 A 的某方位”
- 这样能检查前后是否一致,减少方向说反的情况
- 例如:先看“手机在卡片架的哪边”,再看“卡片架在手机的哪边”
- 传递性约束(Transitivity Constraint)
- 引入第三个参考物体 C
- 先分析 A 和 C、B 和 C 的关系,再推断 A 和 B 的关系
- 如果 A 在 C 左边,B 也在 C 左边,那 A 和 B 就可能是并排的,不会乱猜
- 组合约束(Combined)
- 把上面两个约束一起用,按 AC → BC → BA → AB 的顺序分析
- 结果比单独用任何一个都好
CATCH: Complementary Adaptive Token-level Contrastive Decoding to Mitigate Hallucinations in LVLMs
CATCH 基于****信息瓶颈理论:保留对当前预测有用的信息,去掉无关信息,让视觉表示更稳定。它包含三个部分:
- 互补视觉解耦(CVD)
- 用图像分割模型(SAM)把原图分成两部分:
- 双图像(dual image):包含最重要的目标区域。
- 残差图像(residual image):包含剩余部分。
- 这样可以在每一步只关注最关键的视觉信息,减少干扰。
- 用图像分割模型(SAM)把原图分成两部分:
- 非视觉筛选(NVS)
- 引入一个****无图像的输入(只有文字),让它和双图像、残差图像分别生成输出分布。
- 计算它们和“无图像输入”的距离(Jensen-Shannon Divergence)。
- 选距离更大的那张图作为****解耦图像,因为它保留了更多关键视觉信息。
- 自适应逐词对比解码(ATCD)
- 比较解耦图像和原图的输出分布与“无图像输入”的距离,判断当前是否出现幻觉:
- 有幻觉:用解耦图像的分布去“减掉”原图分布,抑制错误概念。
- 多样性不足:用解耦图像增强原图分布,提高生成多样性,防止后期累积幻觉。
- 比较解耦图像和原图的输出分布与“无图像输入”的距离,判断当前是否出现幻觉:
MITIGATING MODALITY PRIOR-INDUCED HALLUCI-NATIONS IN MULTIMODAL LARGE LANGUAGE MOD-ELS VIA DECIPHERING ATTENTION CAUSALITY
作者把这个问题看成是一个****因果推理的问题:
- 他们画了一个“因果图”,把图像、注意力机制、模态先验、最终输出之间的关系表示出来。
- **在这个图里,**模态先验是混杂因素,会同时影响注意力机制和输出。
- 为了消除这种混杂影响,他们在视觉和语言的注意力层分别做了****干预(intervention),生成各种“反事实”的注意力分布,比如随机、均匀、反转、打乱等方式。
- 然后通过****后门调整(back-door adjustment)计算注意力对输出的真实因果效应,最后结合视觉和语言的结果选出一个更合理的输出。
通俗一点说,就是:
模型在做判断时,不仅看原来的注意力,还要参考如果注意力被“人为改掉”会怎样,这样就能知道哪些输出是因为真正的图像/文字信息,哪些只是模型自己的“偏见”。
Mitigating Object Hallucination via Concentric Causal Attention
**作者发现,幻觉和一个叫 **RoPE(旋转位置编码) 的技术有关。
- RoPE 是用来让模型知道词在句子里的位置顺序的,比如“猫在桌子上”和“桌子在猫上”位置不同,意思就变了。
- **但 RoPE 有个特点:**距离越远,信息影响越弱(长期衰减)。
- 在单看文字时,这没问题,因为一句话里离得远的词本来关系就不大。
- 可是在图文结合时,如果图片特征在序列里离文字指令很远,模型就会“忽视”这些图片信息,于是就更容易乱编。
他们做了一个实验:
- 把图片里的某个物体剪下来,贴到图片的不同位置,问模型“图里有这个物体吗?”
- 结果发现:如果物体被贴到离指令较近的位置,模型答得准;贴到远的地方,就容易答错。
- **这说明 **位置太远 → 模型容易忽略 → 幻觉增加。
作者想,既然“远了就记不住”,那能不能让图片特征在序列里离文字指令更近?
**于是他们提出了 **CCA 方法,核心有两个设计:
- 同心圆式位置排列
- 传统方法是按“从左到右、从上到下”把图片切成一条长序列。
- CCA 改成从图片外围到中心一圈圈地排,这样无论文字指令在哪,它和大部分图片特征的距离都缩短了。
- 同时,这种排列方式还保留了图片的空间结构(比如上下左右的关系)。
- 同心因果注意力掩码
- 原来模型只允许每个词看前面的词,这是 1D 的“只能往前看”。
- CCA 改成了 2D 的“可以看同圈和里面的圈”,更符合图片的二维空间关系。
Mitigating Hallucination for Large Vision Language Model by Inter-Modality Correlation Calibration Decoding
**全称是 **Inter-Modality Correlation Calibration Decoding(跨模态关联校准解码)。包含两个核心模块:
(1)CMVED —— 跨模态值增强解码
- 思路:不直接改注意力权重,而是针对那些跨模态注意力很强的值向量(Value Vectors)进行屏蔽或弱化,从而构造一个更容易产生幻觉的“失真分布”,再用对比解码去抑制它。
- 好处:
- 能同时减少单模态依赖和虚假跨模态关联。
- 不破坏原始注意力计算,速度比部分方法快。
- 能同时减少单模态依赖和虚假跨模态关联。
(2)CDAR —— 内容驱动注意力优化
- 思路:在模型前几层,把图像 token 的位置信息统一,让模型更关注内容本身,而不是因为位置靠后就被忽略。
- 好处:缓解因位置偏差导致的忽略重要图像区域的问题。
ClearSight: Visual Signal Enhancement for Object Hallucination Mitigation in Multimodal Large Language Models
**过去常用一种叫 **对比解码(Contrastive Decoding) 的方法来缓解幻觉,比如:
- VCD:同时看原图和加了噪声的图,把两者的输出分布做对比,从而削弱语言偏置;
- ICD:对比正常指令和被干扰的指令。
这些方法虽然有效,但有两个明显缺点:
- 生成质量下降:过度压制语言信息会让回答变得不连贯或不准确;
- 速度变慢:需要额外计算对比样本,推理时间几乎翻倍。
作者通过分析模型的注意力机制发现:
- 图像和文本的信息融合主要发生在模型的****中间层(middle layers);
- 在这些层中,模型分配给视觉特征的注意力远远少于系统提示和用户指令;
- **也就是说,**不是模型太看重语言,而是没好好看图像,于是就靠语言经验瞎猜,从而产生幻觉。
为了解决上面问题,作者提出了 ****VAF(Visual Amplification Fusion,视觉增强融合):
核心思想:
- 在中间层****放大模型对视觉信号的关注,让它更认真地“看”图像;
- 同时适当减弱对系统提示的过多关注;
- 只针对那些对视觉信息敏感的注意力头(visual perception heads)进行调整,避免影响整体性能。
CLIP-DPO: Vision-Language Models as a Source of Preference for Fixing Hallucinations in LVLMs
**之前的方法会用 **人类反馈 或 GPT-4/GPT-4V 来给模型生成的内容打分,然后挑出好/坏答案,用 DPO(Direct Preference Optimization)去训练。
问题:
- 要花很多钱调用付费 API。
- 需要额外数据。
- 需要部署多个外部 LVLM 来生成和比较答案。
- GPT-4 的评分是离散的,不够精细,而且它自己也会“幻觉”。
用 CLIP来给 LVLM 自己生成的多条描述打分,按分数排序,选出“正样本”(更接近真实)和“负样本”(更离谱)。
这样就能自动构造 DPO 训练用的好/坏答案对,而不用外部模型或人工。
数据来源:直接用 LVLM 在 SFT(监督微调)阶段用过的原数据集,不引入新数据。
打分后还会用规则过滤掉低质量或太相似的答案,保证训练数据的质量。
方法流程
- 生成描述 用高效的小模型(如 MobileVLM-v2)对同一张图生成多条不同描述。 还让 LLM 根据描述生成针对该图的问题,并给出正/负答案。
- CLIP 打分排序 用 CLIP 计算图像和每条描述的相似度,分数高的更可能是正确的。
- 规则过滤 去掉低分、太长的、太普通的、太相似的描述,只保留差异明显的好/坏对。
- DPO 训练 用这些正负对去训练 LVLM,让它学会生成更贴近图像事实的内容。
CODE: Contrasting Self-generated Description to Combat Hallucination in Large Multi-modal Models
在模型生成回答的时候,让它****自己先详细描述一下图片的内容,然后用这个描述去跟真实的图片信息做对比,从而纠正那些不靠谱的生成结果。
通俗来说,就是让 AI 一边看图片,一边参考自己之前对这张图的文字描述,两者互相“较劲”,这样生成的答案会更贴近图片的真实情况,不会瞎编。
先让模型自己描述图片
给它一个指令,比如:“请详细说出图片里能看到的所有东西和它们的位置。”
模型就会生成一段文字描述,这段描述可能很全面,但也可能有遗漏或错误。
用描述和真实图片做对比
在生成最终回答的过程中,CODE 会把两个信息源进行比较:
- 来自真实图片的信息
- 来自模型自己描述的信息 然后通过一种动态调节机制,决定该相信哪边的信息,从而调整每个词的生成概率。
动态调整,减少错误
如果模型和自己的描述在某一个词上的判断很接近,就说明这个判断比较可靠,可以放心用;
如果差异很大,就说明可能有问题,要压低错误答案的概率,甚至直接排除掉。
不需要重新训练模型
CODE 是一个“解码阶段”的方法,可以直接套用到现有的多模态模型上,不需要额外的训练,只要改一下生成回答时的计算方式即可。
Combating Multimodal LLM Hallucination via Bottom-Up Holistic Reasoning
为什么会有幻觉?
作者发现,MLLMs 的幻觉主要有三类原因:
- 视觉感知错误 看错或漏看图片里的物体、属性(颜色、大小等)、关系(位置、动作等)。 很多方法只关注物体和属性,但忽略了物体之间的关系,这也会造成错误。
- 输入问题本身就有问题 用户提的问题和图片不对应,比如问“图中的猫是什么颜色”,但图里根本没有猫。 实验发现,近一半(47.8%)的幻觉是因为问题本身和图像冲突。
- 缺乏常识推理 有些问题需要生活常识才能答,比如“冰是冷的”,但模型可能没这种知识,就乱答。 这类认知型错误占到了 51% 左右。
作者提出的解决方案
他们设计了一个****从下到上的六步推理框架,模仿人看图和想问题的过程:
- 目标识别 + 局部场景图生成 让模型先找出与问题相关的重点区域,并生成一个场景图(Scene Graph)——用结构化的方式记录物体、属性和关系。
- 视觉感知验证 用外部工具(如目标检测、关系分析)检查场景图是否正确,去掉错误或不存在的内容。
- 问题验证与调整 检查问题是否与已验证的图像内容一致,如果有冲突,就自动修改问题,使其和图像匹配。
- 常识推理 如果仅靠图像信息不能回答问题,就由模型自己生成所需的生活常识。
- 常识验证 用搜索引擎等外部知识库,检查这些常识是否正确,筛掉错误部分。
- 最终答案生成 结合验证过的图像信息和正确的常识,给出最终答案。
ConVis: Contrastive Decoding with Hallucination Visualization for Mitigating Hallucinations in Multimodal Large Language Models
**核心思想是先用模型给图片生成一个初始的文字描述(caption),然后用一个 **文生图(T2I)模型 把这个文字重新画成一张图。
- 如果原描述里有幻觉(比如本来没有钟表却说有),生成的图会和原图有明显差别。
- **ConVis 会比较 **原图和重建图的差异,得到一个“视觉对比信号”。
- 在接下来的文字生成过程中,这个信号会压制那些导致幻觉的词,让模型更倾向于生成符合图片的内容。
通俗地说,就是让模型自己对照一下:“我说的内容和图片是不是一致”,一旦发现不一致就纠正。
DAMRO: Dive into the Attention Mechanism of LVLM to Reduce Object Hallucination
**LVLM 由两部分组成:**视觉编码器(通常是 Vision Transformer,ViT)和 大语言模型解码器(LLM)。
研究发现,这两部分在关注图像信息时,都会过度集中在一些****背景区域的高注意力异常 token,这些 token 携带的是冗余甚至错误的全局信息,而不是真正重要的物体细节。
因为视觉编码器和 LLM 的注意力分布高度一致,这些异常 token 会误导 LLM,让它忽略真正的物体,从而产生错误描述。
DAMRO 的核心思想
DAMRO 是一种****无需额外训练的方法,只通过调整注意力机制来减少幻觉:
- 找出异常 token 利用 ViT 最后一层 [CLS] token 的注意力值,挑出那些和 [CLS] 关联最强的背景 token(就是异常 token)。
- 在解码阶段削弱它们的影响 使用对比解码(contrastive decoding):正常视觉信息与过滤掉异常 token 的信息分别计算概率,然后在 logits 空间里相减,降低异常 token 的作用。 加入一个自适应置信度阈值,避免过度削弱有用的全局信息。
这样做可以让 LLM 更关注物体的细粒度信息,而不是被背景冗余信息带偏。
SELF-CORRECTING DECODING WITH GENERATIVE FEEDBACK FOR MITIGATING HALLUCINATIONS IN LARGE VISION-LANGUAGE MODELS
作者想到一个很直观的点:
- 如果模型根据图片生成一段文字,那么反过来,用****文生图模型把这段文字再画成图,应该和原图差不多才对。
- 如果差别很大,就说明这段文字可能“胡说八道”了。
于是他们设计了一个****自纠正解码流程:
- 先用LVLM看图片,生成初始回答。
- 再用****文生图模型(比如 Stable Diffusion)根据这个回答生成一张新图。
如何操作
- 在生成每个词的时候,模型会同时考虑: 原图条件下的预测分布 新图条件下的预测分布
- 计算两个分布的差异(用 JS 散度)。
- 如果差异小 → 说明原回答靠谱,就****加强原预测(互补解码)。
- 如果差异大 → 说明可能错了,就****削弱原预测,偏向新图的预测(对比解码)。
这样,整个生成过程是****免训练的,不改动原模型,只需在解码阶段加一个“检查+修正”的环节。
A Unified Hallucination Mitigation Framework for Large Vision-Language Models
**核心思想是:**先分类,再对症下药,就像牙医看病要先检查牙齿再制定治疗方案。
具体流程:
- 分类问题类型****感知型问题(Perception):需要模型识别图片里的物体、颜色、位置等信息。 推理型问题(Reasoning):需要模型根据图片内容进行逻辑推理,比如预测接下来会发生什么。
- 分别处理****感知型:把长答案拆成多个小问题,让模型逐个验证,然后再综合成一个更准确的答案。 推理型:让模型用“一步步思考”(Chain-of-Thought)的方式生成带推理过程的答案,减少逻辑错误。
- 循环验证 反复检查和修正,直到答案不再明显变化,或者达到最大次数,防止越改越错。
Prescribing the Right Remedy: Mitigating Hallucinations in Large Vision-Language Models via Targeted Instruction Tuning
作者做了实验,比较了两个模型(MiniGPT-4 和 mPlug-Owl):
- 它们在相同图像上的幻觉对象差异很大,比如一个经常“看到”云,另一个经常“看到”人和车。
- GPT-4 生成的负样本(不存在的对象)跟这些模型的幻觉并不匹配,所以用 GPT-4 数据去训练其它模型效果有限。
**DFTG 的思路是:**先诊断模型在特定图像上的幻觉,再针对性生成训练数据。它分为两步:
(1)幻觉诊断
- 让目标模型描述图像(得到它的认知)。
- 从描述中提取关键对象、属性等信息。
- 用开放词汇检测模型(如 Grounding DINO)找出图像中真实存在的对象。
- 对比两者,找出模型“多说”的部分——这就是幻觉。
(2)定向数据生成
根据诊断结果,自动生成四种类型的训练样本:
- 对象存在性:问某个对象是否在图中,并给出正确/错误答案。
- 对象属性:问对象的颜色、形状等是否正确。
- 对象位置:问对象的位置关系(上下左右等)。
- 对象关系:问两个对象之间的关系(例如猫在书上)。
这样生成的数据是针对该模型特有的幻觉,更精准地纠正错误。
DFTG 的思路是:先诊断模型在特定图像上的幻觉,再针对性生成训练数据。它分为两步:
(1)幻觉诊断
- 让目标模型描述图像(得到它的认知)。
- 从描述中提取关键对象、属性等信息。
- 用开放词汇检测模型(如 Grounding DINO)找出图像中真实存在的对象。
- 对比两者,找出模型“多说”的部分——这就是幻觉。
(2)定向数据生成
根据诊断结果,自动生成四种类型的训练样本:
- 对象存在性:问某个对象是否在图中,并给出正确/错误答案。
- 对象属性:问对象的颜色、形状等是否正确。
- 对象位置:问对象的位置关系(上下左右等)。
- 对象关系:问两个对象之间的关系(例如猫在书上)。
这样生成的数据是针对该模型特有的幻觉,更精准地纠正错误。
What if…?: Thinking Counterfactual Keywords Helps to Mitigate Hallucination in Large Multi-modal Models
方法分三步:
- 让模型自己生成“反事实关键词” 针对图像,让模型造出三类假信息: 物体替换:把图里的东西换成别的,但位置合理(例如把面包换成饼干) 属性修改:改颜色、大小、形状等(例如把红苹果说成绿苹果) 关系变化:改物体之间的位置或互动(例如把桌子上的杯子放到地上) 这些关键词是看似合理但不真实的描述,用来引导模型去“假设”不同的场景。
- 把这些关键词塞进模型输入,让它“避开”它们 在回答用户问题时,给模型一个提示:“请小心不要用这些反事实关键词来回答。” 这样模型在生成答案时会更注意不去编造图里没有的东西。
- 用 PVP 过滤掉不合适的反事实关键词 因为模型有时会生成太离谱或太接近事实的词,这些词起不到“反事实”作用。 用 CLIP 模型测一下词和图的匹配度,只保留那些中等相关度的词,确保它们能触发合理的假设,又不会误导太严重。
方法分三步:
- 让模型自己生成“反事实关键词” 针对图像,让模型造出三类假信息: 物体替换:把图里的东西换成别的,但位置合理(例如把面包换成饼干) 属性修改:改颜色、大小、形状等(例如把红苹果说成绿苹果) 关系变化:改物体之间的位置或互动(例如把桌子上的杯子放到地上) 这些关键词是看似合理但不真实的描述,用来引导模型去“假设”不同的场景。
- 把这些关键词塞进模型输入,让它“避开”它们 在回答用户问题时,给模型一个提示:“请小心不要用这些反事实关键词来回答。” 这样模型在生成答案时会更注意不去编造图里没有的东西。
- 用 PVP 过滤掉不合适的反事实关键词 因为模型有时会生成太离谱或太接近事实的词,这些词起不到“反事实”作用。 用 CLIP 模型测一下词和图的匹配度,只保留那些中等相关度的词,确保它们能触发合理的假设,又不会误导太严重。
EAGLE: Enhanced Visual Grounding Minimizes Hallucinations in Instructional Multimodal Models
**EAGLE 换了一个方向——**直接增强视觉编码器的能力,让它更精准地理解图片里的物体和细节,这样语言部分就更容易产生符合图像事实的回答。
它的特点:
- 不依赖特定大语言模型(LLM)或融合模块,通用性强。
- 只改视觉部分,不改其他组件,直接替换就能用。
- 用带物体分割标注的数据,让视觉模型学会更细粒度的特征,比如每个物体的位置、形状、类别。
- 用改进版对比学习 + 跨熵损失,让视觉特征和语言描述更匹配。
- **用 **GaLore(低秩梯度投影)这种省内存的训练方法,避免改完视觉部分后,影响原来模型在其它任务上的能力。
Seeing Clearly by Layer Two: Enhancing Attention Heads to Alleviate Hallucination in LVLMs
作者发现,在模型处理图像的时候,****浅层(第1、2层)的注意力机制很关键。
- 在浅层,模型会集中关注图像的大部分区域(这叫****密集的视觉注意力汇聚)。
- 在深层,注意力就变得稀疏,只盯住少数地方。
- 如果浅层的这种“全局关注”变弱,模型就更容易出现幻觉。
他们把这种在图像区域里高度集中注意力的现象叫做**“视觉汇流(vision sink)”**。
结论:浅层越能保持密集的视觉汇流,模型越不容易胡说八道。
方法名叫 ****EAH(Enhancing Attention Heads,增强注意力头),特点是:
- 不需要重新训练模型
- 即插即用,在推理阶段改一下注意力分布即可
具体做法:
- 在浅层(第1、2层)找到那个****视觉汇流最密集的注意力头(就是最会“看全图”的那个头)。
- 把这个头的注意力模式****复制给同层的其他所有头,让整个层都像它一样去关注图像。
- 这样,整个模型在早期就能形成统一的、覆盖全图的关注,减少只盯局部导致的错误。
Hallucinatory Image Tokens: A Training-free EAZY Approach on Detecting and Mitigating Object Hallucinations in LVLMs
作者分析发现,LVLM 在生成描述时,会重点关注图像里的一小部分“关键区域”,这些区域对应到模型内部的****图像标记(image tokens)。
- 对****真实物体:模型会看它真正所在的图像位置。
- 对****幻觉物体:模型会去看一些跟它长得很像、但其实是别的东西的区域,比如把照片里的木瓜看成苹果,因为颜色、形状类似。
这些被高关注度的、导致幻觉的少数图像标记,就叫 ****HITs(Hallucinatory Image Tokens)。
**关键点是:**只去掉 1.5% 左右的 HITs,就能让大部分幻觉消失,而且几乎不影响真实物体的识别。
基于这个发现,作者设计了一个****无需重新训练模型的方法 EAZY,步骤如下:
- 检测阶段 先让模型正常生成一次描述。 找到所有提到的物体,查它们在模型内部最关注的那些图像标记。 把这些图像标记“清零”(用零向量替代),再让模型生成一次。 如果某个物体在第二次生成中消失了,就说明它是幻觉。
- 消除阶段 把所有被检测到的幻觉物体对应的 HITs 统一清零,再生成最终的描述。 这样幻觉物体基本都会消失,而真实物体大多保留。
这个方法可以套用到不同的 LVLM 上,比如 LLaVA、Shikra、LLaVA-Next,效果都很好。
EFUF: Efficient Fine-Grained Unlearning Framework for Mitigating Hallucinations in Multimodal Large Language Models
**EFUF 的思路是:**不用人工标注的配对数据,也不用很复杂的训练,就能让模型少产生幻觉。
它的关键步骤是:
- 用 CLIP 判断对象是否真实存在 先用 CLIP 计算图片和生成文本中每个对象的相似度分数。 发现:真实对象的分数普遍高,幻觉对象的分数普遍低。 因此可以用一个分数阈值,把“可能正确”和“可能错误”的对象分开,自动得到正负样本,不需要人工标注。
- 细粒度“反学习” 对幻觉对象所在的子句,用梯度上升(反着学)让模型以后少生成这些错误内容。 对正确对象所在的子句,用正常方式继续训练,让模型保持对正确事物的描述能力。 对整句,用正常损失函数,保持模型生成长句、连贯文本的能力。
- 三种损失结合 正样本损失:鼓励生成正确对象。 负样本损失:抑制生成幻觉对象。 句子损失:保持整体语言质量。 总损失 = 正样本损失 + λ₁ × 负样本损失 + λ₂ × 句子损失,其中 λ₁ 和 λ₂ 是权重,实验发现 0.3 和 0.2 比较合适。
Exploiting Semantic Reconstruction to Mitigate Hallucinations in Vision-Language Models
ESREAL 的核心是用****语义重建来发现幻觉:
- 让模型先给图像生成一段文字描述。
- 再用一个****文字转图像模型,根据这段描述生成一张新图。
- 将新图和原图进行对比,找出哪些地方对不上,这些对不上的地方就对应了原描述中的幻觉。
- 针对不同类型的幻觉(不存在物体、属性错误、关系错误)分别打分,然后用强化学习(PPO算法)让模型在以后生成时尽量避免这些错误。
这样做的好处是****不需要人工标注数据,完全靠原图和模型自己生成的内容来发现问题。
EXPLORING CAUSES AND MITIGATION OF HALLUCINATIONS IN LARGE VISION LANGUAGE MODELS
作者设计了一个****自动化的检测流程:
- 用大语言模型(Llama-3.1-8B)从描述中提取出所有提到的物体。
- 用三种不同的****开放词汇目标检测工具(YOLO-World、Grounding DINO、TagCLIP)去图片里找这些物体,并给出存在概率。
- 综合三者的结果,用公式算出该物体是否真的存在。
- 如果某句话里包含“不存在”的物体,就把这句话里的所有词都标记为“幻觉”。
这个流程可以批量化、自动化地给大量数据打标签。
作者发现,如果让模型****带图和不带图分别跑一遍,同一位置的隐藏状态差异很大时,说明这个位置的词更依赖图像;差异很小时,很可能是语言模型在“自言自语”。
于是他们:
- 用带图和不带图的隐藏状态差,作为特征
- 训练一个****小型多层感知机(MLP)分类器,判断每个词是不是幻觉
- 实验证明,用“带图-不带图”的隐藏状态差作为输入,比只用其中一个效果好得多
在生成描述时,他们不是只选概率最高的词,而是:
- 先采样多个候选首词,分别生成完整的句子(Top-K 首词采样)。
- 对每个候选句子,用上面的分类器计算“准确率分数”。
- 选分数最高的句子,拼到最终描述里,循环直到生成结束。
- 最后再过滤掉低于设定阈值的句子,确保整体描述更真实。
这样可以在不重新训练大模型的情况下,实时控制幻觉率。
Fact :Teaching MLLMs with Faithful, Concise and Transferable Rationales
Fact 的目标就是****自动生成高质量的推理过程(称为“理由”或“rationale”),并且这个理由要满足三个条件:
- 忠实(Faithful) 推理过程必须和答案严格对应,不能“看起来合理”但和结论无关。
- 简洁(Concise) 去掉所有无关信息,只保留真正帮助推理的内容,这样模型不会被干扰。
- 可迁移(Transferable) 生成的推理过程不仅能用于当前模型,还能教给其它不同规模、不同结构的模型。
它分四步走:
1. 用程序生成“忠实”的推理草稿
- **给模型一张图片和一个问题,它会先写一个可执行的 **Python 程序 来尝试解答。
- 程序运行后,会留下一个****执行轨迹(trace),记录了每一步的计算过程。
- 只有那些能正确得到答案的程序才会被保留下来,这保证了推理的****正确性和忠实性。
程序的好处是:语法严格、逻辑明确,不容易出现“看似合理”的错误。
2. 把程序转成简洁的自然语言推理
直接用程序教模型效果不好,因为程序里有很多冗余(比如没走到的分支、循环里重复的输出)。所以 Fact 做了三件事:
- 剪枝(Pruning) 把没用到的代码分支删掉,只保留实际执行的部分。
- 合并(Merging) 把循环或重复操作的结果归纳成一句话,避免啰嗦。
- 桥接(Bridging) 有些步骤之间逻辑衔接不自然,就用一个小模型检测出“这里缺逻辑”,再用语言模型补上,让整个推理过程读起来顺畅。
这样得到的就是一段****简洁、连贯、易理解的文字推理过程。
3. 筛选“可迁移”的理由
不是所有从程序转出来的推理都适合教给别的模型。Fact 会做一个测试:
- 把这些推理过程喂给一些现成的多模态模型(比如 OpenFlamingo、MiniGPT4);
- 看它们原来答错的题,在加上这个推理后能不能答对;
- 只有那些****确实帮模型变好的推理才会被保留下来。
这一步确保了生成的理由具有****通用性,不是只对某一个模型有效。
4. 分步骤蒸馏到目标模型
最后,用这些高质量的推理过程去****训练目标模型,让它学会自己生成类似的推理。
训练时不仅让它学正确答案,还让它学怎么一步步推理,这样它以后遇到新问题时也能自己想清楚。
FGAIF: Aligning Large Vision-Language Models with Fine-grained AI Feedback
FGAIF 分三步走,每一步都更精细、更自动化:
第一步:AI自动收集细粒度反馈
- 把模型的回答拆成小句子。
- **用 **ChatGPT 把每个小句子转成“原子事实”(就是最基础的事实,比如“有一只猫”“猫是黑色的”“猫在沙发上”)。
- 再用另一个视觉语言模型(如 LLaVA 1.5)去检查这些原子事实是否和图片一致,并打标签:有/没有某类幻觉。
- 这样就能得到****小句子级别、分类型的幻觉标签,而且完全不用人工。
第二步:训练三个专门的奖励模型
- 针对三种幻觉(存在、属性、关系),分别训练一个奖励模型。
- 输入是“提示 + 图片 + 回答”,输出是该小句子的幻觉情况。
- 这样在训练时,模型会得到****密集的、分类型的奖励信号,比传统只给一个总分的要精确得多。
第三步:用细粒度奖励做强化学习
- **采用 **PPO(一种常用的强化学习算法)来微调 LVLM。
- 在训练过程中,每生成一个词都会结合三个奖励模型的结果,给出综合奖励。
- 这样模型会学会在细节上更贴近图片,减少各种幻觉。
Mitigating Fine-Grained Hallucination by Fine-Tuning Large Vision-Language Models with Caption Rewrites
作者提出的解决方案:ReCaption
ReCaption 是一个两步走的方法,用来让 LVLM 在细粒度上更贴近图片内容,减少幻觉。
第一步:用 ChatGPT 改写图片说明
- 从原说明里提取出****名词、动词、形容词(这些词代表物体、属性和行为)。
- 用这些词让 ChatGPT 生成新的说明,要求新说明必须包含这些词,但可以换不同的表达方式。
- 每个原说明会生成多个不同版本,这样能增加数据多样性,同时保留原意。
第二步:用改写的说明去微调 LVLM
- 用这些“原图 + 多种改写说明”的数据,对 LVLM 进行额外训练。
- 这样模型在“图—文”之间建立更细粒度的对应关系,知道什么属性、什么动作真正出现在图片里。
新评测方法:FGHE
**为了测细粒度幻觉,作者提出 **FGHE 评测,比 POPE 更细致:
- 问模型****多物体关系、物体属性、物体行为相关的 Yes/No 问题。
- 统计准确率、精度、召回率、F1 分数,分数越高说明幻觉越少。
Hallucination Augmented Contrastive Learning for Multimodal Large Language Model
**作者提出了一种叫 **HACL(Hallucination Augmented Contrastive Learning) 的新方法,核心思想是:
- 引入对比学习(contrastive learning):让正确的图文配对更接近,错误的图文配对更远离。
- 硬负样本:用 GPT-4 生成的幻觉字幕(caption)当作“困难负样本”,因为这些幻觉内容和图片很相似但又不完全正确,更难区分,效果更好。
具体做法是:
- 把图片经过视觉编码器和处理接口变成视觉 token 序列;
- 把对应的文字描述变成文字 token 序列;
- 分别送入大语言模型得到全局表示;
- 用对比学习的损失函数拉近匹配的图文对,推远不匹配的对,尤其是幻觉文本。
Beyond Hallucinations: Enhancing LVLMs through Hallucination-Aware Direct Preference Optimization
作者把“减少幻觉”看成一个****偏好选择问题:让模型学会在看到同一张图的两个描述时,选正确的、不选胡编的。
他们提出了 ****HA-DPO(幻觉感知的直接偏好优化):
- 用****正负样本对(一个正确描述,一个幻觉描述)来训练模型,让它偏向正确描述。
- **用 **Direct Preference Optimization (DPO) 方法,比传统强化学习更高效,不需要显式学奖励模型,直接优化策略。
- 在损失函数里加了一个辅助的语言建模任务,保证训练稳定,不会让模型越训越差。
新评估指标 SHR
- 以前的方法(如 POPE)只检测固定类别物体是否存在,范围有限。
- 作者提出 ****Sentence-level Hallucination Ratio (SHR):按句子统计幻觉比例,不限类别,能检测各种幻觉(物体、属性、动作、状态等),更全面。
- 在 200 张图上用 GPT-4 + 人工事实信息做判断,准确率约 95%。
HALC: Object Hallucination Reduction via Adaptive Focal-Contrast Decoding
HALC 是一个“即插即用”的解码算法,可以在不重新训练模型的情况下,直接嵌入到现有的 LVLM 中,比如 MiniGPT-4、LLaVA 等。它从两个层面入手:
1. 局部:自适应聚焦对比(Focal-Contrast)
- 在生成每一个可能出错的词时,先判断它是不是和物体相关(名词、形容词、动词等)。
- 如果是,就用目标检测工具(如 Grounding DINO)在图片中找到这个词对应的位置,并取一个初始的“视野窗口”。
- 然后在这个位置周围采样多个不同大小的视野,把这些视野分别输入模型,看哪个最能让正确词的概率最高。
- 通过对比不同视野下的概率分布,放大正确信息,抑制幻觉词的生成。
2. 全局:匹配式束搜索(Matching-based Beam Search)
- 在每一步生成时,不只是选当前概率最高的词,而是用“图像-文本匹配分数”去评估整句和图片的契合度。
- 从多个候选中挑出最忠实于图片的那一个,这样不仅减少幻觉,还能保持语言流畅和质量。
HalCECE: A Framework for Explainable Hallucination Detection through Conceptual Counterfactuals in Image Captioning
作者想让检测过程****可解释,不仅知道有错,还知道:
- 错的是哪个物体或关系
- 应该改成什么
- 为什么这样改更合理
**他们用了****概念反事实(conceptual counterfactuals)**的方法:
- 把图片里的真实物体和关系当作“目标”
- 把AI生成的描述拆成概念(物体+关系)
- 通过语义层次(WordNet 知识树)计算,找到****最少、最合理的修改来消除幻觉
- **这些修改包括: **替换(把错的东西换成正确的) 删除(去掉多余的东西) 插入(补上漏掉的东西)
创新点
- 同时检测物体幻觉和关系幻觉 不仅看物体对不对,还看它们之间的关系(空间位置、动作等)对不对。
- 用图结构表示 把图片和描述都转成“场景图”,这样能更好地分析物体和关系。
- 可解释性 结果会告诉你具体要改哪些词,以及改的原因(比如“猫”应改为“狗”,因为语义更接近)。
- 不依赖大语言模型 很多现有方法会用LLM来检测,但LLM自己也会产生幻觉,而HalCECE是确定性的,更稳定
HALLE-SWITCH: CONTROLLING OBJECT HALLUCI- NATION IN LARGE VISION LANGUAGE MODELS
与其完全消除幻觉,不如****控制它的程度,因为有时候适当的想象是有用的(比如机器人操作时推断看不到的部分)。
**作者提出的 **HallE-Switch 是一个轻量级的控制开关:
- 用一个线性层去调整模型输出的词向量;
- 通过一个参数 ε 来控制模型在生成时是偏向“只看上下文知识”(ε = -1),还是“允许更多想象”(ε = +1);
- 中间值可以在 [-1, 1] 之间调节;
- **模型会自动给那些“想象出来的物体”加上 **
[object]标记,方便用户识别。
这样做的好处:
- 不会减少描述中的物体数量;
- 覆盖率保持不变;
- 幻觉可以减少多达 ****44%。
HalluciDoctor: Mitigating Hallucinatory Toxicity in Visual Instruction Data
它分为两个主要步骤:
(1)检测并消除幻觉
- 分解语义块:先用文本场景图解析器,把描述拆成小块(物体、关系、属性)。
- 为每个语义块生成问题:用 LLM 自动生成对应的问题,比如“图中有几个人?”、“他们在做什么?”。
- 跨模型一致性检查:用多个不同的 MLLM 去回答这些问题,看它们的答案是否一致。如果某个语义块在多个模型答案中都不一致,就认为它是幻觉,删掉。
- 自动修正描述:用 LLM 把错误部分去掉,保持整体语句通顺自然。
这样得到的就是更干净的数据集,叫 ****LLaVA+。
(2)扩充反事实数据
研究者发现,很多幻觉是因为某些物体经常一起出现,模型会“想当然”地认为它们总是成对出现,比如“车”和“路”。
为了打破这种错误关联,他们用“跷跷板策略”:
- 找那些很少和幻觉物体一起出现的场景,把幻觉物体加进去,形成合理的反事实描述。
- 这样能平衡长尾分布,减少模型对错误关联的依赖。
扩充后的数据集叫 ****LLaVA++。
MITIGATING OBJECT HALLUCINATION IN MLLMS VIA DATA-AUGMENTED PHRASE-LEVEL ALIGNMENT
**他们提出了一个叫 **DPA(数据增强短语级对齐) 的方法,核心思想是:
- 造“对”和“错”的配对数据 先用正确描述(例如“一个穿白衬衫的年轻男子”) 再自动改成“幻觉版”(例如“一个穿黑裙子的年轻女子”) 这样得到很多“正确 vs 幻觉”的短语对。
- 用新损失函数训练模型 让模型在生成时,降低幻觉短语的概率,同时保持正确短语的概率。 还加了一个“KL 散度”约束,防止模型学偏,导致其他能力退化。
- 用这种细粒度的“短语级”训练,比传统“整句”方法更精准,不会一刀切地削弱模型能力。
Mitigating Hallucination in Multimodal Large Language Model via Hallucination-targeted Direct Preference Optimization
作者专门为三种情况设计了三种“正负样本对”,让模型学会区分好坏答案:
| 幻觉类型 | 做法 |
|---|---|
| 视觉分心型(VDH) | 在解码时故意保留图片中最不重要的视觉信息,让模型产生错误的回答,作为负面样本。这样模型会被迫关注更重要的视觉信息。 |
| 长文本幻觉型(LCH) | 从高质量的长描述中截取前缀,让模型继续生成后面内容,故意让它产生尾部幻觉作为负面样本;正面样本则是完整的长描述。 |
| 图文冲突型(MCH) | 用 GPT 改写正确答案,加入与图片矛盾的细节,放在问题前面,让模型在这种冲突条件下生成错误答案,作为负面样本。 |
然后把这些正负样本配对,用 DPO 方法训练模型,让它学会在各类情况下都减少幻觉
HELPD: Mitigating Hallucination of LVLMs by Hierarchical Feedback Learning with Vision-enhanced Penalty Decoding
(1)分层反馈学习 Hierarchical Feedback Learning
这个方法会在训练的最后阶段加入一个额外的反馈机制,不需要太多额外训练就能起作用。
它会从生成的句子中抽取两类信息来做反馈:
- 对象级反馈: 提取模型生成的句子里的物体集合 跟真实标签的句子里的物体集合比较 计算它们的重合程度(用 F1 分数衡量)
- 语义级反馈: 借助 GPT-4 来判断整句话是否语义合理、有没有幻觉成分 GPT-4 给出一个 0~1 的分数表示语义正确性
这两类反馈不能直接参与梯度训练(因为它们不可微分),于是作者用了强化学习的 REINFORCE 算法,把它们转化成损失函数的一部分,引导模型少产生幻觉。
**💡 **关键点:这个反馈只在训练的后期才加进去,前期还是正常训练,这样不会破坏模型的基础能力。
(2)视觉增强惩罚解码 Vision-enhanced Penalty Decoding
在生成每个词的时候,模型会参考已经生成的内容(文本窗口)和输入的图像(视觉窗口)。
传统方法(如 Opera)只根据文本窗口来惩罚“过度自信”的预测,这会让模型更依赖文本,忽视图像。
**作者改进了这一点,多加了一个 **图像注意力窗口 来计算惩罚,让模型在生成时更重视图像信息,从而减少对文本的过信任,降低幻觉。
公式上就是:
- 原方法:惩罚 = 文本窗口的注意力最大值
- 新办法:惩罚 = 文本窗口惩罚 − β × 图像窗口的累计注意力
这样,模型在选词时会更倾向于与图像一致的结果。
Alleviating Hallucinations in Large Vision-Language Models through Hallucination-Induced Optimization
作者的新思路
- 先让模型学会“产生更多幻觉”(听起来有点反直觉,但这是关键);
- 然后利用这些幻觉,和正确的内容做更精准的对比,让模型在最终生成时远离幻觉。
这就像先让学渣故意答错很多题,再教他分辨对错,这样他考试时更知道怎么选正确答案。
他们设计了一个三步走的新策略:
- 反向偏好模型(CBTM) 用一种“反着来”的模型,让模型在训练时更关注幻觉和正确内容之间的差别,而不是只去消除幻觉。
- 多幻觉放大(AMTH) 不只是比较一个幻觉和一个正确答案,而是同时比较多个可能的幻觉,让模型更清楚哪些不能选。
- 额外约束(ACI) 在训练时加一些限制条件,确保模型不是靠“压低所有答案的概率”来选对,而是真正让幻觉的得分变低、正确的得分变高。
作者的新思路
他们换了个角度:
- 先让模型学会“产生更多幻觉”(听起来有点反直觉,但这是关键);
- 然后利用这些幻觉,和正确的内容做更精准的对比,让模型在最终生成时远离幻觉。
这就像先让学渣故意答错很多题,再教他分辨对错,这样他考试时更知道怎么选正确答案。
4. 具体方法:HIO(Hallucination-Induced Optimization)
他们设计了一个三步走的新策略:
- 反向偏好模型(CBTM) 用一种“反着来”的模型,让模型在训练时更关注幻觉和正确内容之间的差别,而不是只去消除幻觉。
- 多幻觉放大(AMTH) 不只是比较一个幻觉和一个正确答案,而是同时比较多个可能的幻觉,让模型更清楚哪些不能选。
- 额外约束(ACI) 在训练时加一些限制条件,确保模型不是靠“压低所有答案的概率”来选对,而是真正让幻觉的得分变低、正确的得分变高。
Instruction-Aligned Visual Attention for Mitigating Hallucinations in Large Vision-Language Models
IAVA 的关键就是****更聪明地找到那些“被过度关注但和问题无关”的图片区域,只把它们当负样本,而不误伤有用的区域。
做法分两步:
- 用两种指令让模型看同一张图 第一个指令是泛泛地问:“描述这张图片” → 模型会关注整体信息。 第二个指令是具体的问题,比如:“图片左边是什么?” → 模型会关注和问题相关的区域。
- 比较两次的注意力分布 如果一个图片区域在第一次被高度关注,但在第二次关注度明显下降,而且本身不包含问题的关键信息,就把它标记为“无关区域”。
- 对比解码 把这些无关区域单独保留下来形成“负样本图”,与原图一起输入模型。 通过数学公式调整输出概率,让模型更少依赖这些无关区域的信息,从而减少幻觉。
Visually Dehallucinative Instruction Generation:Know What You Don’t Know
- 建了一个新测试集(VQAv2-IDK) 从现有的 VQAv2 数据集中挑出那些人类标注的答案是 “不知道 / 无法回答” 的问题。 按原因分成四类: 无法回答:问题本身就不成立,比如问不存在的东西。 错误问题:引用了图片里没有的对象。 人类不知道但机器可能知道。 不确定:图片信息不足。 训练集有 13,807 条,验证集有 6,624 条。
- 提出一个新的指令数据集(IDK-Instructions) 用少量示例 + 语言模型(GPT-3.5 / GPT-4)自动生成适合这种“不知道”问题的回答。 生成的回答不仅会说“我不知道”,还会尽量给出理由或推测,比如: “我不确定,可能是 A、B 或 C。”
- 实验验证 拿多个主流模型(BLIP2、InstructBLIP、LLaVA1.5、Gemini、GPT4V)测试它们在新数据集上的表现。 发现大部分模型几乎不会说“我不知道”,而是乱答一通。 用了 IDK-Instructions 训练的模型,能显著提高“不知道”的正确率,而且不影响原本正常的问答能力。