注意力计算量 使用指南
按序列长度、头数与隐藏维度估算单层及全模型注意力的浮点运算量 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,稀疏/蒸馏可同时降两者。