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