知识中等
为什么 KV Cache 有用?
KV Cache 用额外内存换取计算量,让每个新 token 只需关注自身和历史缓存。
标准答案
自回归解码在每一步都会重新计算整个前缀的 Attention。长度为 n 时,朴素做法需要的工作量。早先 token 的 key/value 在生成后不会改变,因此可以缓存并复用。生成新 token 时,只需计算自己的 Q、K、V,并与缓存的 K/V 做 Attention:每一步从降为 O(n),代价是额外的 O(n) 内存。
深入理解
KV Cache 变大后,瓶颈通常从 FLOPs 转向内存带宽:解码要在 layers、heads、seq 和组成的张量上进行带宽受限的读取。因此才会出现 multi-query attention、grouped-query attention 和 KV-cache quantisation,它们缩小的是缓存而不是计算。对机器人来说,运行在机载 GPU 上的 VLA 往往有严格的 10 到 50 Hz 延迟预算,可以采用分块 prompt、对最近帧使用 sliding-window attention,或将 KV 量化为 int8。