08. 多模态幻觉问题有哪些表现?如何缓解?

多模态幻觉的表现、成因与缓解思路。

简单回答

多模态幻觉是 VLM 在图像理解中"看到"实际图片中不存在的内容,或对图片内容做出错误描述。常见表现包括:虚构物体(图中没有猫说有猫)、属性错误(红色说成蓝色)、数量错误(三个说成五个)、空间关系错误(左边说成右边)、以及文字识别错误(OCR 不准但自信输出)。缓解手段包括改善训练数据(减少图文不一致的数据)、引入负样本训练、增加视觉定位(Grounding)能力、以及对输出做事后验证。

详细解释

多模态幻觉和文本幻觉的区别

文本 LLM 的幻觉是"编造不存在的知识"。VLM 的幻觉有一个额外的维度——"看到不存在的视觉内容"。而且 VLM 的幻觉往往更隐蔽——用户问"图片里有什么",模型自信地列出一堆物体,用户如果不仔细看图可能就信了,但其中有几个物体根本不在图中。

幻觉的类型

物体幻觉(Object Hallucination) 是最常见的类型。模型声称图片中存在实际不存在的物体。比如一张厨房的照片里没有猫,但模型说"图片中有一只猫坐在桌子上"——因为厨房和猫在训练数据中经常共同出现,模型的语言先验把它"幻想"出来了。

属性幻觉(Attribute Hallucination) 是对物体的属性描述错误。物体确实存在但颜色、大小、形状说错了。比如红色的车说成蓝色的。

关系幻觉(Relation Hallucination) 是对物体之间空间关系或逻辑关系的错误描述。杯子在桌子上说成杯子在桌子下,A 在 B 的左边说成右边。

数量幻觉 对物体数量判断错误。VLM 在计数上普遍较弱——"图中有几个人"这类问题的错误率相当高,特别是当数量超过 5~6 个时。

文字幻觉 在需要读取图片中文字的场景(如文档理解、街景文字识别),模型可能输出图中不存在的文字或读错文字。

幻觉的根源

语言先验过强。 VLM 的 LLM 部分在预训练时学到了大量的"共现统计"——厨房里通常有什么、公园里通常有什么。当视觉信号不够强时,LLM 的语言先验会"补全"缺失的视觉信息,导致虚构物体。这本质上是模型在"视觉输入"和"语言先验"之间的权衡中,过度依赖了语言先验。

视觉编码器的局限。 视觉编码器可能没有准确提取图片中的所有信息——特别是小物体、遮挡物体、模糊区域。信息在编码阶段就丢失了,LLM 自然无法正确描述。

图文对齐不够精细。 投影层把视觉特征映射到 LLM 嵌入空间时可能不够精确——特别是对空间位置和数量这种需要精细理解的信息,对齐质量不足。

训练数据的噪声。 训练数据中的图文描述本身可能就不精确——网上爬来的图文对中文字描述可能和图片内容不完全一致。模型在这种噪声数据上训练就会学到"大致对就行"的习惯。

缓解手段

改善训练数据质量。 过滤图文不一致的训练数据。用自动化工具检测描述中提到的物体是否真的在图片中出现。构建高质量的指令微调数据,包含"图中没有 X"这类否定性描述。

引入负样本训练。 在 SFT 阶段构造负样本——给模型看一张图然后问"图中有没有猫?",正确答案是"没有"。RLHF/DPO 时把含有幻觉的回答作为被拒绝的样本。这能训练模型学会"看到什么说什么"而不是"猜测可能有什么"。

视觉定位(Grounding)训练。 让模型不只是说"图中有一只猫",还要指出猫在哪个位置(bounding box 或描述位置)。这迫使模型真正"看到"物体的位置才能回答,减少凭空猜测。Shikra、CogVLM 等模型在这方面做了很多工作。

增加分辨率。 更高分辨率的输入让视觉编码器能看到更多细节,减少因信息丢失导致的幻觉。特别是对小物体和文字识别。

输出验证和后处理。 用另一个模型(或同一个模型的第二次推理)检查输出中提到的物体是否真的在图片中——类似文本 RAG 中的 Faithfulness 检查。

RLHF 对齐。 用人类标注的偏好数据做 RLHF 或 DPO,让模型学会"不确定的时候说不确定"而不是自信地编造。

评测多模态幻觉

POPE(Polling-based Object Probing Evaluation)是一个专门评估物体幻觉的 benchmark——给模型看图片然后逐个问"图中有没有 X?"。CHAIR 指标用于评估图像描述中的物体幻觉比例。MMHalBench 评估更广泛类型的幻觉。

面试时可以这样答

多模态幻觉主要表现为模型"看到"图片中不存在的内容——虚构物体、属性错误、数量错误、空间关系错误。根源在于模型的语言先验过强——LLM 预训练时学到了"厨房里通常有猫"这类统计规律,当视觉信号不够强时就凭先验"脑补"。视觉编码器的信息丢失和训练数据的图文不一致也有影响。

缓解思路有几个方向。训练数据方面——过滤图文不一致的数据,加入否定性描述的样本。模型训练方面——加视觉定位(Grounding)训练让模型必须"指出"物体位置,用 RLHF/DPO 让模型学会在不确定时说不确定。推理阶段——增加分辨率让模型看到更多细节,用输出验证检查幻觉。

评测用 POPE、CHAIR 等专门的幻觉评测 benchmark。VLM 在计数和精确空间关系上的幻觉率还是比较高的,这是当前多模态模型的一个共性短板。

常见追问

  1. 物体幻觉和属性幻觉哪个更难缓解?为什么?
  2. Grounding 训练具体怎么做?数据怎么构造?
  3. VLM 的幻觉率在实际应用中有多高?能接受吗?