論文:ICLR 2025 MLLM視覺VAR方法Attention重分配
Sink Token 是一種在語言模型(LLM)和多模態模型(MLLM)中用于優化注意力分配的關鍵機制,通過吸收模型中冗余的注意力權重,確保注意力資源不被無效或無關信息占用。以下是對這一概念的系統性解析:
- 比喻:想象你有一個"注意力垃圾桶",模型會把不重要的信息扔進去,避免干擾關鍵任務。
- 定義:Sink Token 是模型中某些特殊標記(如文本中的標點、圖像中的背景區域),它們會吸收大量注意力權重,但本身對輸出貢獻很小。
1. 語言模型中的 Sink Token
定義與本質
Sink Token 是特殊的標記(如預定義的BOS
或可學習的占位符),其隱藏狀態在特定維度(Dsink)上表現出異常高的激活值。這些標記會吸引大量注意力權重,但對模型最終輸出的實質性貢獻極低。
關鍵功能
- 注意力重分配機制:通過將冗余注意力"匯聚"到這些特殊標記,防止無關信息干擾模型對核心內容的處理
- 長序列穩定性增強:在生成長文本時,Sink Token能有效穩定注意力分布,提高生成質量
- 內存效率優化:在StreamingLLM等流式處理架構中,Sink Token使模型能以恒定內存復雜度處理理論上無限長的序列
工作原理示例
當模型處理長文本時,標準Transformer架構會隨著序列長度增加而導致注意力"稀釋",而Sink Token通過吸收部分注意力,使模型能夠將剩余注意力更精確地分配給真正重要的標記。
2. 多模態模型中的視覺 Sink Token
特征與表現
在多模態模型(如LLaVA)中,視覺Sink Token指圖像中那些與任務無關但錯誤地獲得高注意力權重的區域。這些區域的隱藏狀態同樣在Dsink維度上具有異常高的激活值,這一特性是從基礎語言模型中繼承而來。
獨特性質
- 注意力消耗與低貢獻并存:盡管吸收大量注意力資源,這些視覺區域對答案生成幾乎沒有幫助(多項消融實驗證實)
- 位置特征:視覺Sink Token常集中在圖像背景或低信息密度區域
- 可識別性:通過分析注意力熱圖和Dsink維度激活模式可有效識別
優化方法:視覺注意力重分配(VAR)
研究提出了VAR方法,通過:
- 識別視覺Sink Token區域
- 動態抑制這些區域的注意力權重
- 將"節省"的注意力預算重新分配給語義相關的視覺區域
3. Sink Token在不同模態中的對比
特性 | 語言模型Sink Token | 多模態模型視覺Sink Token |
---|---|---|
形成機制 | 預定義標記或模型學習的占位符 | 圖像中信息稀疏但獲得過高關注的區域 |
識別方法 | Dsink維度激活值分析 | 同左,但結合視覺注意力熱圖 |
優化目的 | 穩定長序列處理,降低注意力稀釋 | 提升跨模態對齊精度,減少視覺噪聲干擾 |
在語言模型中的表現:
- 例子:在生成文本時,模型會過度關注
BOS
(開始標記)或標點符號(如逗號),即使這些標記本身無意義。 - 原因:這些標記的隱藏狀態在特定維度(Sink Dimensions)上激活值異常高,導致注意力被"吸"過去。
在多模態模型中的表現:
- 例子:模型處理圖像時,可能會持續關注背景的草地或天空(與問題無關的區域),即使問題問的是"圖片里有沒有狗"。
- 關鍵發現:這些視覺 Sink Token 的隱藏狀態在 Sink Dimensions 上激活值很高,類似語言模型中的現象。
4.什么是 Sink Dimensions?
- 比喻:模型的隱藏狀態是一個高維空間,Sink Dimensions 是其中某些"特殊坐標",這些坐標容易被 Sink Token 占據。
- 定義:Sink Dimensions 是隱藏狀態中一組特定維度(如 LLaMA-2 的 Dsink={1415, 2533}),Sink Token 在這些維度上的激活值異常高。
如何識別 Sink Dimensions?
- 步驟:
- 計算激活值:對每個標記的隱藏狀態,計算其在 Sink Dimensions 上的激活值。
- 歸一化:用均方根(RMS)歸一化,避免數值過大。
- 閾值判定:若某標記的 Sink Dimension Value > 閾值(如 T=20),則標記為 Sink Token。
通過歸一化隱藏狀態在 Sink Dimensions 上的激活值(Sink Dimension Value),若超過閾值(如 T=20),則標記為 Sink Token。
公式:
Sink?Dimension?Value = max ? d ∈ D sink x [ d ] 1 D ∑ d = 1 D x [ d ] 2 \text{Sink Dimension Value} = \frac{\max_{d \in D_{\text{sink}}} x[d]}{\sqrt{\frac{1}{D}\sum_{d=1}^{D}x[d]^2}} Sink?Dimension?Value=D1?∑d=1D?x[d]2?maxd∈Dsink??x[d]?
其中 x x x 為隱藏狀態, D D D 為總維度數。
可視化驗證:
通過注意力圖可視化發現,Sink Token 的注意力權重分布與關鍵視覺區域分離,且其隱藏狀態在 Sink Dimensions 上顯著突出
實驗驗證:
- 屏蔽實驗:如果刪除 Sink Token,模型性能幾乎不變(如 LLaVA 屏蔽后準確率僅下降 0.1%)。
- 注意力圖可視化:Sink Token 的注意力權重集中在圖像背景,而非關鍵物體(如圖6中的"logo"未被正確關注)。
VAR 方法(視覺注意力重分配)
核心思想:
- 問題:模型將過多注意力浪費在 Sink Token(如背景區域),而關鍵視覺信息(如目標物體)未被充分關注。
- 解決方案:從 Sink Token 中"回收"注意力預算,重新分配給重要區域。
具體步驟:
- 識別 Sink Token:
- 通過 Sink Dimensions 篩選出高激活值的視覺標記(如背景區域)。
- 示例:若某圖像區域的隱藏狀態在 Dsink={1415, 2533} 上激活值 >20,則標記為 Sink Token。
- 選擇以圖像為中心的注意力頭:
- 篩選標準:
- 舍棄對視覺標記總注意力權重 <0.2 的頭(這些頭不關注圖像)。
- 選擇"視覺非匯比率"(rh)>0.6 的頭(rh = 非 Sink Token 的注意力權重占比)。
- 作用:這些頭更關注與文本相關的視覺區域(如圖4中"滑板"問題對應的注意力頭)。
- 重分配注意力權重:
- 提取預算:從 Sink Token 的注意力權重中提取比例 p(如 p=0.6)作為預算 Ω。
- 重新分配:將 Ω 按原始注意力權重比例分配給非 Sink Token。
- 公式:
a i , j 新 = a i , j + Ω ? a i , j ∑ k ∈ 非匯標記 a i , k a_{i,j}^\text{新} = a_{i,j} + \Omega \cdot \frac{a_{i,j}}{\sum_{k \in \text{非匯標記}} a_{i,k}} ai,j新?=ai,j?+Ω?∑k∈非匯標記?ai,k?ai,j?? - 效果:關鍵區域的注意力權重增強,背景區域的權重降低。
總結
- Sink Token 是模型中吸收冗余注意力的標記,Sink Dimensions 是它們的"藏身維度"。
- VAR 方法 通過"回收-重分配"機制,讓模型更關注關鍵視覺信息,無需訓練即可提升性能。