注意力計算量 使用指南
按序列長度、頭數與隱藏維度估算單層及全模型注意力的浮點運算量 FLOPs,適用於大模型算力評估、推理成本測算與硬體選型。
計算公式與原理
單層 FLOPs ≈ 2S²d (QKᵀ) + 2S²d (AV) = 4S²d;全模型 GFLOPs = 單層 × 層數 / 10⁹
自注意力的兩次矩陣乘各為 S×S×d 規模,乘加各算一次故乘 2,合計 4S²d,隨序列長度呈平方增長——這正是長上下文成本暴漲的原因。線性注意力與稀疏注意力正是為打破這一 S² 項。
使用步驟
- 填寫「序列長度」。
- 填寫「維度」。
- 填寫「層數」。
- 結果區會即時更新;可一鍵複製結果用於記錄或彙報。
典型使用場景
- 單頭注意力 FLOPs≈2·S²·d(QKᵀ 與 AV 兩次矩陣乘),S 為序列長、d 為維度。
- 多頭總計算≈2·S²·h·d_head + 4·S·d²(含 Q/K/V/O 投影),S² 項使長序列算力平方增長。
- 與 FFN 相比,注意力在長序列時 dominated by S²,是推理成本最佳化的重點。
算例參考
- 單層注意力算力:S=1024, h=16, d_head=64(總 d=1024):S² 項≈2×1024²×1024≈2.15×10⁹ FLOPs;投影 4·S·d²=4×1024×1024²≈4.29×10⁹。單層約 6.4×10⁹ FLOPs,12 層約 7.7×10¹⁰。
注意事項
結果為按上述公式得到的理論估算值,實際表現受資料分佈、實現細節與執行環境影響,落地決策請以實測為準;本工具純前端執行,輸入不上傳伺服器。
- 為什麼長文本推理特別慢?
- 注意力核心項是 S²·d,序列翻倍算力翻約 4 倍;KV 快取雖降重算,但注意力矩陣仍隨上下文長度平方增長,故長上下文成本陡增。
- FLOPs 和視訊記憶體是一回事嗎?
- 不是。FLOPs 衡量算力(時間),視訊記憶體衡量引數與啟用的儲存(空間)。量化降視訊記憶體但不降 FLOPs,稀疏/蒸餾可同時降兩者。