2025算法八股——深度學習——MHA MQA GQA

MHA、MQA、GQA 都是深度學習中注意力機制的相關概念,其中 MHA 是標準的多頭注意力機制,MQA 和 GQA 則是其優化變體,以下是它們的區別、優缺點介紹:

區別

  • MHA(多頭注意力):是 Transformer 架構的核心組件,會將輸入的查詢(Query)、鍵(Key)和值(Value)分別投影到多個不同的頭中,每個頭都擁有專屬的 Q、K、V 映射參數,它們獨立計算注意力,然后將多個頭的結果拼接后投影回原始維度。
  • MQA(多查詢注意力):屬于 MHA 的優化方案,其所有的查詢頭共享同一組 K、V 參數,每個頭依然保持獨立的 Q,以此在保持查詢頭多樣性的同時,大幅減少內存占用。
  • GQA(分組查詢注意力):是 MHA 和 MQA 的折中方案,它先把查詢頭劃分成若干個組,每組配備獨立的 K、V 參數,而組內所有查詢頭共享該組的 K、V 來計算注意力,最后將頭部輸出拼接后經線性層整合。

優缺點

  • MHA
    • 優點:能讓模型在不同的子空間中學習不同的注意力模式,提高了模型的表達能力,可使模型關注輸入序列的不同部分,并且支持并行計算,能在 GPU 上高效執行。
    • 缺點:每個查詢頭都需要與多個鍵計算注意力,計算量較大,并且還需要存儲多個 Q、K、V 頭,大模型中顯存占用較多。
  • MQA
    • 優點:由于所有查詢頭共享 K、V,極大減少了計算成本,尤其適用于推理階段,也降低了內存占用,對處理超長文本較為友好。
    • 缺點:僅有一個 K、V 組,可能會讓模型的表達能力受到影響,難以很好區分不同查詢頭的語義信息,上下文信息捕捉能力有所下降。
  • GQA
    • 優點:相比 MHA,減少了鍵值計算的開銷,計算效率有所提升,同時在視覺 Transformer 等計算機視覺任務里也能表現不錯,可降低視覺 Transformer 在圖像數據上的計算復雜度。
    • 缺點:因查詢頭共享 K、V,會讓模型在靈活性上有一定損失,相對標準 MHA,其表達能力可能會降低。

備注:

在 MQA(多查詢注意力)中,K、V 的維度不會除以頭數?H?。

在標準的 MHA(多頭注意力)里,假設模型隱藏層維度是?dmodel?,注意力頭數為?H,通常會將?dmodel??均勻劃分到各個頭中,所以每個頭的 K、V 維度是?dmodel?/H,K、V 的張量形狀是 (batch_size, seq_len,?H,?dmodel?/H) 。但 MQA 中所有查詢頭共享同一組 K、V 參數,其 Key 與 Value 線性層輸出維度為 (batch_size, seq_len,?dmodel?),也就是不再需要按頭數對維度進行切分,K、V 本身的維度就是原始的模型維度,后續會通過廣播機制將它們擴展到和查詢頭數量相匹配的形狀以完成注意力計算 。

MQA減少計算量體現在兩方面:

1、減少多余投影的計算次數。

2、? 標準的MHA每個頭都擁有專屬的 Q、K、V 映射參數?每個頭的?Ki??是獨立存儲的 MQA 通過?K 的共享和廣播,減少了內存訪問的離散性,提高了硬件利用率。

3、減少對額外的每個頭的K V投影矩陣的梯度計算。

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

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

相關文章

Vue3》》eslint Prettier husky

安裝必要的依賴 npm install -D eslint eslint/js vue/eslint-config-prettier prettier eslint-plugin-vue 初始化 ESLint 配置 npm init eslint/config// eslint.config.js // 針對 JavaScript 的 ESLint 配置和規則。保持 JavaScript 代碼的一致性和質量 import js from &qu…

