Sink Token

論文: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方法,通過:

  1. 識別視覺Sink Token區域
  2. 動態抑制這些區域的注意力權重
  3. 將"節省"的注意力預算重新分配給語義相關的視覺區域

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?

  • 步驟
  1. 計算激活值:對每個標記的隱藏狀態,計算其在 Sink Dimensions 上的激活值。
  2. 歸一化:用均方根(RMS)歸一化,避免數值過大。
  3. 閾值判定:若某標記的 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 ?maxdDsink??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 中"回收"注意力預算,重新分配給重要區域。
具體步驟
  1. 識別 Sink Token
  • 通過 Sink Dimensions 篩選出高激活值的視覺標記(如背景區域)。
  • 示例:若某圖像區域的隱藏狀態在 Dsink={1415, 2533} 上激活值 >20,則標記為 Sink Token。
  1. 選擇以圖像為中心的注意力頭
  • 篩選標準
    • 舍棄對視覺標記總注意力權重 <0.2 的頭(這些頭不關注圖像)。
    • 選擇"視覺非匯比率"(rh)>0.6 的頭(rh = 非 Sink Token 的注意力權重占比)。
  • 作用:這些頭更關注與文本相關的視覺區域(如圖4中"滑板"問題對應的注意力頭)。
  1. 重分配注意力權重
  • 提取預算:從 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 方法 通過"回收-重分配"機制,讓模型更關注關鍵視覺信息,無需訓練即可提升性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75292.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75292.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75292.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Event 觀察者模型及事件和消息隊列之間的區別筆記

Spring Event觀察者模型&#xff1a;基于內置事件實現自定義監聽 在Spring框架中&#xff0c;觀察者模式通過事件驅動模型實現&#xff0c;允許組件間通過事件發布與監聽進行解耦通信。這一機制的核心在于ApplicationEvent、ApplicationListener和ApplicationEventPublisher等接…

【復活吧,我的愛機!】Ideapad300-15isk拆機升級:加內存條 + 換固態硬盤 + 換電源

寫在前面&#xff1a;本博客僅作記錄學習之用&#xff0c;部分圖片來自網絡&#xff0c;如需引用請注明出處&#xff0c;同時如有侵犯您的權益&#xff0c;請聯系刪除&#xff01; 文章目錄 前言升級成本升級流程電池健康度加內存條和換內存條光驅位加裝機械硬盤更換電池重裝系…

基于PyQt5的自動化任務管理軟件:高效、智能的任務調度與執行管理

基于PyQt5的自動化任務管理軟件&#xff1a;高效、智能的任務調度與執行管理 相關資源文件已經打包成EXE文件&#xff0c;可雙擊直接運行程序&#xff0c;且文章末尾已附上相關源碼&#xff0c;以供大家學習交流&#xff0c;博主主頁還有更多Python相關程序案例&#xff0c;秉著…

JavaScript 庫:全面解析與推薦

JavaScript 庫:全面解析與推薦 引言 JavaScript 作為當今最流行的前端開發語言之一,擁有豐富的庫和框架。這些庫和框架極大地簡化了開發工作,提高了開發效率。本文將全面解析 JavaScript 庫,并推薦一些優秀的庫,幫助開發者更好地掌握 JavaScript。 JavaScript 庫概述 …

C#從入門到精通(5)

目錄 第十二章 其他基礎知識 &#xff08;1&#xff09;抽象類和方法 &#xff08;2&#xff09;接口 &#xff08;3&#xff09;集合與索引器 &#xff08;4&#xff09;委托和匿名方法 &#xff08;5&#xff09;事件 &#xff08;6&#xff09;迭代器 &#xff08;7…

【區塊鏈安全 | 第十四篇】類型之值類型(一)

文章目錄 值類型布爾值整數運算符取模運算指數運算 定點數地址&#xff08;Address&#xff09;類型轉換地址成員balance 和 transfersendcall&#xff0c;delegatecall 和 staticcallcode 和 codehash 合約類型&#xff08;Contract Types&#xff09;固定大小字節數組&#x…

Windows 系統下多功能免費 PDF 編輯工具詳解

IceCream PDF Editor是一款極為實用且操作簡便的PDF文件編輯工具&#xff0c;它完美適配Windows操作系統。其用戶界面設計得十分直觀&#xff0c;哪怕是初次接觸的用戶也能快速上手。更為重要的是&#xff0c;該軟件具備豐富多樣的強大功能&#xff0c;能全方位滿足各類PDF編輯…

vue3相比于vue2的提升

性能提升&#xff1a; Vue3的頁面渲染速度更快、性能更好。特別是在處理大量數據和復雜組件時&#xff0c;優勢更加明顯。Vue3引入了編譯時優化&#xff0c;如靜態節點提升&#xff08;hoistStatic&#xff09;、補丁標志&#xff08;patchflag&#xff09;等&#xff0c;這些…

