FlashAttention 技术详解
1. 概述:它解决了什么问题?
FlashAttention 是一种革命性的算法,旨在优化 Transformer 模型中核心的注意力机制(Self-Attention)的计算过程。
它是当前大语言模型(LLM)技术栈中的基石。如果没有它,在现有硬件条件下,训练和部署支持** 超长上下文窗口(Long Context,如 128k)**的模型几乎是不可能的。
一句话核心: FlashAttention 通过一种**"IO感知(IO-Aware)"**的方法,极大地减少了 GPU 显存的读写次数,使得注意力计算的速度提升了 2-4 倍,同时将显存占用从平方级爆炸降低为线性增长。
作者与版本演进
FlashAttention 由 Tri Dao(斯坦福大学)主导开发,合作者包括 Daniel Y. Fu、Stefano Ermon、Atri Rudra、Christopher Ré 等人。
| 版本 | 发布时间 | 主要改进 |
|---|---|---|
| FlashAttention v1 | 2022 年 5 月 | 首次提出 IO-Aware 的分块算法,实现 2-4x 加速 |
| FlashAttention-2 | 2023 年 7 月 | 优化并行策略和工作分配,速度提升约 2x(相比 v1) |
| FlashAttention-3 | 2024 年 7 月 | 针对 Hopper GPU(H100)优化,利用异步执行和 FP8 支持 |