无漏洞:通过重要性感知混合精度量化实现可靠的键值缓存压缩
内容提要
本文综述大语言模型KV缓存压缩技术,涵盖KIVI(2位量化,吞吐量提升2.35至3.47倍)、WKVQuant(权重量化与KV缓存量化)、FastGen(自适应压缩,近乎无损)、Scissorhands(缓存内存降低5倍)、LESS(常量缓存与驱逐策略结合)、RoCo(改进驱逐策略)、LoMA(无损压缩),以及PTQ评估和数据无关蒸馏量化方法。
延伸解读
KV缓存压缩的技术路线差异
文章综述了多种KV缓存压缩方法,主要分为量化与驱逐两类。量化方法如KIVI、WKVQuant通过降低数值精度减少内存,其中KIVI实现2位量化且无需调参;驱逐方法如Scissorhands、LESS、RoCo则通过保留重要token来压缩缓存。此外,FastGen采用自适应策略,LoMA则探索无损压缩。这些方法在压缩率、性能损失和实现复杂度上各有取舍,读者可根据实际场景选择。
量化压缩的实际收益与代价
KIVI在Llama-2等模型上以2位量化实现2.6倍峰值内存节省,吞吐量提升2.35至3.47倍,且质量几乎不降。其他量化方法如WKVQuant在内存节省上接近权重-激活量化,性能接近仅权重量化。但量化可能引入困惑度退化,例如某些方法在3位量化下困惑度增加小于0.1。实际部署时需权衡压缩率与模型质量,并注意不同模型和任务的敏感性差异。
长上下文场景下的压缩价值
随着大模型处理长文本需求增加,KV缓存成为推理内存的主要瓶颈。文章提到,通过量化方法可在单张A100-80GB GPU上为LLaMA-7B提供长达100万上下文,在8-GPU系统上支持1000万上下文。这表明压缩技术能显著扩展可用上下文长度,降低硬件门槛。对于需要处理长文档摘要或分析的场景,KV缓存压缩是提升可行性的关键。
评估与选择压缩方法的要点
文章指出,PTQ评估覆盖11个模型家族,系统总结了量化对权重、激活和KV缓存的影响,并提供了应用建议。数据无关蒸馏方法在低精度下表现优于训练后量化。选择压缩方法时,需考虑是否需微调、对生成质量的影响、以及是否支持即插即用。例如FastGen无需重训练,而WKVQuant需参数优化。实际应用中应结合任务需求、模型规模和硬件条件进行综合评估。
Q&A
KIVI 是什么?它如何压缩大语言模型的 KV 缓存?
KIVI 是一种无需调参的 2 位键值缓存量化算法。它通过分析 KV 缓存元素分布,对键和值分别进行量化,使 Llama-2、Falcon 和 Mistral 等模型在几乎不损失质量的情况下,峰值内存降低 2.6 倍,批处理大小提升 4 倍,推理吞吐量提高 2.35 到 3.47 倍。
有哪些方法可以实现大语言模型 KV 缓存的无损或近无损压缩?
FastGen 通过自适应 KV 缓存压缩,在显著减少 GPU 内存的同时几乎无生成质量损失;LoMA 采用无损压缩记忆关注方法,将信息无损压缩到特殊记忆令牌 KV 对中;Scissorhands 通过存储关键 token 将 KV 缓存内存降低最多 5 倍。
WKVQuant 如何对权重和 KV 缓存进行量化?
WKVQuant 框架同时对权重和 KV 缓存进行量化,通过过去量化改进注意力计算,并引入二维量化策略处理 KV 缓存分布,结合跨块重构正则化优化参数。实验表明,它能实现与权重-激活量化相当的内存节省,且性能接近仅权重量化。
LESS 和 RoCo 在 KV 缓存驱逐策略上有什么不同?
LESS 整合了几乎不消耗的常量大小缓存与基于驱逐策略的缓存方法,以查询过去解码步骤中的所有标记,从而在时间上保留信息,降低性能差距并提高效率。RoCo 则针对现有驱逐策略在重要性评分和驱逐范围构建上的不足,提出基于时间注意力分数和鲁棒性度量的稳健缓存省略策略,并发布了 EasyKV 软件包。
PTQ 评估对量化大语言模型的权重、激活和 KV 缓存有什么结论?
该论文通过对 11 个模型家族的综合评估,系统总结了 PTQ 技术对权重、激活函数和 KV 缓存的影响,提供了应用量化技术的建议,并指出了未来的研究方向。
数据无关的蒸馏量化方法如何实现低位量化?
该方法利用预训练模型生成的结果,对语言模型的权重、激活值和 KV 缓存进行低位量化,无需训练数据。相比基于训练后量化和无训练量化的方法,它更适用于低精度位级下的大型语言模型。