跳到主要內容
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中的TurboQuant
報告錯誤

更正渠道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

如果您在生產環境中運行向量工作負載,您可能已經熟悉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為向量搜索提供了新的效率與精度平衡點。

展開要點與分析

文章情報

工程師進階

要點

  • TurboQuant是一種新的旋轉基向量量化算法,在4倍壓縮下召回率與SQ相當,2位和1位模式下比BQ高出9-24個百分點。
  • Qdrant通過長度歸一化和各座標校準(各向異性補償)增強了TurboQuant,使其適用於實際生產嵌入。
  • 啓用TurboQuant只需更改配置並重新索引,現有SQ或BQ用户可以輕鬆遷移。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。