探索 Flash Attention - 一种快速、内存效率高的 Transformer 注意力方法,可加快 GPU 训练和 NLP 与 CV 的实时推理。
闪存注意力是一种高效算法,旨在实现变形金刚网络中使用的标准注意力机制。它并不是一种新的注意力类型,而是一种开创性的计算方法,能以更快的速度和更少的内存使用来计算注意力。这种优化对于训练和运行大规模模型至关重要,尤其是在自然语言处理(NLP)和计算机视觉(CV)领域。论文《FlashAttention: 斯坦福大学研究人员的论文"FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness "首次详细介绍了这项创新。
传统注意力机制的主要瓶颈不是计算数量,而是GPU 的内存访问速度。标准注意力需要对 GPU 的高带宽内存(HBM)进行多次读写操作,而 HBM 的速度相对较慢。闪存注意力巧妙地重组了计算,最大限度地减少了这些内存传输。它通过以下方式实现这一目标
这种方法避免了在 HBM 中创建和存储庞大的中间注意力矩阵,而这正是标准注意力内存效率低下和速度变慢的主要原因,尤其是在处理长序列数据时。
虽然 "闪存注意力 "和 "标准注意力 "在数学上产生的结果相同,但它们的运行效率却大相径庭。关键区别在于硬件意识。标准自我注意机制受内存限制,这意味着它的速度受限于访问内存的速度。而 Flash Attention 则是计算型的,能更好地利用 GPU 强大的处理内核。这使得它成为一种 I/O 感知算法,能显著加快模型训练和实时推理的速度。
一些模型(如YOLO12)引入了以注意力为中心的架构,可以利用闪存注意力来优化性能。不过,对于大多数应用来说,Ultralytics YOLO11等模型的精简高效设计能在速度和准确性之间实现更稳健的平衡。
闪存注意力的高效性使深度学习取得了重大进展。
值得注意的是,使用 Flash Attention 需要特定的硬件。它旨在利用现代英伟达™(NVIDIA®)图形处理器的内存架构,包括图灵、安培、Ada Lovelace 和 Hopper 系列。PyTorch等现代机器学习框架和Hugging Face上提供的工具都集成了对 Flash Attention 的支持,使开发人员更容易使用它。