Custom SRP - Point and Spot Lights

https://catlikecoding.com/unity/tutorials/custom-srp/point-and-spot-lights/Lights with Limited Influence1 Point Lights1.1 Other Light Data (Point )同方向光一樣,我們支持有限數量的 Other Light.盡管場景中可能有很多 Other Lights,可能有超過光源上限的光源時可見的…

hive數據倉庫的搭建

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄前言一、內嵌模式二、本地模式三、遠程模式前言 HIVE是基于HDFS的數據倉庫,要首先搭建好HADOOP的集群才可以正常使用HIVE,HADOOP集運搭建詳見…

域名SSL證書免費申請lcjmSSL

.-.lcjmSSL(又名“來此加密”)是一個提供免費SSL證書申請的一站式平臺。它支持單域名、多域名以及泛域名證書申請,且單張證書最高可覆蓋100個域名,讓您輕松實現全站HTTPS加密。為什么您的網站必須安裝SSL證書?數據加密…

“能量逆流泵”:一種基于電容陣與開關矩陣的超高效大功率降壓架構

摘要本文提出并驗證了一種面向大功率降壓應用的革命性電源架構——"能量逆流泵"(Energy Inversion Pump, EIP)。該架構摒棄了傳統Buck轉換器中的電感元件,通過高速開關矩陣控制的電容陣列,將高壓側能量以"分時、分…

打造精簡高效的 uni-app 網絡請求工具

在 uni-app 開發中,網絡請求是連接前端與后端的核心橋梁。一個設計良好的請求工具能夠顯著提升開發效率,減少重復代碼。本文將分享一個精簡版的 uni-app 網絡請求工具實現,它保留了核心功能同時保持了足夠的靈活性。設計思路一個優秀的網絡請…

【面試場景題】交易流水表高qps寫入會有鎖等待或死鎖問題嗎

文章目錄一、先明確交易流水表的核心特性二、InnoDB的鎖機制在流水表寫入場景的表現1. 行鎖(Record Lock):基本不涉及2. 間隙鎖(Gap Lock)與Next-Key Lock:幾乎不觸發3. 表鎖:僅在極端場景出現三…

項目部署——LAMP、LNMP和LTMJ

