模擬注意力:少量參數放大 Attention 表征能力

論文標題

SAS: Simulated Attention Score

論文地址

https://arxiv.org/pdf/2507.07694

代碼

見論文附錄

作者背景

摩根士丹利,斯坦福大學,微軟研究院,新加坡國立大學,得克薩斯大學奧斯汀分校,香港大學

動機

多頭注意力是 Transformer 的核心組件,它通過引入多組 QKV 投影來捕獲不同的特征子空間,從而在機器翻譯、問答等任務中取得巨大成功。研究表明,注意力頭的數量對 Transformer 性能至關重要:在保證每個頭的隱藏維度充分大的前提下,注意力頭數越多可以使模型效果越好。但問題在于,直接增加頭數或維度往往伴隨著模型參數量和計算開銷的劇增,這在訓練和部署中代價高昂

在這里插入圖片描述

目前也有一些注意力架構旨在提高計算效率,例如共享部分 K 和 V 的 MQA、GQA;使用矩陣分解的 MLA、MFA、TPA 等。但這些方法主要關注降低內存/計算成本,而非提升注意力的表達能力

于是作者希望在不顯著增加參數的前提下,設計一種新的注意力架構,實現近似于使用了更多注意力頭和更高每頭維度的性能提升

本文方法

本文提出 SAS(Simulated Attention Score,模擬注意力分數),核心思想是在注意力計算中引入額外的映射層,將低維的頭表示投射到更高維空間,以此“虛擬地”增大注意力頭數和每頭的隱藏維度

一、擴展注意力頭

對于查詢Q,其特征維度為 [B, T, H, D],分別表示 batch_size,序列長度,頭數和隱藏維度。為了擴充 H,需要把其他維度拉平,得到張量 Q_0,維度為 [B * T * D, H] ;然后使用一個 H * H’ 的線性變換得到 Q_1,維度為 [B * T * D, H’],其中 H’ > H;Q_1 過一個 ReLU 引入非線性;最后再過一個 H’ * H’ 的線性層,并加上 Q_1 的殘差連接

在這里插入圖片描述

于是我們獲得了更多的注意力頭,其中殘差連接的引入可以穩定訓練;值得注意的是,原始頭數 H 和擴展后的頭數 H’ 都遠小于每頭的特征維度 D,所以這個兩層 MLP 的參數開銷相對整模型來說可以忽略不計

除了使用 MLP 來擴展維度,作者還嘗試了卷積方案。具體地,將查詢 Q 的維度整理成 [B * T, H, D],類似于多通道特征圖,然后使用卷積變換將 H 擴展成 H’,同樣地,H’ > H,最后再過第二層卷積以及殘差連接

在這里插入圖片描述

類似地,在 K、V 中都應用上述擴展流程

二、擴展注意力維度

直覺上,每個注意力頭內部特征維度 D 越大,其能夠捕獲的子空間信息越豐富。因此作者進一步在 Q 和 K 上也引入了類似的維度擴展映射。這里之所以不對 V 進行擴展,是因為 V

直接決定了注意力模塊的輸出張量隱藏維度,擴大 V 的每頭維度到 D 會導致后續前饋層的參數量大幅增加,違背了不顯著增加計算量的初衷

在這里插入圖片描述

三、注意力聚合

在標準多頭注意力中,會將所有頭的輸出向量拼接,再通過一個輸出投影矩陣 O 映射回模型的隱藏維度。然而,由于 SAS 對注意力頭數進行了擴增,若仍按傳統方式拼接勢必導致輸出維度變大,進而導致 O 的參數量大大增加(H * hidden 變為 H’ * hidden)。為此,作者提出了參數高效注意力聚合機制,旨在不增加輸出層參數規模的情況下完成對多頭輸出的整合

實現過程非常簡單:假設注意力頭數擴展了 r 倍,即 r * H = H’,那么便把所有頭劃分成 r 組,每組都按照原本的計算流程與 O 相乘,得到 r 組輸出結果,最后取平均作為注意力模塊的最終輸出傳向前饋層

在這里插入圖片描述

實驗結果

作者在多種基準任務和數據集上對SAS進行了驗證,包括語言模型預訓練及下游任務評估,全面展示了SAS在準確率和效率方面的優勢

一、預訓練效果

下圖對比了SAS與標準MHA、MQA、GQA、MLA、TPA等方法在ArXiv和Books3數據集上的表現。結果表明,無論是短序列訓練(長度512)還是長序列訓練(長度1024),SAS均取得了最低的驗證困惑度

