AI News HubLIVE
站内改写2 分钟阅读

Qdrant中的TurboQuant

Qdrant 1.18推出了TurboQuant,一种基于Google Research的旋转向量量化方法,并进行了扩展以适用于生产级嵌入。它提供4位、2位、1.5位和1位的量化选项,在压缩率和召回率上优于或相当于标量量化(SQ)和二进制量化(BQ)。本文介绍了TurboQuant的原理、Qdrant的增强实现(长度归一化和各坐标校准)以及基准测试结果。

来源Qdrant Blog作者: [email protected] (Andrey Vasnetsov)

如果您在生产环境中运行向量工作负载,您可能已经熟悉Qdrant中的压缩梯度:float32是基准,标量量化(SQ)将向量压缩4倍且几乎不损失召回率,二进制量化(BQ)则以16倍或32倍压缩打包向量。

Qdrant 1.18引入了TurboQuant,这是Google Research提出的一种基于旋转的向量量化方法,并进行了扩展以使其适用于实际生产环境中的嵌入。基准测试结果显示,TurboQuant在多个公开嵌入数据集上表现优异:4位TurboQuant与SQ竞争激烈,在大多数数据集上相差约1-2个百分点,有时甚至领先SQ(当SQ的int8网格难以适应嵌入分布时)。2位和1位TurboQuant在匹配BQ存储预算的同时,始终提供更高的召回率。

建议很简单:如果您当前使用SQ或BQ,请在数据的测试子集上尝试等效的TurboQuant配置。只需更改配置并重新索引即可。收益取决于您的起点:从SQ切换到TQ 4位可在竞争性召回率下节省一半存储(召回率约1-2个百分点);从BQ切换到相同存储类别的TurboQuant可在相同内存下获得召回率提升。

TurboQuant的原理

TurboQuant(Zandieh等人,2026)是乘积量化(PQ)家族中的一种旋转基向量量化算法。其核心步骤包括:对每个向量应用随机正交旋转,使各坐标方差均匀分布;然后使用标准正态分布的固定查找表(Lloyd-Max码本)独立量化每个坐标;最后通过码本索引直接重构点积得分。由于旋转是正交的,点积和L2距离得以保持。

其优点是无需针对数据集训练、无需校准集、无需存储码本。码本仅从标准正态分布推导一次,即可通用。相比之下,PQ需要学习码本并随索引一起传输。

Qdrant的扩展

Qdrant在原生TurboQuant基础上增加了以下扩展:

  • 长度归一化:原始MSE变体存在长度偏差,量化后的向量系统性变短。Qdrant借鉴RaBitQ的思路,为每个向量存储一个额外的标量记录长度收缩比例,并在评分时乘回。仅需4字节和一次乘法,即可有效消除偏差。
  • 各坐标校准(各向异性补偿):旋转步骤假设数据各向同性,但实际嵌入往往具有各向异性(少数方向集中大部分方差)。Qdrant在每个段中进行预处理:估计旋转后每个坐标的(偏移,缩放)对,然后调整分布以匹配固定码本。这防止了坐标偏移导致码本失效。

性能基准

在四个代表性数据集上的HNSW(m=16, ef_construct=128)召回率测试表明:

  • TQ 4位(8倍压缩)与SQ(4倍压缩)相当,在某些数据集上甚至超出4.6个百分点。
  • TQ 2位(16倍压缩)比BQ 2位高出11-15个百分点。
  • TQ 1位(32倍压缩)比BQ 1位高出9-21个百分点。

完整结果请参阅文章内的详细表格。TurboQuant为向量搜索提供了新的效率与精度平衡点。