Post

TurboQuant 阅读笔记:随机旋转与在线向量量化

区分向量重建误差与内积误差,理解随机旋转为什么有助于在线量化。

TurboQuant 阅读笔记:随机旋转与在线向量量化

TurboQuant 关注在线向量压缩,应用背景包括向量检索和大模型 KV cache。本文根据个人阅读笔记整理,对照了原论文,重点澄清量化对象和误差目标。

向量量化和权重量化的对象不同

权重量化压缩模型参数;向量量化压缩的是运行中产生或存储的向量。后者可能用于估计相似度、计算注意力,或恢复近似向量。

“在线”不代表不断训练模型。这里需要关注的是,新向量到来时如何完成量化,以及是否依赖额外的数据训练阶段。原笔记中把它称为“在线训练”,容易混淆这两个概念。

两种失真目标

指标关心的问题
向量重建误差压缩后的向量离原向量有多远?
内积误差使用压缩向量计算相似度,结果偏了多少?

两者有关联,但不是同一个优化目标。重建误差较小,并不自动保证所有查询方向上的内积估计都同样准确。

随机旋转为什么有帮助

设旋转矩阵 \(R\) 正交,在精确计算下:

\[\|Rx\|_2=\|x\|_2,\qquad (Rx)^T(Ry)=x^Ty\]

旋转不会改变向量维度,也不会天然引入压缩;它改变的是坐标表达。对归一化向量进行随机旋转,可利用旋转后坐标的统计性质设计标量量化器。

压缩发生在后续量化步骤。随机旋转使某个向量原先集中在少数坐标上的幅度更分散,从而改善直接按坐标量化时遇到的问题。不能把高维近似直觉表述为所有坐标严格独立。

重建量化与内积校正

论文区分面向均方误差的量化与面向内积估计的处理,并利用残差信息校正内积估计。理解方法时,要检查随机性、位预算,以及无偏性对应的具体估计量。

无偏性是关于期望的性质,不代表每一次估计都没有误差,也不代表任意后续的非线性计算都保持无偏。

KV cache 的存储该怎样估算

一个简化的 KV cache 存储模型为:

\[M\approx 2\times B\times L\times T\times H_{KV}\times d_h\times s\]

其中依次是批大小、层数、缓存 token 数、KV 头数、头维度和每个数值的字节数;前面的 2 表示 K 与 V。实际实现还会增加缩放因子、索引、对齐等开销。

估算时尤其要区分 KV 头数、查询头数和隐藏维度,避免把已经包含头数的维度再乘一次。

阅读后的检查清单

评估这类方案,应明确它压缩什么、需要多少元数据、优化哪种失真,以及下游任务受什么影响。向量检索关注召回率,注意力计算还涉及 softmax 与最终生成质量;理论误差界不能直接替代应用测量。

This post is licensed under CC BY 4.0 by the author.