大语言模型以自回归方式逐 token 生成文本。在不使用缓存时,每生成一个新 token,都需要对提示词及此前已生成的所有历史 token 重新计算其键、值投影,再以此计算注意力分数。随着序列变长,这种"每步重算全部历史"的做法会让计算量随序列长度迅速膨胀,生成越长的回复,单步开销越大。
KV 缓存的思路是:历史 token 的键与值投影在首次计算完成后即被保留,后续生成新 token 时直接复用。模型只需为新到达的 token 计算一次投影,并让它去查询已缓存的全部历史键、值,即可完成当前步的注意力运算。这意味着每步新增的只是"一个新 token 的计算",历史部分不再重复。
KV 缓存是一种典型的空间换时间策略:它通过占用额外的显存来保存中间状态,换取每步推理计算量的大幅下降。对于多轮对话、长文档生成、批量并发等场景,缓存带来的加速直接转化为更低的延迟与更高的吞吐,是生产级推理不可或缺的基础机制。