Flash-Attention

这是一篇硬核的优化Transformer的工作。众所周知,Transformer模型的计算量和储存复杂度是 O ( N 2 ) O(N^2) O(N2) 。尽管先前有了大量的优化工作,比如LongFormer、Sparse Transformer、Reformer等等,一定程度上减轻了Transformer的资源消耗,但对Transformer的性能有所折损,且扩展性不强,不能泛化到其它领域、以及复杂结构的叠加。

这篇工作从底层对Transformer的计算和读写进行了优化,主要有三个贡献:

  1. 加速了模型计算:现在GPU的计算速度已经远远超过了内存读写速度,当GPU完成计算后,内存确还在读取数据,造成GPU闲置而内存繁忙读(消费者早就消费完了,生产者还在缓慢生产)的现象,也就是内存墙问题。FlashAttention通过tiling和算子融合计算,将复杂操作放到SRAM中计算,并减少从HBM读取次数,加快了模型计算速度。而之前的工作虽然减少了Transformer的计算复杂度,却并没有减少模型计算时间。
  2. 节省了显存:FlashAttention通过引入全局统计量,避免实例化大注意力矩阵,减少了显存占用。
  3. 精确注意力:FlashAttention从底层优化了Transformer的计算,但是任务指标上没有任何折损,与普通的Transformer结果是完全等价。

现代GPU内存分级


参考

相关推荐
烟袅1 小时前
5 分钟把 Coze 智能体嵌入网页:原生 JS + Vite 极简方案
前端·javascript·llm
智泊AI3 小时前
API是什么?为什么需要API?如何调用API(Python示例)
llm
Eloudy11 小时前
一问理解 gem5 与 archmodel 和 cmodel 的关系
gpu·arch·gem5
mwq301231 天前
Anthropic 机械可解释性学习路线
llm
AI-智能1 天前
RAG 系统架构设计模式介绍
人工智能·langchain·llm·agent·知识库·rag·大模型应用
智泊AI1 天前
模型蒸馏的核心是什么?蒸馏过程是怎样的?为什么要做模型蒸馏?
llm
腾讯云开发者1 天前
从 RAG 到 KAG :结构化思考范式下的复杂推理
llm
16324015411 天前
回顾-DeepSeekMoE[1]
llm
大模型教程1 天前
一文搞懂 LLM 的 Transformer!看完能和别人吹一年
程序员·llm·agent
大模型教程1 天前
LangChain 核心原理-核心组件&应用开发类型 01
langchain·llm·agent