多模态大模型为什么会产生视觉幻觉?如何评估和缓解?
简化版
视觉幻觉是模型生成了输入图像/视频不能支持的物体、属性、数量或关系。两大根源:「没看清」(感知端信息丢失)和**「看清了却被语言先验带偏」(生成端强共现先验,如画面有桌子就补个并不存在的椅子)。评估要分类型**(对象/属性/关系/计数/文字/时间),常用 POPE 测对象幻觉;缓解要从输入、数据、训练、解码多端入手(提分辨率、加困难负例、证据约束、允许”图中无法确认”)。它降低风险但不是绝对保证。
详细版
模型可能没看清细节,也可能看到了却在生成时被高概率语言搭配带偏。例如画面有桌子,训练语料的共现模式诱导模型补出不存在的椅子。含糊提问、过长回答、高采样温度都会放大它。
评估不能只看通用 VQA 准确率。POPE 用「某物体是否存在」的正负问题测对象幻觉,但覆盖不了属性、计数、空间、因果错误。生产评估要结合可验证问答、描述中的实体对齐、人工复核、反事实样本。
完整版教学
一、六种视觉幻觉类型(要分开测)
「视觉幻觉」是一类错误的统称,不同类型成因和指标都不同,不能用一个总分代替:
| 类型 | 例子 |
|---|---|
| 对象幻觉 | 描述了图中不存在的物体(补个椅子) |
| 属性幻觉 | 颜色/材质/状态错误(红说成蓝) |
| 关系幻觉 | 左右/遮挡/包含关系错(A 在 B 左边说成右边) |
| 数量幻觉 | 计数不对(3 个说成 5 个) |
| 文字幻觉 | 补写图中没有的字符(OCR 瞎猜) |
| 时间幻觉 | 视频动作顺序/因果错 |
二、根源在「感知」和「生成」两端
理解幻觉要分两端看,这决定了怎么治:
感知端丢信息:低分辨率、过大 patch、抽帧、连接器压缩,让细节在进 LLM 前就没了——模型「没看清」,只能猜。
生成端语言先验过强:LLM 在海量文本里学到了强烈的共现先验(「桌子」后面经常跟「椅子」)。当视觉条件较弱时,它倾向于用语言常识补全,而非老实报告图里有什么。
画面:一张桌子(没有椅子)
语言先验:P(椅子 | 桌子) 很高
视觉证据弱 → 模型"脑补"出椅子 → 对象幻觉
记忆钩子:视觉幻觉 = “没看清” + “看清了也被语言先验带偏”。所以既不能全怪 LLM,也不能指望「换个更强的视觉编码器」就彻底消失——两端都要治。
三、POPE:怎么量化对象幻觉
POPE(Polling-based Object Probing Evaluation)是最经典的对象幻觉评测,设计很巧:
不问"图里有什么"(开放式难评分),而是问是非题:
"图中有 X 吗?" —— X 一半是真实存在的物体(正样本),
一半是不存在但"常见搭配"的物体(负样本)
统计 Accuracy / Precision / Recall / F1 + "回答是的比例"
关键设计:必须同时含正负样本,且负样本选「合理但不存在」的物体(专门戳语言先验)。「回答是的比例」能暴露肯定偏置——如果模型对什么都答「有」,会在只有正样本的测试上虚高,加了负样本就现原形。但 POPE 只测对象存在性,覆盖不了属性、计数、空间、因果,要用细粒度问答补充。
四、数据与训练端缓解
治本要从数据和训练下手:
- 加困难负例、反事实图像:让模型见「桌子但没椅子」的样本,学会「没看见就说没有」;
- 平衡存在/不存在问题:别让训练数据全是「有什么」,也要有「没有什么」;
- 带区域/框的细粒度监督:把描述和图像区域对齐;
- 过滤合成描述里的幻觉:别把教师模型的幻觉蒸馏进训练集(这是隐蔽的大坑);
- 偏好优化惩罚无证据断言:但需要可靠的正负答案。
五、推理端缓解
上线时的即时手段:
- 提高有效分辨率(从源头让模型看清);
- 要求短答或引用可见区域(减少发挥空间);
- 降低不必要的随机采样(高温放大幻觉);
- 关键任务调用检测器/OCR 交叉验证;
- 允许模型说「图中无法确认」,而不是强迫每题给确定答案。
这些降低风险但不是绝对保证——高影响判断仍需人工或专用系统复核。
六、常见误区与追问
- 误区:视觉幻觉都是 LLM 的锅。 一半来自感知端丢信息(没看清),一半来自生成端语言先验,要两端治。
- 误区:换更强视觉编码器就能消除。 能缓解感知端,但语言先验带偏依然存在。
- 误区:VQA 准确率高就没幻觉。 通用准确率掩盖幻觉,要用 POPE 等专项分类型测。
- 追问:POPE 为什么要正负样本都有? 只有正样本时”什么都答有”也能高分,负样本才能暴露肯定偏置。
- 追问:为什么有桌子会补椅子? LLM 的共现先验 P(椅子|桌子) 高,视觉证据弱时用语言常识脑补。
- 追问:训练端最隐蔽的坑? 合成描述里的教师模型幻觉被蒸馏进训练集,要过滤。
- 追问:推理端怎么快速降幻觉? 提分辨率、要求引用可见区域、降温度、调 OCR/检测器验证、允许”无法确认”。
七、加强记忆
视觉幻觉记「没看清 + 被语言先验带偏」两端根源:感知端(低分辨率/抽帧/压缩丢信息)+ 生成端(LLM 强共现先验,视觉弱时脑补,如桌子补椅子)。评估要分六类型(对象/属性/关系/计数/文字/时间),POPE 用正负是非题测对象幻觉(负样本戳语言先验、暴露肯定偏置,但覆盖不了属性/计数/空间)。治理多端并举:数据(困难负例/反事实/过滤合成幻觉)、训练(区域监督/偏好优化)、推理(提分辨率/引用可见区/降温/OCR 验证/允许”无法确认”)——降风险但非绝对保证,高危仍需人工复核。