Transformer 與大型語言模型內部機制

多查詢注意力(MQA)

多查詢注意力是鍵/值共享的極端版本:所有查詢頭都對著單一共享鍵頭與單一共享值頭做注意力。查詢仍維持多樣——每個頭問不同的問題——但全都查同一張鍵/值表。這把 KV 快取從「每頭一份」壓到「總共一份」,而那正是長序列解碼時最大的記憶體成本。

設有 H 個頭、頭維度 d_h,標準注意力每個 token 快取 2 乘 H 乘 d_h 個數;MQA 只快取 2 乘 d_h,縮小 H 倍。注意力計算其餘不變:每個查詢頭以共享的 K 與 V 計算 softmax((q_i 乘 K 轉置除以根號 d_h) 乘 V)。由於算術強度提高,每讀一位元組做更多浮點運算,MQA 把解碼從記憶體受限推向計算受限,而那正是加速器高效之處。

代價在表達力:單一 KV 頭可能成為品質瓶頸、訓練也較不穩定,這就是為何分組查詢注意力(幾個 KV 頭而非一個)大致取代了純 MQA。當記憶體或延遲是主要限制時——例如極長上下文或緊湊的服務預算——MQA 仍有價值。

又稱
MQA多查詢注意力