@KanikaBK:我认为,AI 记忆优化中最大的错误之一,就是衡量你删掉了多少 token,而不是衡量你……
摘要
一篇关于 NVIDIA 的 TriAttention 研究的讨论,该研究聚焦于 vLLM 中的 KV 缓存压缩,认为真正的收益来自释放 GPU 内存块,而非逐出 token。据报告,解码速度提升至 2.5 倍,KV 缓存内存占用降至原来的 1/10.7。
查看缓存全文
缓存时间: 2026/11/03 10:30
我认为,AI 内存优化中最大的错误之一,是衡量移除了多少 token,而不是实际释放了多少 GPU 显存。
NVIDIA 的最新研究恰好揭示了 vLLM 中 KV 缓存压缩的这一问题。
即使驱逐了 90% 的缓存 token,显存占用也可能几乎没有减少。
为什么?
vLLM 使用 PagedAttention,将 KV 缓存存储在固定大小的块中,每个块包含 16 个 token 槽位。
只有当一个块中的所有槽位都为空时,该块才会被归还给 GPU 显存分配器。
大多数驱逐方法会根据重要性移除 token。但剩余的 token 仍然分散在几乎每一个块中。
因此,即使移除了数千个 token,这些块仍处于已分配状态。缓存从逻辑上看变小了,但 GPU 显存占用几乎没有变化。
还有另一个问题:许多驱逐方法依赖注意力分数。但 FlashAttention 从一开始就避免将这些分数存储在 GPU 显存中。重新构建这些分数可能会削弱其性能优势。
NVIDIA 的 TriAttention 采用了不同的方法。
它不使用注意力分数对 token 进行排序,而是利用查询与键之间的几何关系来确定要保留哪些 token。
随后,每解码 128 个 token,它就会对缓存进行一次紧凑整理,将保留的 token 向前移动,从而释放完整的块。
报告的结果令人印象深刻:
- 解码速度提升至 2.5 倍
- KV 缓存显存占用降至原来的 1/10.7
- 在长推理轨迹上,准确率与完整注意力相当
我的结论是:KV 缓存压缩不仅关乎决定忘记什么,还关乎如何组织显存,让 GPU 真正能够将其回收。
对于实际推理,关键指标并不是驱逐了多少 token。
而是释放了多少 GPU 显存块。
相似文章
@_avichawla: 一个棘手的LLM面试题:你在vLLM上部署推理模型,长序列时GPU内存总是不够用。于是你加入KV缓存压缩,驱逐了90%的缓存token。显存占用依旧,GPU仍然内存不足。为什么?
解释了为什么在vLLM上部署推理模型时,驱逐90%的KV缓存token无法释放GPU内存,原因是分页注意力碎片化。同时介绍了NVIDIA的TriAttention解决方案,可实现2.5倍加速和10.7倍内存缩减。
@jiqizhixin: 如果AI的记忆不必随着每多一句话而膨胀呢?牛津大学、Technion、AITHYRA 等…
介绍了KV-Compression Aware Training (KV-CAT) 方法,该方法鼓励Transformer在训练过程中学习可压缩的键值缓存,在不牺牲性能的情况下提高长上下文任务的记忆效率。
@yukangchen_: 我们很高兴分享一篇新的技术文章《KV缓存压缩及其基础设施问题》。https://research.nvidia.…
NVIDIA Research发布了一篇技术博客,探讨KV缓存压缩技术及其基础设施问题,包括FlashAttention和paged attention如何为长上下文LLM的生产部署带来实际障碍,并提出了一个使用RoPE的几何解决方案。
PagedAttention:KV Cache的虚拟内存(15分钟阅读)
PagedAttention将虚拟内存概念应用于语言模型中的KV cache,减少内存碎片化,并使推理引擎能够在每个GPU上服务2-4倍的用户。
KV缓存正成为推理的内存层级结构
文章讨论了KV缓存如何演变为LLM推理的内存层级结构,优化解码过程中的内存管理。