在這里插入圖片描述

除了取得更好的性能,SAS還加速了模型的收斂。作者報告,在 Books3 數據集、序列長度512的訓練中,MHA模型在5萬步時達到29.86的驗證困惑度,而SAS模型在3萬步時就達到了相近的30.49,即 SAS 可以節約 40% 左右的計算資源

此外,作者還在更大的訓練長度、更大的模型尺寸上做了驗證,結果表明相比于其他注意力機制 SAS 具備穩定的優勢

二、下游任務效果

作者評測了在多個下游任務基準(ARC、HellaSwag、PIQA、ScIQ、SocialIQA、WinoGrande)上 SAS 與其他注意力模型的效果,可見在多種參數量、訓練數據量的實驗設置下,SAS 大部分情況下都表現出了最優性能

在這里插入圖片描述

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

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

相關文章

零基礎|寶塔面板|frp內網穿透|esp32cam遠程訪問|微信小程序

1.準備好阿里云服務器和寶塔面板2.安裝frp服務端3.測試(密碼賬號在詳情里面)4.配置客戶端#一、沒有域名情況下 [common] server_addr #公網ip地址,vps server_port 7000 服務的bind_port token 12121212 [httpname] type tcp # 沒有域名情況下使用 tcp local_i…

Spring Boot整合MyBatis+MySQL+Redis單表CRUD教程

Spring Boot整合MyBatisMySQLRedis單表CRUD教程 環境準備 1. Redis安裝(Windows) # 下載Redis for Windows # 訪問: https://github.com/tporadowski/redis/releases # 下載Redis-x64-5.0.14.1.msi并安裝# 啟動Redis服務 redis-server# 測試連接 redis-c…

linux學習第30天(線程同步和鎖)

線程同步協同步調,對公共區域數據按序訪問。防止數據混亂,產生與時間有關的錯誤。數據混亂的原因資源共享(獨享資源則不會)調度隨機(意味著數據訪問會出現競爭)線程間缺乏必要同步機制鎖的使用建議鎖!對公共數據進行保護。所有線程【應該】在…

JavaScript中的系統對話框:alert、confirm、prompt

JavaScript中的系統對話框:alert、confirm、prompt 在Web開發的世界里,JavaScript始終扮演著“橋梁”的角色——它連接用戶與網頁,讓靜態的頁面煥發活力。而在這座橋梁上,系統對話框(System Dialogs)是最基…

圓冪定理深度探究——奧數專題講義

圓冪定理深度探究——奧數專題講義 開篇語:幾何中的"隱藏等式" 在平面幾何的星空中,圓與直線的交點仿佛散落的珍珠,而連接這些珍珠的線段之間,藏著一組令人驚嘆的等量關系。當我們用直尺測量、用邏輯推導時,…

一文看懂顯示接口:HDMI / DP / VGA / USB-C 有什么區別?怎么選?

剛買的新顯示器,插上線卻發現畫面糊成馬賽克?游戲打到關鍵時刻突然黑屏?4K電影看著看著就卡頓?別急!這些問題很可能都是"接口沒選對"惹的禍!今天我們就來徹底搞懂HDMI、DP、VGA、USB-C這些常見的…

【ARM嵌入式匯編基礎】- 操作系統基礎(二)

操作系統基礎(二) 文章目錄 操作系統基礎(二)6、線程7、進程內存管理8、內存頁9、內存保護10、匿名內存和內存映射內存11、內存映射文件和模塊6、線程 程序首次啟動時,會創建一個新進程,并為該程序分配一個線程。該初始線程負責初始化進程并最終調用程序中的主函數。多線…

C#調用Matlab生成的DLL

C#調用Matlab生成的DLL 1.Matlab生成DLL文件1.1準備腳本文件1.2.輸出DLL文件2.Winform項目中調用DLL2.1.創建Winform項目2.2.添加引用2.3.調用DLL2.3.1. 方法12.3.2. 方法22.4.配置CPU3.運行測試4.缺點1.Matlab生成DLL文件 1.1準備腳本文件 在Matlab環境下創建腳本文件calcul…

Julia爬取數據能力及應用場景

