英伟达研究团队近日提出了一项突破性的大语言模型内存压缩技术KVTC(KV Cache Transform Coding),可在不修改模型权重的情况下,将对话历史所需的内存占用降低高达20倍,同时准确率损失不到1%。这项技术有望大幅降低企业部署大模型的硬件成本。

为什么KV缓存成为瓶颈?

在多轮对话和长上下文场景中,大语言模型依赖键值缓存(KV Cache)来存储之前对话的隐藏表示,避免每次都要重新计算整个对话历史。然而,对于长上下文任务,这个缓存可能膨胀到数十GB,成为系统吞吐量和延迟的关键瓶颈。

由于LLM在推理阶段高度受内存限制,同时服务多个用户时往往因GPU内存耗尽而非计算能力不足而受限。现有的解决方案各有利弊:为网络传输设计的压缩工具压缩率低,实时计算压缩方法计算开销大,而量化或稀疏化技术则可能引入延迟和精度下降。

借鉴媒体压缩的思想

KVTC的核心思想借鉴了JPEG等媒体压缩格式的变换编码方法。英伟达研究人员发现,尽管KV缓存维度巨大、体积达数GB,但其底层数据高度相关,可以用远更少的变量精确表示。

具体流程分为三步:

  1. PCA对齐:使用主成分分析对KV缓存数据进行重要性排序,只需在模型初始校准阶段执行一次
  2. 动态预算分配:使用动态规划算法自动为每个数据维度分配存储空间,重要组件获得高精度,次要组件分配更少比特或直接丢弃
  3. 熵编码压缩:使用DEFLATE算法进行最终压缩,直接在GPU上并行执行

实测效果:20倍压缩,性能几乎无损

研究团队在1.5B到70B参数的多种模型上测试了KVTC,包括Llama 3系列、Mistral NeMo和Qwen 2.5等。测试基准涵盖数学推理(MATH-500)、编程挑战(LiveCodeBench)和长上下文检索(Needle In A Haystack)等任务。

结果显示,在20倍压缩比下,KVTC在大多数任务上保持了不到1个百分点的准确率损失。即使推到32倍和64倍的极端压缩,KVTC仍然保持了较好性能。相比之下,KIVI和GEAR等流行基线方法在5倍压缩时就开始出现大幅精度下降。

对于实际应用场景,以Qwen 2.5 1.5B编程助手为例:原本每个token需要29KB内存,使用8倍压缩后仅需约3.2KB,编程准确率仅下降0.3个百分点。

显著降低推理延迟

KVTC还带来了显著的首token延迟(TTFT)改善。在8000 token的提示下,标准的12B模型在H100 GPU上从头计算历史需要约3秒,而KVTC解压缩缓存仅需约400毫秒——8倍的延迟降低。

英伟达高级深度学习工程师Adrian Lancucki表示,KVTC特别适合长上下文、多轮对话场景,如编程助手、迭代式代理推理和RAG应用。但对于短对话,由于最新token的滑动窗口占主导地位,压缩收益有限。

即将集成Dynamo框架

KVTC具有高度可移植性,优化实现将很快集成到Dynamo框架的KV Block Manager(KVBM)中,使其与vLLM等流行开源推理引擎兼容。这意味着企业很快就能在实际部署中受益于这项技术。

对于正在规划AI基础设施的企业来说,KVTC代表了一个重要方向:通过软件优化而非硬件升级来解决内存瓶颈。更高的压缩率意味着相同硬件可以服务更多用户,或者在相同成本下支持更大的模型和更长的上下文——这对于大规模AI部署的经济性具有重要意义。