@KanikaBK:我认为,AI 记忆优化中最大的错误之一,就是衡量你删掉了多少 token,而不是衡量你……

X AI KOLs Timeline 新闻

摘要

一篇关于 NVIDIA 的 TriAttention 研究的讨论,该研究聚焦于 vLLM 中的 KV 缓存压缩,认为真正的收益来自释放 GPU 内存块,而非逐出 token。据报告,解码速度提升至 2.5 倍,KV 缓存内存占用降至原来的 1/10.7。

我认为,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 显存块。
查看原文
查看缓存全文

缓存时间: 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 显存块。

相似文章