KV缓存
也叫:KV Cache · 键值缓存 · 注意力缓存
KV 缓存保存各层既有 token 的 key 与 value,减少逐 token 生成中的重复计算,同时占用随上下文增长的内存。
他们说
复用自回归生成中已经计算的 key 和 value 状态
老白翻译
模型把前文算过的注意力状态暂时留着,生成下一个 token 时不用从头再算。
它到底是什么
KV 缓存保存模型各层已经为前文计算出的 key 和 value。自回归模型生成新 token 时,可以直接读取这些状态,只计算新增部分。
生活里的例子
一个对话服务回答长问题时,开头几百个 token 已经处理过。开启 KV 缓存后,模型继续生成时不必反复计算这段前文。
常见误解
- 误解:开启缓存就不会再占显存。 序列越长,缓存通常越大,长上下文会压低可用并发。
- 误解:KV 缓存等同于提示词缓存。 KV 缓存多用于一次生成内部,提示词缓存通常跨请求复用共同前缀。
- 误解:缓存类型只有一种。 动态、静态、量化和卸载缓存分别偏向易用、编译、容量或显存转移。
普通人怎么用
部署模型时同时压测首 token 等待、生成速度、峰值显存和并发数,并用几组不同上下文长度观察缓存增长。