Julia 是一種高性能編程語言,特別適合數值計算和數據分析。然而,關于數據爬取(即網絡爬蟲)方面,我們需要明確以下幾點:雖然它是一門通用編程語言,但它的強項不在于網絡爬取(Web Scra…

Java03 二維數組|方法

一、聲明數組和初始化(掌握)數據類型[] 數組名 ; 數據類型 數組名[] ;靜態初始化數據類型[] 數組名 {元素1,元素2,元素3};動態初始化數據類型[] 數組名 new 數據類型[5]; 數組名[0] 元素1;二、數組的內存結構(掌握)package…

1. JVM介紹和運行流程

1. jvm是什么JVM(Java Virtual Machine)是 Java 程序的運行環境,它是 Java 技術的核心組成部分,負責執行編譯后的 Java 字節碼(.class文件)。jvm 說白了就是虛擬機,一個專門運行java字節碼文件的…

Spring Cloud Gateway 的路由和斷言是什么關系?

1. 基本概念 路由是 Spring Cloud Gateway 的基本組成單元。它定義了從客戶端接收到的請求應該被轉發到哪個目標服務。一個完整的路由通常包含以下幾個要素: ID (id):路由的唯一標識符。目標 URI (uri):請求最終要被轉發到的后端服務地址。斷…

線程屬性設置全攻略

目錄 一、線程屬性的概念 二、線程屬性的核心函數 1. 初始化與銷毀線程屬性對象 2. 常用屬性設置函數 三、線程屬性的設置示例 1. 設置線程為分離狀態 2. 設置線程棧大小 3. 設置線程調度策略和優先級 四、線程屬性的關鍵注意事項 1. 分離狀態(Detached S…

蒼穹外賣-day06

蒼穹外賣-day06 課程內容 HttpClient微信小程序開發微信登錄導入商品瀏覽功能代碼 學習目標 能夠使用HttpClient發送HTTP請求并解析響應結果 了解微信小程序開發過程 掌握微信登錄的流程并實現功能代碼 了解商品瀏覽功能需求 功能實現:微信登錄、商品瀏覽 1. H…

安卓定制功能

未解決的定制功能 1.創建自定義分區 2.通過服務啟動應用進程 3.應用白名單 4.網絡白名單 5.應用鎖 6.默認launcher 7.多主頁動態切換 8.禁止狀態欄下拉/鎖屏頁面禁止下拉狀態欄(兩種一起) 9.導航欄動態打開關閉 10.固件默認是手勢還是導航欄 11.狀態欄動…

【項目】GraphRAG基于知識圖譜的檢索增強技術-實戰入門

GraphRAG—基于知識圖譜的檢索增強技術(一)GraphRAG入門介紹(二)GraphRAG基本原理回顧(三)GraphRAG運行流程3.1 索引(Indexing)過程3.2 查詢(Query)過程3.3 P…

Zookeeper添加SASL安全認證 修復方案

#作者:任少近 文章目錄1修復背景2 修復方案說明3 配置流程3.1停止zookeeper服務3.2Zookeeper添加SASL參數3.3配置jaas密碼文件3.4 添加啟動參數3.5啟動zookeeper服務3.6訪問測試4 Kafka連接zookeeper服務端配置4.1未配置身份認證4.2停止kafka服務4.3配置身份認證4.4…

AI進化論07:第二次AI寒冬——AI“改頭換面”,從“AI”變成“機器學習”

書接上回,上回咱們聊了神經網絡在第一次寒冬中的“蟄伏”與“萌動”。但別高興太早,AI很快就迎來了它的第二次“寒冬”(大概從20世紀80年代末到90年代中期)。這次寒冬啊,比第一次還“冷”,還“漫長”。AI這…

基于開源AI智能名片鏈動2+1模式與S2B2C商城小程序的渠道選擇策略研究

摘要:在數字化商業環境下,品牌與產品的渠道選擇對其市場推廣和運營成功至關重要。本文聚焦于如何依據自身品牌和產品特性,結合開源AI智能名片鏈動21模式與S2B2C商城小程序,運用科學的渠道選擇方法,慎重挑選1 - 2個適宜…

開源 C# .net mvc 開發(八)IIS Express輕量化Web服務器的配置和使用

文章的目的為了記錄.net mvc學習的經歷。本職為嵌入式軟件開發,公司安排開發文件系統,臨時進行學習開發,系統上線3年未出沒有大問題。開發流程和要點有些記憶模糊,趕緊記錄,防止忘記。 相關鏈接: 開源 C# .net mvc 開…