Palu: 用低秩投影压缩 KV 缓存

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

本文探讨了通过新型量化技术压缩大型语言模型中的键值缓存(KV缓存),以提高推理效率和降低内存占用。提出的PyramidInfer和PyramidKV方法在保持性能的同时,显著减少了GPU内存使用。研究表明,KV缓存激活是推理过程中的主要内存消耗来源,采用多种量化策略后,模型在处理长文本时表现得到了提升,支持更长的上下文长度。

🔎

延伸解读

KV缓存压缩的多样化技术路径

文章介绍了多种KV缓存压缩方法,包括基于张量分解的DecoQuant、逐标记量化的ZipCache、动态调整缓存大小的PyramidKV、质量自适应量化的QAQ以及结合权重量化的WKVQuant。这些方法从不同角度(如量化、低秩投影、动态分配)减少内存占用,反映了该领域的技术多样性。

性能与内存的权衡

压缩KV缓存旨在降低内存占用并提升推理效率,但可能影响模型性能。例如,PyramidKV在保留12%缓存时性能与完整缓存相当,而QAQ实现10倍压缩几乎不影响性能。然而,极端压缩(如仅保留0.7%缓存)可能带来性能波动,需根据场景权衡。

长上下文支持的实际意义

KV缓存压缩使大语言模型能处理更长上下文。例如,3位量化方法让LLaMA-7B在单张A100-80GB GPU上支持100万上下文长度,8-GPU系统上支持1000万。这为需要大上下文窗口的应用(如长文本分析)提供了可能,但实际部署还需考虑计算开销和延迟。

❓

Q&A

PyramidInfer 方法如何提高推理效率?

PyramidInfer 方法通过压缩 KV 缓存并保留关键上下文,显著提高了 GPU 内存使用和推理速度,减少了 54% 的内存占用,同时增加了 2.2 倍的吞吐量。

什么是 DecoQuant 技术,它的作用是什么?

DecoQuant 是一种新型无数据量化技术,用于压缩大型语言模型中的 KV 缓存,提高推理效率并保持生成质量。

PyramidKV 方法与传统 KV 缓存方法有什么不同?

PyramidKV 方法动态调整不同层级上的 KV 缓存大小,分配较低层级较多的缓存,而较高层级较少,区别于传统方法维持统一的 KV 缓存大小。

QAQ 方案的主要优势是什么?

QAQ 方案实现了 KV 缓存大小最大 10 倍的压缩比,几乎不影响模型性能,显著减少了部署大型语言模型的实际困境。

ZipCache 方法是如何提高压缩比的?

ZipCache 方法通过通道可分离的逐标记量化方案,显著减少量化参数的内存开销,并利用注意力矩阵的下三角特性提高压缩比。

KV 缓存激活在推理过程中有什么影响?

KV 缓存激活是推理过程中的主要内存消耗来源,影响了模型在处理长文本时的性能和内存使用。

🏷️

标签

➡️

继续阅读