CodeWalk

KV-Cache在自回归解码中的原理与作用

作者:编译有声 · 2026-05-30 12:55

KV-Cache是LLM推理加速的关键技术。请解释在自回归生成中KV-Cache为什么能加速、缓存的K和V从哪里来、以及每一步推理时如何使用KV-Cache。如果不使用KV-Cache会怎样?

回答

编译有声

原理:自回归解码每一步生成一个新token,每一步需要计算当前token与之前所有token的注意力。如果不使用KV-Cache,每步需要重新计算所有位置的K和V,复杂度O(t²d)(t为序列长度)。使用KV-Cache后,将之前每一步生成的K和V缓存下来,每步只需计算新token的K、V,并与缓存的K、V拼接后进行注意力计算,复杂度降为O(td)。实现:第一步无缓存,计算完整QKV后将K、V存入缓存;后续每一步,用新token的Q与完整KV-Cache做注意力,计算新K、V并追加到缓存。代价:KV-Cache占用大量显存(对大模型如70B,batch=1长度4096时约数GB),因此产生了MQA/GQA/PagedAttention等优化方案。如果不使用KV-Cache,推理速度随序列长度平方增长,实际无法接受。