一句话说清:模型一边生成一边把“已经算过的中间结果”存起来,免得每写一个字都从头重算一遍。
1. 它到底在说什么
想象一位逐字抄写长文件的员工:如果他每写一个新字,都要把前面所有内容重新默念一遍才动笔,效率会低得离谱。合理的做法是把已经读过的内容记在脑子里,只针对刚要写的那一个字做处理。
键值缓存(KV Cache,Key-Value Cache)就是大模型在“逐字生成”时用到的那套记忆。语言模型生成文本是一个字接一个字的过程(行话叫自回归,autoregressive),而每个字的生成都要回顾前面所有字。注意力机制(attention)在回顾时,需要用到前面每个字算出来的两类中间结果——“键”(Key)和“值”(Value)。KV Cache 把这两类结果留在显存里,生成下一个字时只算新字本身,不再翻旧账。它是让“逐字生成”在现实里跑得起来的那块基石。
2. 为什么现在这个词很热
KV Cache 本身并不新。2017 年的 Transformer 论文就奠定了这套注意力结构,只是当年没有把它当成一个独立的工程议题。真正的转折发生在推理规模化之后。
2019 年,Shazeer 在《Fast Transformer Decoding》里第一次系统分析了自回归解码的开销,并据此提出多查询注意力(Multi-