先这样答
KV Cache 压缩有四路:量化、结构压缩、淘汰策略和重计算。量化把 KV 压到 int8 或 int4,通常精度损失小。它减少每个 KV 元素占用的存储空间,适合直接压缩已有模型的缓存。
结构压缩从模型架构上减少 KV 的存储量。MQA、GQA 和 MLA 都属于这一路。淘汰策略则减少需要保留的 token。滑动窗口只保留窗口内的内容,H2O 会保留重要 token。重计算不保存 KV,而是在需要时重新计算,用计算换显存。
选型要看模型是否已经确定。已有模型可以组合量化和淘汰策略,压低缓存占用。新训模型可以直接采用 GQA 或 MLA,从架构上减少需要存储的 KV。回答时先讲清四路,再说明各自减少存储的方式,最后落到选型。这样能把方法和适用场景连起来。
面试官会怎么追问
-
「这四类方法分别从哪里压缩 KV Cache?」 量化减少每个 KV 元素的存储精度,把 KV 压到 int8 或 int4。结构压缩从架构上减少存储。淘汰策略减少保留的 token,重计算则不存 KV,按需重新计算。
-
「滑动窗口和 H2O 有什么区别?」 滑动窗口只保留窗口内的内容。H2O 会保留重要 token。两者都属于淘汰策略,但保留 KV 的依据不同。
-
「已有模型和新训模型,分别怎么选?」 已有模型可以用量化加淘汰策略。新训模型可以直接采用 GQA 或 MLA。前者从缓存和保留内容入手,后者从模型架构入手。
回答的坑
- 只列出四种方法,却不说它们分别减少元素精度、架构存储、保留 token,还是用重计算换显存。
- 把选型说反:已有模型用量化加淘汰,新训模型直接考虑 GQA 或 MLA。
同系列的题
相关深度笔记
—— 本题完 ——