
先说一件真事。研究者给两个AI模型看同一张野外相机拍的黑白照片,两只黑熊在夜里走过一条落叶小道。他们只问了一句"请详细描述这张图片"。
LLaVA-NeXT给出的回答里,提到照片左上角有个时间戳,写着"2010-03-07 10:15:01 PM"。Qwen3-VL的回答里也提到了时间戳和温度,但内容完全不同。
问题是,这张照片压根没有清晰可辨的时间戳数字。两个模型都在一本正经地胡说八道,而且说的还不一样。
这就是多模态大语言模型的通病,学术上叫幻觉。
**幻觉**:模型生成的内容听起来很合理,但和图片里的实际信息对不上,属于一本正经地编造。
这不是简单的小毛病。想象你雇了一个说话很流利的助理,帮你看文件做报告,结果他经常把文件里没有的数字编出来讲给你听,讲得跟真的一样。这种助理再能说会道,你也不敢把重要工作交给他。医疗影像识别、自动驾驶这些高精度场景,一旦模型开始"看图编故事",后果可能很严重。
大家都在做的事,但都没说到点子上
过去几年,研究者们从各种角度想办法治幻觉。
有人选择"从外部矫正",重新训练模型,或者用强化学习去调教它,把模型当成一个黑箱,输入输出对不上就修正输出。这类方法效果有限,因为你根本不知道模型内部发生了什么,只能靠结果反推,治标不治本。
另一类思路更"贴近内部"一点,试图在解码过程中做手脚,或者调整注意力机制。这里有个关键背景概念。
**注意力机制**:Transformer模型里让AI决定"当前应该重点看哪些信息"的核心组件,每次生成一个词,模型都会给输入的各个部分(图片的各个区域、之前说过的每个字)分配一个"注意力权重",权重越高说明模型越依赖这部分信息。
问题是,几乎所有基于注意力的改进方法,都只是在看"注意力权重"这个表面指标,然后简单粗暴地说:既然模型现在语言注意力权重太高、视觉注意力权重太低,那我就强行把视觉权重调高。
这就像医生给病人看病,只看体温计读数,体温高了就直接冰敷降温,却不去查到底是感染、中暑还是别的什么原因导致发烧。体温计读数是个间接信号,它反映了"有问题",但不能告诉你问题的根源在哪。如果不去弄清楚根源,简单粗暴地压制某个指标,很可能把该压的没压对,不该压的反而压过头了。
论文里提到的一个具体后果叫"跷跷板困境":一味加强视觉注意力,模型说话会变得生硬、缺乏灵活性;一味依赖语言先验,又会加重视觉幻觉。两头都不讨好。
于是研究者们决定换个思路,不看权重这种表面信号,直接去拆解模型内部每个"注意力头"到底装了什么信息。
先搞清楚:模型内部到底有多少个"脑子"
要理解这篇论文的核心方法,得先知道Transformer模型的一个基本结构。
**注意力头**:Transformer的多头注意力机制里,每一个独立工作的子单元,一个模型的每一层通常有几十个注意力头并行工作,各自负责捕捉不同类型的信息关联。
你可以把一层的多头注意力想象成一个会议室里坐着几十个专家,每个人都在看同一份资料(当前的图片和文字),但各自关注的角度不一样。有的专家专门盯着图片的细节,有的专家专门顺着上下文的语言逻辑往下推,还有的专家两边都看一点,试图把视觉信息和语言信息结合起来判断。
问题是,这几十个专家里,到底哪些是真正在认真工作、哪些其实在划水?划水的专家如果不剔除,会干扰你对真正问题所在的判断。
研究者设计了一套方法,先把"划水的头"筛出去,再对剩下的头做精细分析。这套方法叫HEAL。
**HEAL**:全称Head-lEvel information disentAnglement and caLibration,意思是头层级的信息解耦与校准,这篇论文提出的核心方法框架。
第一步:谁是真的在干活,谁是摆设
怎么判断一个注意力头是不是在划水?
论文用了一个很直接的办法:因果噪声干预。具体做法是,把某个注意力头的输出替换成一段跟它统计特性(均值、方差)一致的高斯噪声,也就是让这个头"失能",看看整个模型最终的输出会不会因此发生明显变化。
**因果噪声干预**:把某个注意力头的输出替换成分布匹配的随机噪声,观察模型最终输出的变化程度,从而判断这个头对结果的实际影响力。
为什么不能只看这个头对应的权重参数大小?论文给出了理由,权重大不代表贡献大,因为如果这个头本身的激活值接近零,权重再大也是白搭;反过来,权重小的头如果激活值很大,也可能贡献不小。而且最终输出往往是多个头协同作用的结果,单看一个头的权重根本反映不出它的真实作用。
这就好比评价一个员工对公司业绩的贡献,你不能只看他的职级(权重)高不高,得看如果把他从团队里抽走,公司业绩到底会不会明显下滑(噪声干预后的输出变化)。职级高但摸鱼的人,抽走了业绩纹丝不动;职级不起眼但关键岗位的人,抽走了业绩立刻塌方。如果只按职级发奖金,那些真正撑场子的人反而会被忽略,公司迟早出问题。
通过这个干预实验,如果替换某个头之后模型输出几乎没变化,说明这个头是"因果冗余头",先把它从后续分析中剔除,减少噪声干扰。
第二步:给每个头做"信息成分分析"
筛掉划水的头之后,剩下的头才是真正值得深挖的对象。
论文借用了一个信息论工具,叫偏信息分解理论,来拆解每个注意力头内部到底装了什么类型的信息。
**偏信息分解理论**:一种信息论框架,用来把多个信息源共同提供给目标变量的信息,拆解成各自独有的部分、共享的部分和只有协同才能产生的部分。
具体到这篇论文,研究者想知道,一个多模态注意力头的输出,到底有多少是纯视觉信息、多少是纯语言信息、多少是两者协同产生的额外信息。
怎么测量?还是用干预的思路,这次叫反事实差分法。做法是构造四种输入组合:视觉和语言都保留、只保留视觉、只保留语言、两者都遮蔽(用噪声替代)。然后比较这四种情况下头输出的差异,用余弦相似度这类指标去量化差异大小。
**反事实差分法**:通过对比"完整输入"和"部分信息被遮蔽"这两种反事实场景下模型内部表征的差异,来反推每种信息源各自贡献了多少的分析方法。
这套操作听起来有点像医生做过敏原测试。你怀疑病人对某种食物过敏,不会直接问他,而是分别做"吃了A不吃B""吃了B不吃A""两个都吃""两个都不吃"这四种对照实验,通过症状变化的差异,精确判断到底是A过敏还是B过敏还是两者叠加才会过敏。如果不做这种对照,只凭病人自己感觉"好像吃了什么东西不舒服",你永远定位不到真正的致敏源。
通过这套分析,每个注意力头会被打上标签,分成四类:信息冗余头(内容量太小,没什么信息价值)、视觉头(主要处理图像信息)、语言头(主要处理文本信息)、协同头(视觉和语言信息都占相当比重,两者交织在一起)。
核心发现:问题不在头的数量,而在协同头内部的失衡
做完这套精细分类之后,论文得出了整篇文章最关键的一个结论。
**幻觉发生的时候,不是视觉头数量变少了,也不是视觉头的信息强度变弱了,而是协同头内部的信息分布,偏离了正常应有的平衡状态。**
这个发现打破了很多人的直觉。大家一直以为,模型产生幻觉是因为"看图看得不够认真",也就是视觉头没干好活。但论文的对比实验显示,生成正确词和生成幻觉词的时候,视觉头的数量几乎没有差别,视觉头的信息强度也差不多。真正出现明显差异的,是那些同时处理视觉和语言信息的协同头,它们内部视觉信息和语言信息的比例,在生成幻觉词的时候明显往语言那一侧倾斜了。
这就像一个乐队走音,你以为是某个乐手完全没在弹(对应"视觉头消失"这个错误猜测),但实际情况是,负责和声的那几个乐手一直都在弹,只是他们弹的音量比例悄悄变了,本该视觉和语言各占一半的声部,变成了语言声部盖过视觉声部。观众听到的是走调,但根源不是有人偷懒不弹,而是声部比例失衡。
这个发现的意义在于,它把治幻觉的靶点从"增强整体视觉关注"这种粗放操作,精确到了"校正协同头内部的比例失衡"这个具体机制。靶点找对了,后面的解决方案才能对症下药。
论文还观察到一个很有意思的动态现象,叫"任务驱动的相变"。模型在生成不同类型的词时,注意力头的角色会实时切换:生成偏语言性的词时,协同头会往语言头方向偏移;生成需要视觉支撑的词时,一部分语言头会转变成协同头,甚至一部分协同头会进一步偏向视觉头。这说明Transformer的注意力分配本身就是高度动态的,不是一成不变的。
解决方案:引入一个"平衡旋钮",动态校准信息比例
既然问题定位到了协同头的信息失衡,解决办法自然也从这里入手。
论文提出了一个叫"动态信息校准"的策略,核心是引入一个叫均衡因子的参数。
**均衡因子**:论文中用α表示,一个取值在0到1之间的参数,用来精确控制模型对视觉信息和语言信息的依赖比例,α越大表示越依赖视觉证据。
具体操作是,在计算注意力输出的时候,给视觉部分的数值乘上一个校准系数β,给语言部分乘上另一个校准系数γ,让两者调整后的比例正好等于设定的目标均衡值α。这个操作是在缓存更新之后、真正做注意力计算之前完成的,不会影响底层加速库(比如FlashAttention)的正常运行。
这有点像调音台上的推子。混音师不会重新录一遍整首歌,而是直接在输出端,把人声轨道的推子往上推一点,把伴奏轨道的推子往下压一点,让最终听到的比例更均衡。如果不用推子调整,而是要求歌手重新唱一遍、乐手重新演奏一遍(相当于重新训练整个模型),成本会高出几个数量级,而且未必真能解决问题。HEAL选择的是"调推子"这种轻量级、可解释、不用重训的方案。
论文还给出了两个理论证明支撑这套操作的合理性。第一个证明说,校准数值向量(也就是调那两个系数)在数学上等价于直接校准信息分布的比例,这不是拍脑袋的经验操作,而是有严格对应关系的。第二个证明说,随着均衡因子α的增大,模型最终输出表征和视觉信息的几何对齐程度会单调递增,也就是说这个旋钮的调节方向是可预测、可控的,不会出现"调大了反而更偏语言"这种反常情况。
工程上怎么落地:省着点算,但别算漏了
一个显而易见的问题是,给每一层每一个头都做这套反事实分析,计算量会不会爆炸?
论文给出了三个优化手段。
第一个是"周期性更新"。研究者发现,注意力头的类型分布在短时间窗口内(比如连续十到十五步生成)变化很小,具有时间局部性,所以没必要每生成一个字就重新分析一遍全局的头类型分布,可以每隔固定步数(论文默认设为10步)更新一次整体类型判断,而校准系数则是每一步都会重新计算。
第二个是"并行化因果干预",把原本需要逐个头串行计算的噪声替换操作,改造成张量并行的批量运算,让硬件加速器一次性处理完所有头的干预结果。
第三个是"批量化反事实分析",同样是把四种反事实输入状态打包成一个批次统一计算,而不是一个一个跑。
这套优化的效果体现在实测数据上。在两块RTX 4090显卡上,HEAL的推理速度达到每秒5.02个词,虽然比不加任何干预的基线模型(17.25词/秒)慢,但比另一个同类注意力校准方法EAH(3.17词/秒)快了1.58倍,端到端处理延迟从EAH的100.92秒降到了70.74秒,而额外占用的显存只增加了0.26GB。
数据说话:这套方法到底有没有用
论文在多个主流模型上做了测试,包括LLaVA系列、Qwen系列和InternVL系列,覆盖了幻觉专项基准(POPE、CHAIR、MMHal-Bench)和综合能力基准(MME、LLaVA-Bench、BLINK-Twice)。
在以LLaVA-1.5-7B为基座模型的对比实验中,HEAL在POPE基准上的F1分数达到87.7,准确率达到88.3,这两个数字在论文列出的十几种同类方法里都是最高的。在CHAIR基准上(衡量图像描述中的幻觉程度,数值越低越好),HEAL的句子级幻觉率(CHAIRS)是36.7,实例级幻觉率(CHAIRI)是10.7,同样处于领先水平。MME综合得分HEAL达到669.76,是所有对比方法里最高的。
作为即插即用模块集成到不同模型架构上的测试也显示出一致的提升。比如LLaVA-1.5-7B原本在LLaVA-Bench上的得分是72.5,加上HEAL之后提升到75.2;InternVL-7B原本得分51.6,加上HEAL之后提升到53.4;CHAIRS指标上,InternVL-7B从46.6降到39.2,幻觉明显减少。
在更新的模型和更有挑战性的基准上,比如Qwen3-VL-8B和InternVL3.5-8B配合MMHal-Bench、BLINK-Twice测试,同样观察到一致的改善,说明这套方法不是只对某个特定模型架构有效,而是具备一定的普适性。
论文还做了一个很直接的因果验证实验,双向验证了这个"信息失衡导致幻觉"的判断。当模型原本给出正确答案时,人为调低视觉信息比例,会诱发幻觉;当模型原本产生了幻觉时,人为调高视觉信息比例,幻觉会被缓解。一个具体的例子是问模型图片里有几只斑马,正确答案是六只,当均衡因子设得比较低(比如0.3或0.4)时,模型会答错说是五只,当均衡因子调到0.5以上,模型能给出正确答案。这种可以人为操控、并且结果符合预期方向的实验,比单纯的相关性观察更有说服力,证明这不只是巧合的统计关联,而是真的存在因果关系。
这个均衡旋钮该怎么调,是不是很难拿捏
均衡因子α并不是随便设一个值就能用的,论文做了细致的消融实验来摸清它的规律。
一个有意思的现象是,α和幻觉抑制效果之间呈现U形曲线关系:α太小,视觉信息不足,模型容易幻觉;α太大,语言流畅性被过度压制,模型会输出语法混乱、甚至重复啰嗦的句子(论文里举了个例子,α调到0.7时模型说出"六只斑马斑马"这种明显的语病)。
论文给出的实用经验是,对LLaVA和InternVL这类视觉理解能力相对弱一些的模型,α设在0.5到0.6比较合适;对Qwen这类视觉能力更强的模型,因为它本身的视觉表征已经比较可靠,不需要太多额外的视觉校准,α设在0.4到0.5反而效果更好。
这背后其实有个挺朴素的道理。视觉能力强的模型,好比一个视力本来就很好的人,你不需要给他戴特别厚的老花镜(大幅提高α)去强迫他看清细节,稍微提示一下就够了;视觉能力弱一些的模型,好比视力本身就有点模糊的人,需要更强的矫正力度才能看清楚。
更新间隔这个超参数则相对不敏感,实验显示5到15步之间的更新频率对最终效果影响很小,论文最终选择10步作为默认设置,在效果和计算开销之间取了个平衡点。
这套方法解决不了什么
论文也很坦诚地指出了HEAL的局限。
如果幻觉的根源在于视觉编码器本身就没提取到有效的图像特征,或者输入图片里压根就缺失相关的视觉证据,那HEAL作为一种推理阶段的注意力校准手段,是无能为力的。它能做的是在视觉信息和语言信息都已经存在于模型内部的前提下,调整两者的权衡比例,但如果视觉信息从一开始就没被正确编码进来,校准再多的注意力头也变不出不存在的信息。这类问题需要从模型架构或训练流程本身去改进。
另外,均衡因子和更新间隔目前还是靠经验设定,没有一套自动化的理论公式能直接算出最优值,这也是论文明确提到的未来改进方向。
写在后面
读这篇论文时,最触动我的其实不是HEAL这套方法本身,而是那个"任务驱动的相变"现象。
模型在生成不同词的时候,注意力头的角色会实时切换,协同头一会儿偏向语言,一会儿偏向视觉,就像一群工人根据当下的活计随时调换分工。这让我意识到,我们平时说"模型在看图"或者"模型在编语言",其实是把一个连续变化的动态过程,简化成了一个静态的标签。真实情况是,每一个词的生成,背后都有几十个头在做实时的角色分配,这个分配本身就是一场持续的博弈。
还有一个细节值得单独拎出来说。论文附录里专门讨论了HEAL的信息分解和经典的偏信息分解理论之间的数学关系,坦诚地指出论文里定义的"协同"指标,其实是"真正的协同效应"减去"冗余效应"之后的净值,不是纯粹的协同量。这种愿意公开承认方法局限性、把数学细节讲清楚而不是含糊带过的做法,在我看来比堆砌一堆漂亮的实验数字更让人信服。
那张野外相机拍熊的照片,两个模型编出了两个不同的假时间戳。下次你看到AI一本正经地"读出"一张图片里根本不存在的文字时,或许可以想一想,这不是模型在撒谎,而是它内部某些本该协同工作的神经元,悄悄把天平倒向了自己更熟悉的语言惯性那一边。
Q&A
Q1:HEAL方法主要解决什么问题?
A:HEAL主要解决多模态大语言模型(MLLM)在看图说话时产生幻觉的问题,也就是模型生成的内容和图片实际信息对不上。论文发现幻觉的根源是协同注意力头内部视觉和语言信息比例失衡,而不是视觉信息量不足,据此提出动态校准策略来纠正这种失衡。
Q2:均衡因子α应该怎么设置?
A:α没有固定的万能值,需要根据模型视觉能力调整。视觉能力较弱的模型(如LLaVA、InternVL)建议设在0.5到0.6之间,视觉能力较强的模型(如Qwen系列)设在0.4到0.5即可。设太低视觉信息不足容易幻觉,设太高又会损害语言流畅性,呈U形效果曲线。
Q3:HEAL和以往的注意力校准方法有什么不同?
A:以往方法大多依赖注意力权重这种间接信号,简单粗暴地强化视觉关注,容易导致视觉和语言顾此失彼的跷跷板困境。HEAL通过因果噪声干预和反事实差分法,先精细拆解每个注意力头内部的真实信息成分,再针对性校准协同头,定位更精确,速度也比同类方法EAH快1.58倍。
好文章,需要你的鼓励
本文介绍LT-OPD训练框架,通过让极限压缩的多模态大模型在自己生成的内容上接受满血版模型指导,并配合渐进式课程学习,在仅保留5%视觉token时把性能保留率从68.6%提升到82.3%,且不增加推理成本。
本文解读ALIGNOPSD方法,该方法针对AI智能体训练中"决策与时间戳错配"问题,通过先对齐功能相同的决策场景再打分,并按可变长度决策段分配信用,在ALFWorld、WebShop、Search-QA三大任务上相比GRPO提升5.5%至8.7%。
本文介绍自适应一致性图(ACG)方法,通过持久化执行记忆图与预算感知的上下文构建,帮助AI智能体在长任务中减少信息失联,在多项基准测试中相比ReAct等基线方法提升了任务成功率。
多智能体AI协作时重复计算KV缓存浪费严重。PReCache提出预计算低秩缓存和中性基础缓存重构两项设计,免训练实现最高3.1倍加速、2.3倍吞吐提升,且准确率仅比不共享方案低1.1个百分点。