FlashAttention 是什么?
注意力机制是 Transformer 的「心脏」,但它有个毛病:又慢又吃显存,序列一长,显存像漏水一样飙。FlashAttention 就是一种「更快更省」的注意力算法,通过巧妙的计算编排,把显存占用和计算时间一起压下来。它解决了什么问题?
显存随序列长度平方级增长传统注意力要把一个大到离谱的「注意力矩阵」整个存进显存,序列翻倍,显存可能翻四倍。
读写频繁拖慢速度
反复在显存里搬来搬去,其实不少是白忙活。
它是怎么做到的?
分块计算(Tiling)不把整个矩阵一次算完,而是切成小块、在更快的片上存储里算,算完只保留结果。
重算代替存储(Recomputation)
反向传播需要的东西,不存,用时现算——牺牲一点点计算,换来显存的大幅下降。
更少的数据搬运
减少在慢速显存之间的往返,让 GPU 真正把力气花在「算」上。
它为什么重要?
FlashAttention 已经成为几乎所有主流大模型的标配。它让更长的上下文、更大的模型变得现实可行,是「模型越来越大、显存却越来越省」背后的功臣之一。一句话记住:FlashAttention 就是给注意力机制「瘦身提速」——分块算、少搬运,显存更省、跑得更快。
评论