闪光注意
FlashAttention 是一种内存高效算法,它计算与标准 Transformer 完全相同的注意力,但无需编写巨大的注意力矩阵来减慢 GPU 内存。
概述
It made long-context training and inference dramatically faster and cheaper.
深入探讨
标准注意力计算每对标记的分数,生成 N×N 矩阵。对于包含 4,000 个标记的序列(即 1600 万个分数),必须将矩阵写入 GPU 的高带宽内存 (HBM) 并从中读回。真正的瓶颈是内存流量,而不是数学。 Tri Dao 及其同事于 2022 年推出的 FlashAttention 重组了计算,使矩阵永远不会完全具体化。它以适合 GPU 微型、超快片上 SRAM 的图块形式处理序列,并在运行过程中增量计算 softmax。结果在数学上与标准注意力相同,但使用的内存少得多,运行速度快几倍,从而实现更长的上下文窗口。
技术洞察
诀窍是将“在线 softmax”与平铺相结合。 FlashAttention 将小块查询、键和值加载到 SRAM 中,计算部分注意力输出,并在新块到达时重新调整运行总和,以便 softmax 标准化保持正确,而无需立即查看所有分数。由于它从不将完整的 N×N 矩阵存储在 HBM 中,因此内存会线性而不是二次缩放,并且内核会融合到单个 GPU 操作中,以最大程度地减少内存读写速度缓慢。
战略影响
速度与规模
语言工作流程可以在不牺牲一致性的情况下更快地移动。
交通与覆盖范围
它扩展了跨语言和沟通方式的访问。
更清晰的判决
团队可以花更多时间进行判断,而自动化则可以处理重复。
FlashAttention 的未来
FlashAttention 已成为默认构建块。 FlashAttention-2 改进了 GPU 工作分区,FlashAttention-3 利用了较新的 Hopper 硬件功能,例如异步和低精度 FP8。预计将继续与芯片进行协同设计,更深入地集成到长文档的推理服务器中,以及针对稀疏或滑动窗口注意力进行调整的变体。随着上下文窗口向数百万个令牌推进,像这样的 IO 感知内核对于保持培训和服务成本的可控仍然至关重要。
现实世界的实施
以更低的 GPU 成本更快地训练 Llama 和 GPT 式系统等大型语言模型
提供长上下文聊天助手,可以在不耗尽内存的情况下摄取整本书或代码库
加快同时处理数万个标记的文档摘要管道
为视觉和多模态转换器提供动力,其中长序列的图像块会使注意力变得昂贵
风险与防护栏
幻觉的事实可以悄悄地进入报告、支持流程或研究成果。
及时的敏感性可能会在类似的请求中产生不一致的结果。
如果访问控制薄弱,敏感文本数据可能会暴露。
实施路线图
在推出之前定义输出格式、语气和质量标准。
当准确性很重要时,请使用可信来源进行地面响应。
为高风险输出保留人工审查检查点。
跟踪故障模式并定期重新训练提示或工作流程。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the FlashAttention quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
What is FlashAttention?
FlashAttention 是一种内存高效算法,它计算与标准 Transformer 完全相同的注意力,但无需编写巨大的注意力矩阵来减慢 GPU 内存。它使长上下文训练和推理变得更快、更便宜。
标准注意力中 FlashAttention 目标的主要瓶颈是什么?
标准注意力是受内存限制的:在巨大的 N×N 矩阵与高带宽内存之间来回穿梭占据了时间,而不是算术本身。
FlashAttention 的输出与标准注意力相比如何?
FlashAttention 计算完全相同的注意力值;它只是重新组织计算以避免具体化整个矩阵。
FlashAttention 通过处理图块中的数据来利用哪些 GPU 内存?
FlashAttention 将小块加载到 GPU 的快速片上 SRAM 中,使繁重的工作保持在计算单元附近。
什么技术可以让 FlashAttention 计算 softmax 而无需立即查看所有分数?
在线 softmax 维护运行最大值和总和,在新图块到达时重新调整部分结果,以便最终标准化是正确的。
FlashAttention-3具体利用了什么?
FlashAttention-3 与现代 Hopper GPU 共同设计,使用异步执行和低精度 FP8 来进一步加速。