注意力頭維度 使用指南
輸入隱藏維度與頭數,計算多頭注意力的每頭維度及單層引數量,適用於 Transformer 結構核對、模型配置設計與維度對齊檢查。
計算公式與原理
每頭維度 = d / heads;單層權重引數 ≈ 4d² + 2d·ffn
多頭注意力把 d 維切成 heads 份平行計算,每頭維度須整除,頭數過多會讓單頭維度過小、表達能力下降。單層引數由注意力四矩陣 4d² 與 FFN 兩層 2d·ffn 構成,是視訊記憶體與算力的主要來源。
使用步驟
- 填寫「模型維度」。
- 填寫「頭數」。
- 填寫「FFN 維度」。
- 結果區會即時更新;可一鍵複製結果用於記錄或彙報。
典型使用場景
- 每頭維度 d_head=d_model/h,需整除;常見 d_model=512,h=8→d_head=64。
- 單層注意力引數量≈4·d_model²(Q/K/V/O 四個投影),與頭數無關只與總維度相關。
- 頭數過多而 d_head 過小會限制每頭表達能力,需權衡並行度與單頭容量。
算例參考
- 頭維度與引數量:d_model=768, h=12 → d_head=64。Q/K/V/O 各 768×768≈590k 引數,單層注意力≈4×590k=2.36M 引數;與 h 取值無關,只取決於 d_model。
注意事項
結果為按上述公式得到的理論估算值,實際表現受資料分佈、實現細節與執行環境影響,落地決策請以實測為準;本工具純前端執行,輸入不上傳伺服器。
- 頭數越多越好嗎?
- 不一定。頭數增加提升並行關注不同子空間的能力,但 d_head 隨之變小、每頭容量受限;過大頭數收益遞減且增算力。
- d_head 不整除怎麼辦?
- 需調整 d_model 或頭數使其整除,否則框架會報錯或 padding 引入冗餘;常見組合保證 d_model%h==0。