GitHub Repo
Transformers 合併 GQA 解碼優化,減少帶遮罩生成時的 K/V 複製
Transformers 於 11 月 4 日合併單 token 解碼優化,透過重排查詢頭,減少部分 SDPA 路徑的 K/V 複製。作者公布的特定 GPU 測試顯示解碼加速,但正式套件收錄情況與實際模型收益仍須確認。

Transformers 於 11 月 4 日將 PR #49743 合併至主分支,改善分組查詢注意力(GQA)的單 token 解碼。這項變更針對無法直接使用原生 GQA 的 SDPA 路徑,尤其是帶左側填補遮罩的批次生成;目前可確認主分支已納入,不能據此認定既有 pip 安裝版本已受益。合併紀錄
GQA 讓多個查詢頭共用較少的鍵值頭,但舊路徑在部分條件下仍呼叫 repeat_kv,每層、每個解碼步驟都複製 K/V。新方法把共用同一鍵值頭的查詢頭重排為該頭的多個查詢列,維持原有對應關係,再將輸出還原。這能避開大型鍵值張量的重複搬移;預填、多 token 查詢及既有 enable_gqa 路徑維持原流程。技術說明
作者在 RTX PRO 6000 Blackwell、PyTorch 2.9.1 上,以隨機初始化、形狀對應 Llama-3.1-8B 的模型測試:批次 32、提示長度 4k 時,每步解碼由 152.1 毫秒降至 54.2 毫秒。這是特定配置的解碼階段結果,不能當作完整請求吞吐或所有模型的加速保證;作者亦明確表示只測過 CUDA 與 CPU。測試條件與結果
效能仍取決於後端選擇。PyTorch 文件指出,SDPA 會依輸入挑選實作,融合核心各有條件限制,浮點結果也可能隨核心不同而改變。因此,工程團隊評估升級時,應固定模型、遮罩、批次與上下文長度,比較逐步延遲、記憶體及輸出一致性。PyTorch 文件
部署前還須確認實際使用的是 sdpa:Transformers 可透過 attn_implementation 指定注意力後端,不能把這次改動直接外推至其他執行引擎。接下來值得追蹤正式版本收錄,以及真實權重、不同硬體與編譯模式下的重現結果。後端設定文件