NVIDIA开源KVzap:实现近无损2‑4倍KV缓存压缩的最新技术

0 次浏览4分钟开源
NVIDIA开源KVzap:实现近无损2‑4倍KV缓存压缩的最新技术

背景:长上下文的缓存瓶颈

随着生成式模型的上下文长度从几千扩展到十万甚至更高,Transformer 解码器的 Key‑Value(KV)缓存 成为部署的主要阻力。以 Llama‑1 65B 为例,128k token 的缓存在 bfloat16 下已占用约 335 GB,直接限制了批次大小和首 token 延迟。

KVpress 与已有压缩手段

目前业界主要沿 headvalue 维度压缩,如 Grouped‑Query Attention、Multi‑Head Latent Attention 等,它们能把缓存压缩 4‑16 倍,但 序列轴 并未被削减。稀疏/检索式 Attention 虽然只读取子集,却仍需为每个 token 分配内存。

KVpress 项目把二十余种剪枝方法统一到同一代码库,并在 Hugging Face 上公开排行榜,为 KV 缓存压缩提供统一评测平台。

KVzap 的核心原理

KVzap 直接借鉴 KVzip+ 的 oracle 评分机制,但用一个轻量的 代理模型 替代昂贵的前置提示评估。每层、每个序列位置的隐藏向量 (h_t) 被送入

  • KVzap Linear:单层线性映射
  • KVzap MLP:两层 GELU MLP,宽度为模型隐藏维的 (frac{1}{8})

模型输出每个 head 的对数重要度分数,低于阈值的 KV 对被裁剪;最近 128 token 始终保留(滑动窗口)。

训练与评估

  • 数据来源:Nemotron 预训练数据集,筛选 27k 条 750‑1250 token 长度的 prompts。
  • 采样方式:每条 prompt 随机抽取 500 个位置,每位置收集 1.2M 训练对(共约 1.2M × heads)。
  • 监督信号:KVzip+ 生成的 oracle 分数。
  • 相关性:MLP 版 Pearson² 在 0.63‑0.77 之间,线性版略低。

实际压缩效果与算力开销

模型典型压缩率任务分数损失
Qwen‑3‑8B2.7‑3.5×≤ 0.2 分
Llama‑3.1‑8B‑Instruct2.5‑3.3×≤ 0.3 分
Qwen‑3‑32B2.8‑3.6×接近基线

RULER、LongBench、AIME25 三大长上下文基准上,KVzap 能在保持几乎完整精度的前提下实现 2‑4 倍压缩。额外 FLOPs 仅占注意力投影的 0.02%(线性)或 1.1%(MLP),在长序列场景下可视为微乎其微。

应用前景与获取方式

KVzap 只需在注意力计算后调用一次函数,即可得到压缩后的 KV 张量,几行 PyTorch 代码即可集成到现有服务栈。项目已在 kvpress 开源框架中提交,所有检查点、推理脚本均可在 Hugging Face 上免费下载。

要点回顾

  • KVzap 用隐藏状态预测 KVzip+ 重要度,实现自适应阈值压缩。
  • 在长上下文推理中可省掉 2‑4 倍显存,几乎不影响精度。
  • 计算开销 < 1.2% ,易于在生产环境落地。

有兴趣的开发者可阅读原论文(arXiv:2601.07891),并访问 GitHub 仓库获取代码与模型。未来,随着更大上下文需求的普及,KVzap 有望成为 LLM 长文本服务的标准组件。

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。