前情提要問:如何通過nginx的反向代理,代理多臺虛擬主機(一臺apache服務器上的虛擬主機)?1.在nginx的配置文件中,將基于域名的訪問改為基于端口的訪問(nginx.conf)upstream daili{ser…

晨曦中,它已勞作:一臺有溫度的機器人如何重塑我們的潔凈日常

清晨六點,城市的輪廓在微光中逐漸清晰。某高端小區的路面上,一臺灰色機身、線條流暢的機器正在安靜地工作。它繞過停靠的車輛,精準地沿著路緣石前進,吸走落葉與塵土,遇到突然竄出的流浪貓時輕巧避讓,仿佛有…

【最新高級版】酷柚易汛生產管理系統v1.2.8 +uniapp全開源+文檔教程

酷柚易汛生產管理系統是基于FastAdminThinkPHPLayuiuniapp開發的生產管理系統,幫助企業數字化轉型,打造智能工廠,專業為生產企業量身開發的一套完整的生產管理系統。主要包含以下模塊:購貨模塊、生產模塊、倉庫模塊、資料模塊&…

40分鐘的Docker實戰攻略

一:什么是Docker (1)基本概念 Docker 是一種開源的 容器化平臺,用于快速構建、部署和運行應用程序。它通過將應用程序及其依賴項打包到輕量級的、可移植的容器中,實現了環境一致性,解決了“在我機器上能運…

qt使用camke時,采用vcpkg工具鏈設置OSG的qt模塊osgQOpenGLWidget

【免費】osgQOpenGLWidget嵌入qt模塊,VS2022使用cmake的方式,工具鏈vcpkg資源-CSDN下載 CMake中設置 1.查找osg相關的庫,同時也會設置對應include的路徑 # 檢查是否找到 osg find_package(OpenSceneGraph 3.6.5REQUIRED COMPONENTS osgosgUtilosgGAosgViewerosgDBosgAnimatio…

洛谷 P2245 星際導航(kruskal 重構樹 + 倍增優化求路徑最大邊權)

題目鏈接 題目難度 洛谷上是藍題&#xff0c;我覺得這道題挺簡單的&#xff0c;一眼就看穿了&#xff0c;應該是綠題。 題目解法概括 kruskal 重構樹 倍增優化求路徑最大邊權。 代碼 #include <iostream> #include <vector> #include <algorithm> #in…

STM32H743-ARM例程1-IDE環境搭建與調試下載

目錄實驗平臺環境搭建一、Keil MDK集成開發環境1.MDK簡介2.MDK5安裝3.程序下載與調試二、STM32CubeMX1.STM32CubeMX簡介2.JAVA JRE安裝3.STM32CubeMX安裝4.STM32CubeH7庫安裝實驗平臺 硬件&#xff1a;銀杏科技GT7000雙核心開發板-ARM-STM32H743XIH6&#xff0c;銀杏科技iTool…

FPGA學習篇——Verilog學習MUX的實現

PS&#xff1a;目前手上仍然沒有板子&#xff0c;按照野火視頻的講解&#xff0c;目前我們只能做到前面六步&#xff08;其實第一步設計規劃也是需要看板子的硬件的&#xff0c;但是現在沒有板子就完全與野火傳授的板子一致來看&#xff09; 首先我們以最簡單的2路選擇器MUX2_1…

OpenStack 學習筆記

OpenStack 1. 什么是 OpenStack 1.1 OpenStack 發展史 2006 年亞馬遜推出 AWS&#xff0c;正式開啟云計算的新紀元 2010 年 7 月美國國家航空航天局&#xff08;NASA&#xff09;與 Rackspace 合作&#xff0c;共同宣布 OpenStack 開放源碼計劃&#xff0c;由此開啟了屬于 Open…

mysql小數取整

1 向下取整 SELECT FLOOR(123.456); -- 結果: 1232 向上取整 SELECT CEIL(123.001); -- 結果: 1243 四舍五入 SELECT ROUND(123.456); -- 結果: 123 SELECT ROUND(123.556); -- 結果: 1244 截斷&#xff08;不四舍五入&#xff0c;直接截斷小數位&#xff09; SELECT …

Day43 PHP(mysql不同注入類型、mysql不同注入點、mysql傳輸不同數據類型 )

一、不同注入類型實際&#xff1a;我們未知sql是哪種類型&#xff0c;只能靠試/使用sql工具原理&#xff1a;閉合程序員寫的sql語句&#xff0c;并且執行我們所需要的sql語句&#xff0c;最后將閉合后多余的 用-- 或者#注釋掉。 總結一下就是先閉合&#xff0c;后注釋。共四種…

Linux應用開發(君正T23):三網智能切換及配網功能

前段時間接手了一個監控項目&#xff0c;其中甲方對于設備的要求有一條就是實現網口eth、WiFi、4G三種手段的聯網方式并且當某一個網絡不好的時候就去切換到下一個能用的網絡&#xff0c;讓監控設備持續不斷的有網絡&#xff0c;保證監控數據的上傳。這個部分的功能就交由我來實…

IvorySQL 4.6:DocumentDB+FerretDB 實現 MongoDB 兼容部署指南

背景 MongoDB 誕生之初&#xff0c;便以出色的易用性與詳盡的驅動程序文檔脫穎而出&#xff0c;堪稱對傳統關系型數據庫的一次重要革新&#xff0c;也正因如此&#xff0c;它迅速成為開發者社區的熱門之選。 然而&#xff0c;隨著其許可模式從開源轉向 SSPL 許可證&#xff0…