← 课程库
解码 · 部署 · 应用模块七 · 解码加速概念12 分钟

全量解码 vs 增量解码:KV 缓存

为什么生成第 1000 个词不用重算前 999 个

学完这节你能:
  • 理解自回归生成的重复计算问题
  • 掌握 KV 缓存的原理
  • 知道 KV 缓存吃显存

自回归生成每次只多产出一个词。若每步都把整段序列重新前向(全量解码),计算量爆炸。增量解码用 KV 缓存避免重算。

  • 观察:生成新词时,前面所有词的 Key、Value 每步都一样,没必要重算。
  • KV 缓存:把已生成 token 的 K、V 存起来;每步只算新词的 Q、K、V,与缓存拼接做注意力。
  • 代价:缓存大小 ∝ 层数 × 头数 × 序列长度 × head_dim,序列越长越吃显存(回想高效注意力那节)。

🔑 KV 缓存是「用显存换计算」:把 O(n²) 的重复计算降到每步 O(n),代价是缓存占显存。它也是 MQA/GQA/量化 KV 等优化要解决的对象。

自测KV 缓存(KV cache)的作用是:
// 带走一句话

增量解码用 KV 缓存存历史 K/V,每步只算新词,避免 O(n²) 重算;代价是缓存随序列长度吃显存。

独立练习

做到这些,才算完成本节

  1. 合上正文,用自己的话解释核心概念。
  2. 写出一个相似概念,并说明两者最关键的区别。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
随机采样:温度、top-k、top-p
下一课 →
解码效率指标:吞吐量与延迟

学完不要急着赶进度:去练习自测,或完成对应的阶段实验