Redis 梳理匯總目錄

Redis 哨兵集群&#xff08;Sentinel&#xff09;與 Cluster 集群對比-CSDN博客 如何快速將大規模數據保存到Redis集群-CSDN博客 Redis的一些高級指令-CSDN博客 Redis 篇-CSDN博客

【奇點時刻】GPT-4o新生圖特性深度洞察報告

以下報告圍繞最新推出的「GPT4o」最新圖像生成技術展開&#xff0c;旨在讓讀者從整體層面快速了解其技術原理、功能亮點&#xff0c;以及與其他常見圖像生成或AI工具的對比分析&#xff0c;同時也會客觀探討該技術在應用過程中可能遇到的挑戰與限制。 1. 技術背景概述 GPT4o新…

【算法day28】解數獨——編寫一個程序,通過填充空格來解決數獨問題

37. 解數獨 編寫一個程序&#xff0c;通過填充空格來解決數獨問題。 數獨的解法需 遵循如下規則&#xff1a; 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。&#xff08;請參考示例圖&#xff…

【已解決】Javascript setMonth跨月問題;2025-03-31 setMonth后變成 2025-05-01

文章目錄 bug重現解決方法&#xff1a;用第三方插件來實現&#xff08;不推薦原生代碼來實現&#xff09;。項目中用的有dayjs。若要自己實現&#xff0c;參考 AI給出方案&#xff1a; bug重現 今天&#xff08;2025-04-01&#xff09;遇到的一個問題。原代碼邏輯大概是這樣的…

力扣刷題-熱題100題-第29題(c++、python)

19. 刪除鏈表的倒數第 N 個結點 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/?envTypestudy-plan-v2&envIdtop-100-liked 計算鏈表長度 對于鏈表&#xff0c;難的就是不知道有多少元素&#xff…

【QT】QT的多界面跳轉以及界面之間傳遞參數

QT的多界面跳轉以及界面之間傳遞參數 一、在QT工程中添加新的界面二、多界面跳轉的兩種情況1、A界面跳到B界面&#xff0c;不需要返回2、A界面跳到B界面&#xff0c;需要返回1&#xff09;使用this指針傳遞將當前界面地址傳遞給下一界面2&#xff09;使用parentWidget函數獲取上…

【力扣hot100題】(022)反轉鏈表

非常經典&#xff0c;我寫的比較復雜&#xff0c;一直以來的思路都是這樣&#xff0c;就沒有去找更簡單的解法&#xff1a;&#xff08;做鏈表題習慣加頭結點的前置節點了&#xff0c;去掉也行&#xff09; /*** Definition for singly-linked list.* struct ListNode {* …

劍指Offer(數據結構與算法面試題精講)C++版——day2

劍指Offer(數據結構與算法面試題精講)C++版——day2 題目一:只出現一次的數據題目二:單詞長度的最大乘積題目三:排序數組中的兩個數字之和題目一:只出現一次的數據 一種很簡單的思路是,使用數組存儲出現過的元素,比如如果0出現過,那么arr[0]=1,但是有個問題,題目中沒…

【C++游戲引擎開發】《線性代數》(3):矩陣乘法的SIMD優化與轉置加速

一、矩陣乘法數學原理與性能瓶頸 1.1 數學原理 矩陣乘法定義為:給定兩個矩陣 A ( m n ) \mathrm{A}(mn) A(mn)和 B ( n p ) \mathrm{B}(np) B(np),它們的乘積 C = A B \mathrm{C}=AB C=AB 是一個 m p \mathrm{m}p mp 的矩陣,其中: C i , j = ∑ k = 1…

Vue Transition組件類名+TailwindCSS

#本文教學結合TailwindCSS實現一個Transition動畫的例子# 舉例代碼&#xff1a; <transition enter-active-class"transition-all duration-300 ease-out"enter-from-class"opacity-0 translate-y-[-10px]"enter-to-class"opacity-100 translate-…

技術回顧day2

1.獲取文件列表 流程&#xff1a;前端根據查詢條件封裝查詢信息&#xff0c;后端接收后進行封裝&#xff0c;封裝為FileInfoQuery,根據fileInfoQuery使用mybatis的動態sql來進行查詢。 2.文件分片上傳 每次上傳需要上傳包括(文件名字&#xff0c;文件&#xff0c;md5值&#…

DeepSeek-R1 模型現已在亞馬遜云科技上提供

2025年3月10日更新—DeepSeek-R1現已作為完全托管的無服務器模型在Amazon Bedrock上提供。 2025年2月5日更新—DeepSeek-R1 Distill Llama 和 Qwen模型現已在Amazon Bedrock Marketplace和Amazon SageMaker JumpStart中提供。 在最近的Amazon re:Invent大會上&#xff0c;亞馬…