注意力計算量

🧮 Attention FLOPs Estimator

Estimate the floating-point operations of a single attention layer and of the whole model from sequence length, head count and hidden size.

📐 計算公式 / 原理
單層 FLOPs ≈ 2S²d (QKᵀ) + 2S²d (AV) = 4S²d;全模型 GFLOPs = 單層 × 層數 / 10⁹
自注意力的兩次矩陣乘各為 S×S×d 規模,乘加各算一次故乘 2,合計 4S²d,隨序列長度呈平方增長——這正是長上下文成本暴漲的原因。線性注意力與稀疏注意力正是為打破這一 S² 項。

📐 計算公式與說明

單層注意力 ≈ 2·S²·d(QKᵀ) + 2·S²·d(·V)

注意力和序列長度平方相關,長序列代價高。

📚 深度解析:注意力計算量

💡 常見使用場景

單層注意力算力
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¹⁰。

❓ 常見問題(FAQ)

為什麼長文本推理特別慢?
注意力核心項是 S²·d,序列翻倍算力翻約 4 倍;KV 快取雖降重算,但注意力矩陣仍隨上下文長度平方增長,故長上下文成本陡增。
FLOPs 和視訊記憶體是一回事嗎?
不是。FLOPs 衡量算力(時間),視訊記憶體衡量引數與啟用的儲存(空間)。量化降視訊記憶體但不降 FLOPs,稀疏/蒸餾可同時降兩者。