AI 与大模型 · 第 13 期 · 第二季第 5 期

KV 缓存与 Flash-Attention,推理为什么能快 3 倍

避免重复算 · 减少显存读写

一句话结论:推理慢,慢在两处:每生成一个 token 都要把历史 token 的 K、V 重算一遍(KV 缓存解决);注意力要把 N² 注意力矩阵写进显存再读回(Flash-Attention 解决)。两个杠杆叠加,长序列推理能快 3 倍、显存砍一半。
⏱ 约 10 分钟 🎯 想让大模型推理更快的人 📦 源:ai-engineering-from-scratch §11

01反共识:慢不在算力,在重复和读写

很多人以为推理慢是 GPU 算力不够。其实算力往往没用满——瓶颈是重复计算和显存读写。

自回归生成时,每生成第 t 个 token,注意力要算它和前 t-1 个 token 的关系,需要前 t-1 个 token 的 K、V。如果不缓存,每步都从头重算所有历史 token 的 K、V——O(N²) 的重复。KV 缓存把算过的 K、V 存下来,下一步直接用,省掉重算。

Flash-Attention 解决另一个瓶颈:标准注意力要把 N×N 的注意力矩阵写进 HBM(显存)再读回,HBM 带宽是瓶颈。Flash-Attention 把矩阵分块,在 SRAM(片上高速缓存)里算完再写回,避免 N² 矩阵的显存读写。算的次数没少,但读写少了,墙钟时间大降。

慢不在算力,
在重复和读写。
灏天文库 · AI 与大模型 P.38

02推理加速对比:选序列长度看三种方案

选序列长度,看 基础 / KV缓存 / KV缓存+Flash-Attention 三种方案的时间、显存、加速比。

⚡ 推理加速对比
选序列长度,看三种方案的推理时间与显存。

03两个杠杆的代价与边界

一个常见坑:开了 KV 缓存但 batch 大时显存爆——因为每个请求一份缓存。生产上要做 KV 缓存管理(淘汰、压缩、量化到 8bit)。Flash-Attention 则几乎无副作用,能用就用。

Flash 是精确的,
能用就用。
灏天文库 · AI 与大模型 P.39

04带走这套加速清单

✅ 推理加速 6 条可执行规则

  1. 必开 KV 缓存:自回归生成省掉历史 K/V 重算。
  2. 必上 Flash-Attention:精确等价、IO 优化、几乎无副作用。
  3. 长上下文用 GQA/MQA:减少 KV 头数,省缓存显存。
  4. 大 batch 管 KV 缓存:淘汰、压缩、8bit 量化防爆显存。
  5. 训练也用 Flash:长序列训练可行的前提。
  6. 瓶颈先看读写再看算力:算力没满多半是 IO 瓶颈。
缓存省重算,
Flash 省读写,
快 3 倍。
灏天文库 · AI 与大模型 P.40