详细内容或原文请订阅后点击阅览
KV 缓存正在占用您的 VRAM。以下是 Google 如何使用 TurboQuant 修复该问题。
探索 TurboQuant(一种新颖的 KV 缓存量化框架)的端到端管道。本概述详细介绍了多级压缩如何通过 PolarQuant 和 QJL 残差实现近乎无损的存储,从而以最小的内存开销实现大量上下文窗口后 KV 缓存正在吞噬您的 VRAM。以下是 Google 如何使用 TurboQuant 修复该问题。首先出现在《走向数据科学》上。
来源:走向数据科学任何时候玩变形金刚,你都知道注意力是整个操作的大脑。它让模型能够弄清楚哪些代币正在相互通信,并且一种机制负责几乎所有令人印象深刻的法学硕士所做的事情。
注意力机制由三个组件组成:查询 (Q)、键 (K) 和值 (V) [1]。 Q 和 K 之间的点积告诉模型每个标记应该在多大程度上关注其他标记,这本质上是注意力作用的核心。
现在,将注意力称为“大脑”也意味着它是有代价的。在推理过程中,每次预测一个新的 token 时,也会为所有先前的 token 重新计算 K 和 V 矩阵。因此,如果已经有 90 个令牌,并且模型正在预测第 91 个令牌,那么它会返回并重新计算所有 90 个令牌的 KV。这种重复不是浪费吗?
KV 缓存改变了这一点。这个想法很简单,不需要重新计算,只需将 K 和 V 矩阵存储在 VRAM 中并在推理过程中重复使用它们即可。听起来很简单,对吧?这可能就是为什么每个主要的法学硕士都采用它的原因,延迟的下降是无可争辩的。
TurboQuant 有两个阶段:PolarQuant 和残差校正 [4]。
PolarQuant(第 1 阶段):压缩 K 和 V 矩阵。
残余校正(第 2 阶段):校正 PolarQuant 后留下的量化误差,恢复丢失的信息。
顺序应用两者是它与传统量化的不同之处。这是一个视觉细分:
这应该能让您清楚地了解 TurboQuant 的流程以及它与我们讨论的传统量化有何不同。在我们深入了解每个阶段之前,让我们揭示另一件重要的事情:既然我们正在谈论减少内存开销,那么 TurboQuant 在缓存中到底存储了什么?它实际占用的内存少了多少?让我们在下面直观地看看:
现在让我们逐步了解 TurboQuant 的实际分步流程,即我们之前在图中预览的确切顺序。
符号(ε* S)
