Zubnet AI學習Wiki › 多頭注意力
基礎

多頭注意力

別名:MHA

平行執行多個注意力操作,每個都有自己學習到的查詢、鍵和值的投影。多頭注意力不是用一個注意力函數查看完整的模型維度,而是將維度分割成多個「頭」(例如,4096 維模型的 32 個頭,每個 128 維)。每個頭可以同時專注於不同類型的關係。

為什麼重要

多頭注意力是 Transformer 如此富有表現力的原因。一個頭可能專注於語法關係(主詞-動詞),另一個專注於位置模式(鄰近的詞),再一個專注於語意相似性。這種平行的專業化讓模型能同時捕捉多種類型的依賴關係,這是單一注意力頭無法如此有效做到的。

深度解析

機制:對於每個頭 i,模型學習獨立的投影矩陣 W_Q^i、W_K^i、W_V^i,將輸入投影到較低維度的空間(head_dim = model_dim / num_heads)。每個頭獨立計算注意力:softmax(Q_i · K_i^T / √d) · V_i。所有頭的輸出被串接起來,並通過最後一個線性層 W_O 投影回完整的模型維度。

頭的專業化

研究表明不同的頭會學習不同的功能。有些頭關注前一個 token(位置型)。有些頭關注語法相關的 token(主詞到其動詞)。有些實作「歸納」(模式完成)。有些進行廣泛關注(收集全域上下文)。並非所有頭都同等重要 — 修剪 20–40% 的頭通常對效能影響甚微,這表明存在顯著的冗餘性。

GQA 和 MQA

多查詢注意力(MQA)使用單一的鍵值頭,在所有查詢頭之間共享,將 KV 快取大小減少了頭的數量倍。分組查詢注意力(GQA)是一個折衷方案:一組查詢頭共享一個鍵值頭(例如,32 個查詢頭配 8 個 KV 頭)。GQA 保留了 MHA 大部分的品質,同時大幅減少了 KV 快取的記憶體。Llama 2 70B、Mistral 及大多數現代 LLM 使用 GQA。

相關概念

← 所有術語
← 多模態 大型語言模型 →