在大规模生产级LLM推理中,KV缓存的内存压力已经超过模型权重,成为承重约束。本周三Marktechpost技术综述给的数据:300亿参数模型在batch 128、输入1024 token的情况下,光KV缓存状态就需要约180GB;7B模型的KV缓存(72GB)是模型参数本身(FP16下14GB)的5倍。这是把一个研究方向推到台前的反转——不重训练基模,只压缩KV缓存,你就能多腾出batch大小的余地、提升吞吐、在同一硬件上服务更多并发用户。综述覆盖了10种生产相关技术,分布在四大策略族里。

第一族是"驱逐"——保留一部分token、丢弃另一部分。H2O(Heavy Hitter Oracle,NeurIPS 2023)观察到一小部分token承载了大部分注意力质量,动态保留这些重击者(Heavy Hitters)加上最近的token,在OPT-6.7B/30B上相对HuggingFace Accelerate达到29倍吞吐。StreamingLLM保留前几个token(它们充当"注意力汇")加一个最近性滑动窗——快速、硬件友好,但对中段语义重要性是盲的。SnapKV在长prompt的末尾使用一个"观察窗",专攻prefill阶段的压缩,这是H2O留白的部分。PyramidKV / PyramidInfer根据观察到的注意力模式按层分配不同的缓存大小,声称2.2倍吞吐、54%的GPU内存削减。驱逐族的失败模式是信息损失:被丢掉的内容在生成的剩余部分都找不回来,需要在中段散落点上回忆的任务质量会下降。

第二族是"量化"——保留所有token,但每个token用更少的位。KIVI是即插即用的2-bit KV量化,无须微调,键按通道量化、值按token量化;报告2.6倍峰值内存削减、4倍更大批次、2.35-3.47倍吞吐提升。KVQuant加入校准的混合精度(每通道键量化、pre-RoPE量化、密-稀分解),把精度推到sub-4-bit,适配长达1000万token的上下文。TurboQuant是Google的较新方法,使用随机正交旋转(PolarQuant)加1-bit量化Johnson-Lindenstrauss修正,声称在3-bit下达到6-8倍内存削减,且无需离线校准。第三族是架构层:Grouped-Query Attention(GQA)与Multi-Query Attention(MQA)从设计上减小KV缓存——多个查询头共享更少的key/value头。GQA现在是Llama 3、Mistral和多数开放权重模型的事实默认。DeepSeek的Multi-head Latent Attention(MLA)走得更远:在推理时把键和值投影到压缩的潜向量,DeepSeek-V2上报告93.3%的KV缓存削减且无质量损失。第四族——Palu / LoRC的低秩权重分解——通过分组头的低秩投影削减缓存,且与量化和驱逐正交,可以与其他族叠加。

对builder而言,有三点收获。第一,选哪个技术取决于哪一阶段卡你。如果prefill延迟是约束(prompt非常长),SnapKV与Pyramid类方法有用;如果decode吞吐是约束(长生成、多并发),H2O、KIVI、StreamingLLM占优。如果你从零训练新模型,架构修复(GQA/MLA)是第一杠杆——推理时是免费的,且能与其他全部叠加。第二,留意哪些推理栈集成了哪些技术:vLLM、TensorRT-LLM、SGLang、llama.cpp、TGI各自支持的集合不同,"研究论文声称X"与"生产库给出在你的GPU上能跑的X的内核"之间的鸿沟是真实的。第三,这个反转(KV缓存 > 模型权重)正是为什么2025-2026每一次前沿模型发布都内置了对注意力的修改(Llama 3的GQA、DeepSeek-V2/V3的MLA、Qwen3的GDN+attention混合)。你现在下载的"开放权重"里,内含隐式的KV缓存压缩押注;如果你拿模型互相比较推理成本,必须在你具体的batch大小和序列长度下测量KV缓存占用,不能只看参数量。builder的教训是:当内存是瓶颈时,模型权重数已经不再是合适的比较单位。