Zubnet AI学习Wiki › Flash Attention
基础设施

Flash Attention

别名:FlashAttention、FlashAttention-2
一种 GPU 优化的注意力机制实现,比标准注意力快 2–4 倍,且内存消耗显著更低。Flash Attention 的实现方式不是改变注意力的计算内容,而是重新组织计算在 GPU 硬件上的执行方式——最大限度减少 GPU HBM 和片上 SRAM 之间的慢速内存传输。

为什么重要

Flash Attention 可以说是现代 AI 中影响最大的系统优化。它使长上下文模型成为可能,将注意力的内存使用从二次方降至近线性(在实际应用中),直接推动了从 4K 到 128K+ 上下文窗口的飞跃。每个主流 LLM 都在使用它。没有 Flash Attention,今天的长上下文模型将贵得令人望而却步。

深度解析

关键洞见(Dao 等人,2022年):标准注意力在 GPU HBM(高带宽内存)中具现化完整的 N×N 注意力矩阵,这既占用大量内存(随序列长度呈二次增长),又很慢(HBM 带宽是瓶颈)。Flash Attention 永远不会具现化这个矩阵。相反,它以块为单位计算注意力,将 Q、K、V 的小块加载到快速的片上 SRAM 中,计算部分结果并累积——这种技术被称为"分块"或"算子融合"。

内存节省

标准注意力存储 N×N 注意力矩阵,需要 O(N²) 内存。对于具有 128 个注意力头的 128K 上下文,这需要数百 GB。Flash Attention 通过增量计算 softmax 且永不存储完整矩阵来使用 O(N) 内存。这就是使 128K 到 1M 上下文窗口在现有硬件上变得可行的关键。FlashAttention-2 通过更好地在 GPU 线程块间并行化进一步提高了吞吐量。

IO 感知的算法设计

Flash Attention 体现了一个更广泛的原则:在现代硬件上,瓶颈通常是内存带宽,而非计算能力。GPU 每秒可以执行数万亿次运算,但每秒只能从 HBM 读写数百 GB。即使以额外计算为代价,最小化内存传输的算法往往能胜出。这种"IO 感知"方法正在影响整个领域对 AI 工作负载算法设计的思考方式。

相关概念

← 所有术语
← ElevenLabs FLOPs →
ESC