Skip to content

HALC:自适应焦点对比解码缓解对象幻觉

论文:HALC: Object Hallucination Reduction via Adaptive Focal-Contrast Decoding

作者:Zhaorun Chen*, Zhuokai Zhao* 等(* 共同一作)

机构:University of Chicago、MIT、UNC-Chapel Hill、UIUC、TTIC

发布时间:2024年3月(ICML 2024

🔗 arXiv | 代码

分类标签:对象幻觉 解码策略 视觉上下文 Plug-and-Play Training-Free


一句话总结

在 LVLM 解码过程中,对每个可能产生幻觉的 token 动态采样多种视觉上下文窗口(FOV),通过 JSD 选取差异最大的 FOV 对进行双向对比解码修正局部幻觉,再用视觉匹配评分的 beam search 全局保障生成质量,无需训练即插即用,CHAIRS 在 MiniGPT-4 上从 30.87 降至 17.80。


一、问题与动机

1.1 对象幻觉的三种类型

VLM 的对象幻觉(Object Hallucination, OH)可分为三类:

类型含义举例
存在性幻觉生成图中不存在的物体图中只有时钟,却生成"冲浪板"
属性幻觉给出错误的属性描述红色杯子被描述为蓝色
关系幻觉描述错误的物体间关系"猫在桌子上"但实际猫在地上

1.2 为什么自回归解码天然倾向幻觉?

LVLM 的自回归生成有一个根本性问题:随着生成的推进,模型越来越依赖文本历史 y<t 而逐渐忽视视觉输入 v。这导致:

  • 生成越长,幻觉越多
  • 后面提到的物体比前面的更容易出现幻觉
  • 共现偏差(训练数据中的物体共现模式)会被文本上下文放大

1.3 现有方法的不足

方法思路局限
Woodpecker生成后用 ChatGPT 自我纠正依赖更强外部 LLM
LUREGPT-4 蒸馏额外修正器需要额外训练数据和模型
VCD视觉对比解码(添加噪声视觉输入)仅单一全图对比,不考虑局部
OPERA注意力惩罚 + 回溯分配需 beam search,仅缓解过度信任
DoLa层间对比解码非针对视觉幻觉设计

关键缺失:上述方法主要聚焦存在性幻觉,假设属性和关系幻觉会被自回归解码"顺带"修正;并且没有利用细粒度视觉信息——不同 token 对应图像中不同的局部区域。

1.4 核心洞察:最优视觉上下文可以消除幻觉

论文通过 oracle 实验验证:在 MME 基准上,通过穷举搜索为每个 token 找到最优视觉上下文窗口 v,可以消除 84.5% 的三种类型幻觉。这意味着问题不在于模型不"知道"正确答案,而在于解码时没有看到对的视觉区域


二、核心方法

HALC 在 token 级别运作,包含局部修正全局选择两个层面。

2.1 对象相关 Token 识别

不是每个 token 都需要 HALC 处理。每生成一个 token,用 spaCy 做词性标注(POS tagging):

词性对应幻觉类型是否触发 HALC
名词存在性幻觉
形容词/副词/数词/动词/代词属性幻觉
介词关系幻觉
其他(冠词、连词等)不易产生幻觉

根据统计,英语中约 35% 的词属于上述类别,因此 HALC 并非在每个 token 都触发。

2.2 视觉上下文检索

对触发 HALC 的 token,使用零样本检测器(Grounding DINO)在原图中定位其视觉上下文窗口 vd=(wd,hd,pd)(宽、高、中心点)。

一个有趣的发现:即使当前 token 是幻觉(如"冲浪板"在图中并不存在),检测器仍能给出一个有意义的视觉定位——因为检测模型在预训练时学会了将文本描述与图像区域关联,即使不完全匹配也会给出置信度最高的候选区域。

2.3 自适应焦点对比 Grounding(局部修正)

这是 HALC 的核心创新。

FOV 采样——指数扩展: 以检测窗口 vd 为起点,按指数扩展采样 n 个不同大小的视觉上下文窗口(Field of View, FOV):

vi=(wi,hi,pi)=((1+λ)iwd, (1+λ)ihd, pd)

从小到大覆盖从聚焦局部到包含全图的不同视觉范围。默认 n=4λ=0.6

动态视觉上下文选择——JSD 对比:n 个 FOV 裁剪图分别送入 LVLM,得到 n 个 token 概率分布 pi=pθ(|vi,x,y<t)。计算所有 FOV 对之间的 Jensen-Shannon 散度:

d(vi,vj)=JSD(pθ(|vi,x,y<t)  pθ(|vj,x,y<t))

选取 JSD 最大的 top-m 对。直觉是:FOV 对的解码分布差异越大,越可能其中一个包含(或接近)最优视觉上下文——因为正确 token 在最优视觉上下文附近会出现"急剧尖峰",而幻觉 token 则随 FOV 变化缓慢或噪声化。

双向对比解码: 对每个选中的 FOV 对 (vi,vj),进行双向对比——既让大 FOV 减去小 FOV(正向对比),也让小 FOV 减去大 FOV(负向对比):

pvi/vj(|vi,vj,x,y<t)exp[(1+α)fθ(|vi,x,y<t)αfθ(|vj,x,y<t)]

其中 fθ 是 logit 分布,α 是放大因子(默认 0.05)。

为什么需要双向对比? 不同于 DoLa 等方法中有明确的"专家层 vs 业余层"之分,FOV 空间中最优视觉上下文可能在任意位置——过小的 FOV 缺少上下文,过大的则引入干扰。因此无法假设哪个方向是"正确的",必须两个方向都试。

每个 FOV 对产生 2 个候选 token,m 对共产生 2m 个候选。

2.4 基于视觉匹配的 Beam Search(全局选择)

局部对比修正可能纠正单个 token,但需要在序列层面保持生成质量。HALC 采用 beam search,beam 大小为 k

  • 每个 HALC 步骤产生 2mk 个候选序列
  • BLIP 模型计算当前文本 yt 与原图 v 的相似度作为 beam 评分
  • 选取 top-k 个最佳序列继续生成

与传统 beam search 不同,评分函数不基于文本概率而基于视觉-文本匹配度,确保选出的序列与图像内容最忠实。

2.5 安全回退机制

如果检测器找到了视觉定位(vd),但经过 HALC 解码后最终选择的 token 仍然和原始幻觉 token 相同,说明 HALC 无法找到更好的替代。此时将该 token 替换为 [IDK](I Don't Know),避免生成不可信内容。


三、理论分析

论文为 FOV 采样策略提供了形式化的鲁棒性保证。

假设: 最优视觉上下文 v 存在一个 ϵ-邻域 B(v,ϵ),在邻域内解码分布与最优分布的差异有界:

D(pθ(|v), pθ(|v^))δ1,v^B(v,ϵ)

定理 5.1(简化表述):设检测器输出 vd=v+η(有偏差),从 vd 出发按分布 π(|vd) 采样 n 个 FOV,则 n 个样本中最小偏差的上界为:

hπ(v,n)δ+(1C)n

其中 C(0,1) 是依赖于 ϵη、采样参数的常数。n 时,上界趋近于 δ——即总能找到接近最优的 FOV。

这对正态分布采样和指数扩展采样均成立,只是常数 C 的表达式不同。


四、实验结果

4.1 CHAIR 评估(MSCOCO 500 张图)

方法MiniGPT-4 CHAIRSCHAIRILLaVA-1.5 CHAIRSCHAIRImPLUG-Owl2 CHAIRSCHAIRI
Greedy30.8712.3320.806.7723.208.33
Beam Search29.5611.3618.676.3021.677.63
DoLa30.8711.7021.006.7024.608.73
OPERA30.0011.6721.136.7322.137.57
VCD30.2712.6023.337.9027.279.73
Woodpecker28.8710.2023.857.5026.338.43
LURE27.8810.2019.486.5021.277.67
HALC17.808.1013.805.5017.337.43

HALC 在 MiniGPT-4 上 CHAIRS 从最佳基线 27.88 降到 17.80(降低 36%),且标准差极低(0.03 vs 其他方法 2-6),鲁棒性显著优于所有基线。

4.2 MME 评估(4 个 OH 相关子任务)

以 MiniGPT-4 为骨干,HALC 在所有子任务上均大幅领先:

子任务HALCGreedyDoLaOPERAVCDLURE
Existence155145145135135140
Position73.3363.336056.677060
Color141.67118.33118.33115133.33108.33
Count93.338585807068.33

平均提升:存在 +10.7%、位置 +18.3%、颜色 +19.4%、计数 +20.2%。

4.3 长文本鲁棒性

随 max token 从 64 增长到 384,其他方法的幻觉比例持续上升,而 HALC 是唯一在生成物体增多时幻觉比例反而下降的方法。

4.4 消融实验

FOV 采样初始化方式:

初始化CHAIRSCHAIRI
随机25.611.8
中心裁剪23.911.2
原图27.812.2
Grounding DINO22.08.8
OWLv223.410.8

即使随机初始化也优于直接用原图,验证了 FOV 采样机制本身的鲁棒性。检测器初始化进一步提升效果。

指数扩展比 λ

λCHAIRSCHAIRI
0.418.07.6
0.622.08.8
0.828.09.6

λ 过小导致 FOV 间差异不够,增加 beam search 难度;λ 过大则 FOV 粒度过粗。

Beam 大小 k

kCHAIRSCHAIRI
136.014.6
222.08.8
326.09.8
529.611.1

k=2 最优。更大的 k 反而变差,因为候选空间过大使全局匹配模型(BLIP)自身也可能引入误差。


五、局限性与未来方向

5.1 推理速度

HALC 的主要代价是推理时间。不并行化时约为 greedy 解码的 2.4×;并行化 FOV 解码后约 1.35×。对实时应用仍有较大开销。

5.2 依赖外部检测器

Grounding DINO 的检测质量直接影响 FOV 采样的起始质量。虽然理论证明了鲁棒性,但在检测器完全失效的领域(如抽象画、医学图像等)效果可能下降。

5.3 仅处理对象级幻觉

HALC 的 POS 过滤机制决定了它主要处理对象级幻觉(名词/形容词/介词),对更高层次的逻辑推理幻觉(如因果关系错误)无能为力。


六、个人思考

6.1 与项目内其他幻觉缓解工作的对比

方法干预阶段是否需要训练核心机制三种幻觉
HALC解码时FOV 对比 + 视觉匹配 beam search全部
HIME推理前编辑权重零空间投影编辑 MLP存在性为主
SENTINEL训练时 DPO句子级 C-DPO 早期干预存在性为主

HALC 是三者中唯一同时处理三种幻觉类型的方法,但代价是推理时的计算开销。HIME 零开销但仅编辑权重无法动态适应每个 token。SENTINEL 从训练阶段根治但需要偏好数据构建。三者互补性很强。

6.2 "最优视觉上下文"假说的深层含义

HALC 的核心假设——每个 token 都存在一个最优视觉上下文——本质上说明了当前 LVLM 的视觉编码器在将图像压缩为固定 token 序列时丢失了细粒度信息。这和最近高分辨率 VLM(如 InternVL-HD)的动态分辨率策略思路一致:为什么要用统一的视觉 token 序列处理所有语义粒度的查询?

6.3 FOV 对比的信息论视角

选择 JSD 最大的 FOV 对进行对比,实际上是在寻找对当前 token 信息增益最大的视觉上下文对比。这与 VCD 用噪声图像做对比的思路类似,但更精细——VCD 只有"全图 vs 噪声全图"一种对比,而 HALC 在 FOV 空间中自适应搜索最有信息量的对比。

6.4 时效性考量

HALC 发表于 ICML 2024,基线模型是 MiniGPT-4/LLaVA-1.5 等 7B 级别模型。对当前更强的 VLM(如 InternVL2.5、Qwen2.5-VL 等),其幻觉水平已大幅降低,HALC 的边际收益可能减小。但其核心思想——token 级别的自适应视觉 grounding——对任何自回归 VLM 都有理论价值。


参考

  • VCD(Leng et al., 2023):视觉对比解码,通过噪声图像做全图对比——HALC 的核心区别在于局部自适应 FOV 对比
  • OPERA(Huang et al., 2023):注意力过度信任惩罚 + 回溯分配——另一种解码阶段缓解幻觉的思路
  • DoLa(Chuang et al., 2023):层间对比解码——HALC 借鉴了对比解码的思想但应用于视觉空间
  • Woodpecker(Yin et al., 2023):生成后自我纠正流水线——依赖 ChatGPT 的 post-hoc 方法
  • LURE(Zhou et al., 2023):分析-修正两阶段缓解幻觉——需要 GPT-4 蒸馏额外修正器
  • Grounding DINO(Liu et al., 2023):开放集目标检测——HALC 的视觉 grounding 组件