跳转至

KV Cache

KV Cache 保存每层历史 token 的 Key 和 Value。生成新 token 时,只计算当前位置的 Q/K/V,并让 Query 与缓存交互,避免反复重算整个前缀。

空间成本

KV Cache 大小大致随以下因素线性增长:

  • 并发序列数;
  • 上下文和输出总长度;
  • 层数;
  • KV head 数与 head dimension;
  • 存储精度。

因此它常成为长上下文和高并发服务的主要显存约束。

常见优化

  • MQA/GQA 减少 KV head 数;
  • 低精度存储;
  • 滑动窗口或稀疏保留;
  • GPU、CPU 甚至磁盘之间的分层调度;
  • PagedAttention 减少分配碎片;
  • 对共享系统提示或文档前缀进行跨请求复用。

缓存复用必须绑定模型版本、tokenizer、精确 token 前缀和推理配置,否则可能复用错误状态。