先說一件真事。研究者給兩個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倍。






