从训练过程中如何利用辅助监督信号 来减少 MLLM 幻觉进行系统说明。这里的"辅助监督信号"不是普通的 image-caption 或 VQA 标注,而是额外告诉模型:哪些内容有视觉依据、哪些没有、依据在哪、置信度如何、回答是否应拒绝。
1. 视觉 grounding 监督:让文本必须绑定图像区域
MLLM 幻觉的核心问题之一是:模型生成了一个词,但这个词并没有明确对应到图像中的区域。例如图中没有"dog",模型却描述"a dog is sitting"。POPE 等工作专门评估这种 object hallucination,指出模型容易受到常见共现对象和语言先验影响。(arXiv1)
因此训练时可以加入:
text
图像 → 对象框 / mask / OCR / 属性标签
文本 → noun phrase / attribute phrase / relation phrase
监督目标 → 每个文本片段必须能对齐到视觉区域
常见辅助标签
| 辅助监督信号 | 作用 |
|---|---|
| bbox | 约束对象是否真实存在 |
| mask | 约束物体边界和可见区域 |
| object label | 减少不存在物体幻觉 |
| attribute label | 减少颜色、材质、数量幻觉 |
| relation label | 减少左右、上下、包含关系错误 |
| phrase-region alignment | 约束短语与图像区域对应 |
| OCR box + text | 减少文字识别幻觉 |
可以设计 grounding loss:
math
L = L_{\text{gen}} + \lambda_1 L_{\text{ground}} + \lambda_2 L_{\text{align}}
其中:
math
L_{\text{ground}}
= - \sum_i \log P(r_i \mid p_i, I)
含义是:文本短语 p_i 必须能预测或检索到对应图像区域 r_i。
2. 负样本监督:显式告诉模型"图中没有什么"
普通 caption 数据大多只描述图中存在的内容,很少告诉模型什么不存在。这会导致模型只学会"积极描述",而不是学会"拒绝错误对象"。
训练时应构造负样本:
text
正样本:图中有 cup → Q: Is there a cup? A: Yes.
负样本:图中没有 dog → Q: Is there a dog? A: No.
困难负样本:图中有 wolf,没有 dog → Q: Is there a dog? A: No.
共现负样本:图中有 table,没有 chair → Q: Is there a chair? A: No.
负样本类型
| 类型 | 示例 | 解决问题 |
|---|---|---|
| random negative | 图中无飞机,问飞机 | 基础对象幻觉 |
| co-occurrence negative | 图中有餐桌,问椅子 | 共现先验幻觉 |
| similar negative | 图中是狼,问狗 | 细粒度类别幻觉 |
| attribute negative | 红车问蓝车 | 属性幻觉 |
| relation negative | A 在左,问 A 是否在右 | 空间关系幻觉 |
| OCR negative | 图中写 123,问是否写 128 | OCR 幻觉 |
这类数据可以用于 SFT,也可以用于 DPO / RLHF。HA-DPO 就把幻觉问题转化为偏好选择问题,通过正负回答对来让模型偏好低幻觉回答。(arXiv2)
3. 偏好监督:让模型偏好"视觉一致"的回答
普通 SFT 只学习标准答案,但对"一个正确回答"和"一个看起来流畅但含幻觉的回答"区分不够。更有效的方法是构造 preference pair:
text
Chosen: 图中有两个人,左边的人拿着伞。
Rejected: 图中有三个人,右边的人拿着球。
然后使用 DPO / IPO / ORPO / RLHF 等方法优化。
DPO 形式可以写成:
math
L_{\text{DPO}}
=
-\log \sigma
\left(
\beta
\left[
\log \frac{\pi_\theta(y^+|x,I)}{\pi_{\text{ref}}(y^+|x,I)}
-
\log \frac{\pi_\theta(y^-|x,I)}{\pi_{\text{ref}}(y^-|x,I)}
\right]
\right)
其中:
y+是低幻觉回答;y-是含幻觉回答;I是图像;x是指令。
偏好数据应覆盖三类幻觉
| 偏好样本类型 | 目的 |
|---|---|
| 存在性偏好 | 避免虚构对象 |
| 属性偏好 | 避免颜色、数量、材质错误 |
| 推理偏好 | 避免视觉链式推理错误 |
RLHF-V 使用细粒度 correctional human feedback,把人类反馈细化到 hallucinated segment 层面,并进行 dense DPO;论文报告其用约 1.4k 标注样本显著降低了基模型幻觉率。(arXiv3) Silkie 则使用 AI feedback 构建 VLFeedback,再通过 DPO 蒸馏视觉忠实性偏好,在 MMHal-Bench 上降低幻觉。(arXiv4)
4. Token / span 级幻觉标注:不要只给整句好坏标签
句子级偏好有一个问题:模型不知道到底哪个词错了。例如:
text
错误回答:A man in a red shirt is holding a tennis racket.
可能错误的是:
- red;
- shirt;
- holding;
- tennis racket;
- man。
更细粒度的监督方式是:
json
{
"answer": "A man in a red shirt is holding a tennis racket.",
"labels": [
{"span": "man", "status": "supported"},
{"span": "red shirt", "status": "unsupported"},
{"span": "tennis racket", "status": "unsupported"}
]
}
训练目标可以包括:
math
L =
L_{\text{gen}}
+
\lambda_1 L_{\text{span\_cls}}
+
\lambda_2 L_{\text{evidence}}
其中 L_span_cls 用于判断每个文本片段是否有视觉依据。
优点
这种方式比整句 DPO 更适合减少:
- 长 caption 幻觉;
- 局部属性幻觉;
- 复杂场景描述幻觉;
- 医疗、遥感、工业质检等高风险场景中的细节错误。
RLHF-V 的核心思想就是收集 segment-level correction,对具体幻觉片段进行行为对齐,而不是只判断整段回答好坏。(arXiv5)
5. 检测器 / 分割器 / OCR 的辅助监督蒸馏
可以把专用视觉模型作为 teacher,为 MLLM 提供额外监督:
text
Detector teacher → object labels / bbox
Segmentor teacher → mask
OCR teacher → text boxes
Depth model → spatial / distance cues
Scene graph model → relation labels
然后训练 MLLM 的视觉分支或中间 token 去预测这些信号。
多任务辅助损失
math
L_{\text{total}}
=
L_{\text{gen}}
+
\lambda_1 L_{\text{det}}
+
\lambda_2 L_{\text{seg}}
+
\lambda_3 L_{\text{ocr}}
+
\lambda_4 L_{\text{rel}}
+
\lambda_5 L_{\text{count}}
| 辅助任务 | 抑制的幻觉 |
|---|---|
| object detection | 不存在物体幻觉 |
| segmentation | 物体边界、遮挡幻觉 |
| OCR recognition | 文本、数字、票据幻觉 |
| relation prediction | 空间关系幻觉 |
| counting head | 数量幻觉 |
| depth / layout prediction | 远近、遮挡、方位幻觉 |
这种方式特别适合工业部署,因为你可以保留检测器/分割器的中间结果作为可解释证据。
6. 图文一致性对比学习:拉近真实匹配,推远幻觉描述
除了生成式训练,还可以加入 contrastive learning。
构造三元组:
text
Image I
Positive text T+:真实描述
Negative text T-:含幻觉描述
优化目标:
math
L_{\text{contrast}}
=
-\log
\frac{
\exp(\text{sim}(I,T^+)/\tau)
}{
\exp(\text{sim}(I,T^+)/\tau)
+
\sum_j \exp(\text{sim}(I,T^-_j)/\tau)
}
关键是负样本要"难"
普通负样本太容易,模型很快学会;真正有价值的是 hard negative:
text
图中有猫,负样本说狗
图中有红车,负样本说蓝车
图中有 3 个瓶子,负样本说 4 个瓶子
图中人拿手机,负样本说拿杯子
这样模型才能学习细粒度视觉差异,而不是只学语义大类。
7. Claim-level verification 监督:训练模型先拆 claim,再验证
长回答幻觉往往不是整段都错,而是其中几个 claim 错。例如:
text
The image shows a woman in a blue dress standing beside a dog near a red car.
可以拆成:
text
claim 1: 图中有 woman
claim 2: woman 穿 blue dress
claim 3: 图中有 dog
claim 4: 图中有 red car
然后给每个 claim 标注:
text
supported / unsupported / uncertain
训练一个 verifier head:
text
MLLM hidden states
↓
claim verifier
↓
supported / unsupported / uncertain
这类监督可以接入两种训练方式:
方式一:联合训练
math
L =
L_{\text{answer}}
+
\lambda L_{\text{claim\_verify}}
方式二:生成-验证-修正训练
text
Step 1: 生成初始回答
Step 2: 拆解 claim
Step 3: 对每个 claim 回查图像
Step 4: 删除 unsupported claim
Step 5: 用修正后回答做 SFT / DPO
LURE 就是后处理式 hallucination revisor,针对 LVLM 对象幻觉生成更少幻觉的描述。(OpenReview6) Factually Augmented RLHF 则在 reward model 中加入 caption、ground-truth multiple-choice options 等事实信息,以缓解 reward hacking 并增强事实一致性。(ACL Anthology7)
8. 不确定性与拒答监督:让模型学会"不知道"
减少幻觉不能只训练模型说正确答案,还要训练它在证据不足时拒答。
构造训练数据:
text
Q: 这张低清图片中车牌号码是多少?
A: 图像分辨率不足,无法可靠识别。
Q: 图中人物是谁?
A: 无法仅根据图像确认人物身份。
Q: 图片右下角小字写了什么?
A: 该区域过于模糊,无法确定。
加入 answerability label:
json
{
"answerable": false,
"reason": "blur / occlusion / out-of-frame / low resolution / insufficient evidence"
}
训练目标:
math
L =
L_{\text{gen}}
+
\lambda L_{\text{answerability}}
+
\gamma L_{\text{confidence}}
推荐输出格式
json
{
"answer": "无法确认图中车牌号码",
"confidence": 0.21,
"evidence_status": "insufficient"
}
这种监督对实际系统非常关键,尤其适用于:
- 医疗影像;
- 自动驾驶;
- 商品验货;
- 机器人视觉;
- 安防巡检;
- OCR 票据解析。
9. 注意力监督:约束生成时必须关注视觉证据
MLLM 幻觉常发生在生成阶段:模型最初看到了图像,但生成长文本时逐渐依赖语言模型先验。训练时可以加入 visual attention supervision。
例如,当生成 "dog" 这个 token 时,cross-attention 应该集中在 dog 的视觉区域。
math
L_{\text{attn}}
=
\text{KL}(A_{\text{pred}} \parallel A_{\text{gt}})
其中:
A_pred是模型生成当前词时对视觉 token 的 attention;A_gt是 bbox / mask 转换得到的目标注意力分布。
使用方式
text
生成对象词 → attention 对齐 bbox
生成属性词 → attention 对齐对应对象区域
生成 OCR 文本 → attention 对齐文字区域
生成空间关系 → attention 覆盖两个相关对象
不过要注意:attention 监督不能单独使用。因为高 attention 不一定等于真实因果依据,最好与 grounding loss、claim verifier、DPO 共同使用。
10. 反事实监督:打破语言共现偏置
幻觉经常来自数据共现。例如:
text
table → chair
snow → ski
keyboard → mouse
plate → food
如果训练集中这些对象经常一起出现,模型容易在只看到 table 时自动补出 chair。
解决方法是构造 counterfactual samples:
text
原图:table + chair
反事实图:只保留 table,移除 chair
问题:Is there a chair?
答案:No.
或者:
text
原图:person holding cup
反事实图:person holding phone
问题:What is the person holding?
答案:phone.
训练目标是让模型关注视觉证据,而不是 dataset bias。
常见构造方法
| 方法 | 说明 |
|---|---|
| object removal | 删除图中对象 |
| object replacement | 替换相似对象 |
| attribute editing | 改颜色、数字、文字 |
| relation editing | 改左右、上下关系 |
| caption corruption | 在 caption 中插入错误对象 |
| image-text mismatch | 图文不匹配样本 |
HDPO 就针对不同幻觉原因构造 preference pair,包括视觉能力不足、长文本生成和多模态冲突三类原因。(arXiv8)
11. 难度感知监督:不要让模型只学容易样本
偏好优化中还有一个问题:模型可能主要从容易区分的样本中学习,例如"图中没有飞机却说飞机"。但真正困难的是:
text
图中是狼,错误回答说狗
图中是 3 个瓶子,错误回答说 4 个
图中是 16:35,错误回答说 18:35
DA-DPO 指出,MLLM 在多模态 DPO 中可能过度关注容易区分的 preference pair,导致细粒度幻觉抑制不足;它通过 difficulty estimation 给偏好样本加权,让模型更关注困难样本。(arXiv9)
训练时可以设置:
math
L_{\text{weighted-DPO}}
=
w_i \cdot L_{\text{DPO}}(x_i, y_i^+, y_i^-)
其中 w_i 由样本难度决定:
text
easy sample → lower weight
hard sample → higher weight
ambiguous sample → human review or uncertainty label
12. 多阶段训练流程推荐
一个比较实用的低幻觉 MLLM 训练流程如下:
text
Stage 1: 视觉-语言预对齐
- image-text contrastive learning
- region-text alignment
- OCR alignment
- object-level grounding
Stage 2: 多任务 SFT
- caption
- VQA
- detection-aware QA
- counting QA
- OCR QA
- spatial relation QA
- answerability QA
Stage 3: 幻觉负样本增强
- absent object QA
- hard negative caption
- counterfactual image-text pair
- conflict instruction data
Stage 4: 偏好优化
- HA-DPO / HDPO / RLHF-V style DPO
- chosen = grounded answer
- rejected = hallucinated answer
Stage 5: verifier / uncertainty 联合训练
- claim-level supported / unsupported
- confidence calibration
- refusal / abstention training
13. 不同辅助监督信号对应的幻觉类型
| 幻觉类型 | 推荐辅助监督信号 |
|---|---|
| 不存在物体幻觉 | object presence / absence label、bbox、negative QA |
| 属性幻觉 | attribute label、region-level color/material supervision |
| 数量幻觉 | counting label、detector count、set prediction loss |
| OCR 幻觉 | OCR box、OCR text、character-level loss |
| 空间关系幻觉 | relation triplet、scene graph、pairwise region supervision |
| 长文本幻觉 | claim-level verification、span-level correction |
| 知识幻觉 | retrieval evidence、source attribution、external KB supervision |
| 推理幻觉 | rationale verification、step-level reasoning supervision |
| 拒答不足 | answerability label、uncertainty head、confidence calibration |
| 共现偏置幻觉 | counterfactual sample、hard negative contrastive learning |
14. 一个可落地的训练样本格式
可以把每条样本设计成:
json
{
"image": "xxx.jpg",
"instruction": "Describe the image carefully.",
"answer": "There are two people sitting at a table.",
"objects": [
{
"label": "person",
"bbox": [120, 80, 260, 420],
"attributes": {"clothes": "black shirt"}
},
{
"label": "table",
"bbox": [60, 300, 520, 470]
}
],
"negative_objects": ["dog", "car", "laptop"],
"claims": [
{
"text": "There are two people",
"status": "supported",
"evidence": [[120, 80, 260, 420], [280, 90, 410, 430]]
},
{
"text": "sitting at a table",
"status": "supported",
"evidence": [[60, 300, 520, 470]]
}
],
"rejected_answer": "There are three people sitting at a table with a dog.",
"answerable": true,
"confidence": 0.92
}
对应训练损失:
math
L_{\text{total}}
=
L_{\text{gen}}
+
\lambda_1 L_{\text{ground}}
+
\lambda_2 L_{\text{contrast}}
+
\lambda_3 L_{\text{claim}}
+
\lambda_4 L_{\text{answerability}}
+
\lambda_5 L_{\text{DPO}}
15. 工程建议:优先级排序
如果资源有限,建议按下面优先级做:
第一优先级
text
负样本 QA
+ object presence / absence
+ hallucination-aware DPO
这是成本最低、收益较高的组合。
第二优先级
text
bbox / OCR / attribute grounding
+ span-level hallucination label
+ claim verifier
适合商品识别、文档 OCR、工业质检、机器人视觉。
第三优先级
text
counterfactual data
+ hard negative contrastive learning
+ uncertainty / refusal supervision
适合进一步增强鲁棒性。
第四优先级
text
scene graph
+ relation reasoning
+ step-level visual CoT verification
适合复杂推理、空间关系、视频理解。
总结
MLLM 训练中减少幻觉,关键不是单纯增加 SFT 数据,而是引入能约束视觉事实的辅助监督信号:
text
1. bbox / mask / OCR / attribute / relation grounding
2. object absence 与 hard negative 负样本
3. chosen-rejected 偏好监督
4. span-level / claim-level 幻觉标注
5. detector / segmentor / OCR teacher 蒸馏
6. contrastive learning 与反事实样本
7. verifier、answerability、uncertainty 联合训练
最推荐的组合是:
text
Grounding Supervision
+ Negative QA
+ Hallucination-aware DPO
+ Claim-level Verifier
+ Uncertainty / Refusal Training
概括:要让 MLLM 不幻觉,训练时必须从"只学会回答"升级为"学会回答、学会找证据、学会识别无证据、学会拒绝错误假设"。
参考链接:
1: https://arxiv.org/abs/2305.10355?utm_source=chatgpt.com "Evaluating Object Hallucination in Large Vision-Language ..."
2: https://arxiv.org/abs/2311.16839?utm_source=chatgpt.com "Enhancing LVLMs through Hallucination-Aware Direct ..."
3: https://arxiv.org/html/2312.00849v2?utm_source=chatgpt.com "RLHF-V: Towards Trustworthy MLLMs via Behavior ..."
4: https://arxiv.org/abs/2312.10665?utm_source=chatgpt.com "Silkie: Preference Distillation for Large Visual Language Models"
5: https://arxiv.org/abs/2312.00849?utm_source=chatgpt.com "RLHF-V: Towards Trustworthy MLLMs via Behavior Alignment from Fine-grained Correctional Human Feedback"
6: https://openreview.net/forum?id=oZDJKTlOUe\&utm_source=chatgpt.com "Analyzing and Mitigating Object Hallucination in Large..."
7: https://aclanthology.org/2024.findings-acl.775.pdf?utm_source=chatgpt.com "Aligning Large Multimodal Models with Factually ..."
8: https://arxiv.org/abs/2411.10436?utm_source=chatgpt.com "Mitigating Hallucination in Multimodal Large Language Model via Hallucination-targeted Direct Preference Optimization"
9: https://arxiv.org/abs/2601.00623?utm_source=chatgpt.com "DA-DPO: Cost-efficient Difficulty-aware Preference Optimization for Reducing MLLM Hallucinations"