LoRC: Low-Rank Compression for LLMs KV Cache with a Progressive Compression Strategy

📄 arXiv: 2410.03111v1 📥 PDF

作者: Rongzhi Zhang, Kuang Wang, Liyuan Liu, Shuohang Wang, Hao Cheng, Chao Zhang, Yelong Shen

分类: cs.LG, cs.AI, cs.CL

发布日期: 2024-10-04

备注: 15 pages, 4 figures


💡 一句话要点

提出LoRC:一种基于低秩压缩和渐进压缩策略的LLM KV缓存压缩方法

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: KV缓存压缩 低秩近似 大型语言模型 模型推理 渐进压缩策略 Transformer 内存优化

📋 核心要点

  1. 现有LLM的KV缓存内存消耗随序列长度和批大小线性增长,成为部署瓶颈,且现有压缩方法存在参数调整困难或忽略层间依赖等问题。
  2. LoRC的核心思想是对KV权重矩阵进行低秩近似,实现KV缓存的压缩,无需模型重新训练或特定任务调整,即插即用。
  3. 实验结果表明,LoRC在各种任务中,显著减少了LLaMA模型(8B-70B)的GPU内存占用,同时保持了性能。

📝 摘要(中文)

本文提出了一种针对大型语言模型(LLM)KV缓存的低秩压缩方法LoRC。KV缓存是基于Transformer的自回归LLM的关键组件,通过存储先前计算的KV向量来实现更快的推理。然而,其内存消耗随序列长度和批大小线性增长,对LLM部署构成重大瓶颈。现有方法包括:(1)集成在升级阶段的高效注意力变体,需要大量的参数调整,不适合预训练的LLM;(2)测试时的KV缓存压缩,主要通过token驱逐策略,通常忽略层间依赖关系,并且可能是特定于任务的。LoRC通过低秩近似KV权重矩阵,实现与现有基于Transformer的LLM的即插即用集成,无需模型重新训练。为了有效地在权重级别压缩KV缓存,LoRC调整了层间敏感性,并引入了渐进压缩策略,这得到了关于压缩误差如何在深度网络中累积的理论分析的支持。该方法无需升级阶段的模型调整或测试阶段的特定于任务的分析。对8B到70B参数的LLaMA模型在各种任务上的大量实验表明,LoRC显著减少了GPU内存占用,同时保持了性能。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)推理过程中,Key-Value (KV) 缓存占用大量内存的问题。现有的解决方案要么需要对模型进行微调,不适用于预训练模型;要么依赖于任务相关的token驱逐策略,忽略了层间的依赖关系,效果有限。

核心思路:论文的核心思路是对KV缓存的权重矩阵进行低秩近似。通过将高秩的权重矩阵分解为两个低秩矩阵的乘积,从而减少存储权重矩阵所需的内存空间。这种方法可以在不重新训练模型的情况下,直接应用于现有的Transformer架构。

技术框架:LoRC的技术框架主要包括以下几个步骤:1) 对KV缓存的权重矩阵进行低秩分解;2) 根据层间敏感性调整压缩比例;3) 采用渐进压缩策略,逐步降低权重矩阵的秩。整个过程无需模型微调,可以即插即用。

关键创新:LoRC的关键创新在于:1) 提出了一种基于低秩近似的KV缓存压缩方法,可以在不影响模型性能的前提下,显著减少内存占用;2) 引入了渐进压缩策略,并根据层间敏感性调整压缩比例,进一步提高了压缩效率。与现有方法相比,LoRC无需模型微调,且能够更好地处理层间依赖关系。

关键设计:LoRC的关键设计包括:1) 低秩分解的具体方法,例如可以使用奇异值分解(SVD)或其他矩阵分解技术;2) 层间敏感性的评估指标,例如可以使用梯度信息或Hessian矩阵;3) 渐进压缩策略的具体实现方式,例如可以逐步降低奇异值的数量。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,LoRC在LLaMA模型(8B-70B)上取得了显著的压缩效果,同时保持了模型性能。具体来说,LoRC可以在各种任务中,显著减少GPU内存占用,而性能下降可以忽略不计。这些结果表明,LoRC是一种有效的KV缓存压缩方法,具有很高的实用价值。

🎯 应用场景

LoRC可广泛应用于各种需要部署大型语言模型的场景,例如云端推理服务、边缘设备部署等。通过减少KV缓存的内存占用,LoRC可以降低部署成本,提高推理效率,并使得在资源受限的设备上部署大型语言模型成为可能。该研究对于推动LLM的普及和应用具有重要意义。

📄 摘要(原文)

The Key-Value (KV) cache is a crucial component in serving transformer-based autoregressive large language models (LLMs), enabling faster inference by storing previously computed KV vectors. However, its memory consumption scales linearly with sequence length and batch size, posing a significant bottleneck in LLM deployment. Existing approaches to mitigate this issue include: (1) efficient attention variants integrated in upcycling stages, which requires extensive parameter tuning thus unsuitable for pre-trained LLMs; (2) KV cache compression at test time, primarily through token eviction policies, which often overlook inter-layer dependencies and can be task-specific. This paper introduces an orthogonal approach to KV cache compression. We propose a low-rank approximation of KV weight matrices, allowing for plug-in integration with existing transformer-based LLMs without model retraining. To effectively compress KV cache at the weight level, we adjust for layerwise sensitivity and introduce a progressive compression strategy, which is supported by our theoretical analysis on how compression errors accumulate in deep networks. Our method is designed to function without model tuning in upcycling stages or task-specific profiling in test stages. Extensive experiments with LLaMA models ranging from 8B to 70B parameters across various tasks show that our approach significantly reduces the GPU memory footprint while maintaining performance.