FlashAttention
也叫:Flash Attention · 闪存注意力 · IO 感知注意力
FlashAttention 用 IO 感知分块减少 GPU 显存与片上内存之间的数据搬运,在不近似注意力结果的前提下节省显存并加速。
他们说
通过分块减少 GPU 内存读写的精确注意力算法
老白翻译
少把大块中间结果来回搬,让注意力计算更省显存。
它到底是什么
FlashAttention 是精确注意力算法的一种高效实现。它把计算分块,让数据在更快的片上内存里完成更多运算,从而减少对高带宽显存的读写。
生活里的例子
模型训练一段很长的文本时,普通注意力可能因中间矩阵占满显存而失败。兼容的 FlashAttention 实现可以降低这部分占用,让同一块 GPU 放入更长序列或更大批次。
常见误解
- 误解:它会近似或删掉一部分注意力。 FlashAttention 仍计算精确注意力,只改变运算与数据搬运顺序。
- 误解:它和模型量化是一回事。 量化调整数值精度,FlashAttention 优化注意力算子的实现。
- 误解:安装以后一定更快。 收益受 GPU、序列长度、框架、数据类型和内核版本影响,还要确认运行时真正选中了它。
普通人怎么用
固定模型、输入长度和批大小,对照启用前后的峰值显存与端到端时间,并查看运行日志确认目标内核已经生效。