UStackUStack
TurboQuant icon

TurboQuant

TurboQuant 面向 LLM 的 KV 缓存与向量搜索的高维向量压缩方法,缓解内存瓶颈并避免精度损失。

TurboQuant

TurboQuant 是什么?

TurboQuant 是一组理论基础扎实的量化算法,用于压缩大型语言模型 (LLM) 系统和向量搜索引擎中的高维向量。其核心目的是减少内存瓶颈——特别是在键值 (KV) 缓存存储中——同时避免模型行为精度损失。

该方法针对传统向量量化的常见局限性:它能减少向量大小,但会因需计算并以全精度存储量化常数而引入额外“内存开销”。TurboQuant 旨在解决这一开销挑战,提升 KV 缓存压缩和向量搜索相似度查找的效率。

主要特性

  • 针对 KV 缓存瓶颈的极致向量压缩:缩小键值对大小,帮助缓解可能减慢相似度搜索的内存压力。
  • 零精度损失(TurboQuant 声明):该压缩方法在测试中实现模型大小大幅缩减,同时不牺牲 AI 模型性能。
  • 基于 PolarQuant 的第一阶段压缩(随机旋转 + 标准量化器):首先随机旋转向量以简化其几何形状,然后应用高质量量化器捕捉大部分信息。
  • 使用 QJL 的 1 位残差校正消除偏差:采用极小的额外压缩步骤(描述为仅 1 bit)结合 QJL 算法,移除第一阶段引入的偏差。
  • 工作中包含的支持算法(QJL 和 PolarQuant):TurboQuant 的效果依赖 Quantized Johnson-Lindenstrauss (QJL) 和 PolarQuant,这两者均为独立方法。

如何使用 TurboQuant

  1. 识别 LLM 或检索管道中的向量压缩需求,如压缩 KV 缓存张量或缩小用于相似度搜索的向量大小。
  2. 应用 TurboQuant 的两阶段方案:先使用 PolarQuant 阶段(随机旋转后进行高质量量化),再应用 1 位 QJL 残差校正。
  3. 适用时使用 QJL 实现零开销符号位表示,因为它描述为为每个结果向量数生成符号位(+1 或 -1),无需像传统方法那样存储量化常数。
  4. 验证特定模型设置中的注意力分数行为和检索质量,因为文章将该方法定位于准确的注意力评分(决定输入哪些部分重要的过程)。

使用场景

  • 压缩 LLM KV 缓存以降低内存成本:缩小键值存储大小,使注意力内的相似度相关检索更快且内存占用更少。
  • 提升向量搜索吞吐量:压缩用于高速相似度查找的向量,通过减少内存和带宽需求加速大规模检索。
  • 减少传统量化开销带来的精度风险:当现有量化方法因存储常数引入额外内存开销时,特别使用 TurboQuant。
  • 量化 Transformer 设置中的注意力分数稳定性:应用 QJL 残差校正步骤解决量化引入的偏差,来源将其与更准确的注意力分数计算相关联。

常见问题

TurboQuant 是单一算法还是方法集合?

原文将 TurboQuant 呈现为一种压缩方法,同时介绍了 Quantized Johnson–Lindenstrauss (QJL)PolarQuant 作为实现 TurboQuant 效果所用方法。

TurboQuant 与传统向量量化相比解决什么问题?

传统方法需为多个数据块计算并以全精度存储量化常数,从而增加 内存开销。TurboQuant 被引入为解决该开销的“最优”方式。

TurboQuant 如何避免 QJL 需要全精度量化常数?

原文描述 QJL 使用 Johnson–Lindenstrauss 变换,将每个结果向量数降至单一 符号位 (+1 或 -1),称其为 零内存开销 表示,同时使用特殊估计器维持精度。

TurboQuant 在 LLM 系统中的应用位置?

文章明确提及两个目标:KV 缓存压缩 和大规模搜索及 AI 系统中的 向量搜索 相似度查找。

TurboQuant 中何时使用 PolarQuant?

TurboQuant 将 PolarQuant 用作 第一阶段:先通过随机向量旋转简化几何形状,然后对向量各部分应用标准高质量量化器。

替代方案

  • 传统向量量化方法:广义上,这些方法压缩高维向量,但存储量化常数可能产生额外内存开销,这是 TurboQuant 旨在解决的关键缺点。
  • 用于相似性搜索的其他向量压缩方法:如果主要目标是更快的检索和更少内存,可考虑通用向量压缩技术;主要区别在于内存开销与相似度/精度保持的权衡方式。
  • 通用 KV 缓存量化/优化策略:模型效率的替代方法可能直接针对 KV 缓存内存,但可能不采用 TurboQuant 的特定两阶段方案及 QJL 残差校正。
  • 无量化的近似相似性索引:某些系统中,团队可通过更改检索/索引结构而非压缩向量来降低内存和延迟,这将工作流从量化表示转向索引选择。
TurboQuant | UStack