turbovec: 這是什麼、解決什麼問題以及為什麼它正受到關注

turbovec: 這是什麼、解決什麼問題以及為什麼它正受到關注

它解決了什麼問題

turbovec 是一個高效能向量索引,旨在減少大規模向量搜尋對龐大 RAM 的需求。它允許使用者在極少量的記憶體中容納數百萬份文件(例如:在 4 GB 記憶體中容納 1000 萬份文件,而非 31 GB),同時保持高搜尋速度與召回率,使其成為離線環境(air-gapped)或記憶體受限的 RAG 架構的理想選擇。

運作原理

該專案基於 Google Research 的 TurboQuant 演算法,使用一種不需要獨立訓練階段的數據無關量化器(data-oblivious quantizer)。其流程包含:

  1. 正規化與旋轉 (Normalization and Rotation):向量被正規化為單位方向,並乘以一個隨機正交矩陣,使座標分佈變得可預測。
  2. 校準 (Calibration (TQ+)):在首次攝取數據時,會對每個座標進行位移與縮放,將經驗數據映射到標準的 Beta 分佈。
  3. Lloyd-Max 量化:使用預先計算的最佳邊界,將座標分桶(bucketed)為 2-bit 或 4-bit 整數。
  4. 長度重新正規化 (Length-Renormalization):每個向量會儲存一個純量,用以修正因量化導致的內積系統性低估,確保評分不偏不倚。
  5. SIMD 搜尋:使用手寫的 NEON (ARM) 與 AVX-512BW (x86) 核心進行搜尋,直接針對碼本(codebook)值進行評分,無需進行完整解壓縮。

適合對象

正在開發檢索增強生成 (RAG) 應用程式的開發者,且對於隱私、低延遲與記憶體效率有高度要求,特別是使用本地或離線環境的使用者。

重點特色

  • 線上攝取 (Online Ingest):隨著語料庫增長,不需要進行訓練步驟、參數調整或重建索引。
  • 極致壓縮:高達 16 倍的壓縮率(例如:從 FP32 壓縮至 2-bit),且召回率損失極小。
  • 高效率能:在 ARM 架構上優於 FAISS IndexPQFastScan 10–19%,且在 x86 上仍具競爭力。
  • 過濾搜尋 (Filtered Search):支援透過允許清單(allowlist)進行搜尋時過濾,該功能直接整合進 SIMD 核心中,以避免不必要的計算。
  • 框架整合:可直接替換 LangChain、LlamaIndex、Haystack 與 Agno 中的記憶體內向量儲存器。
  • 純本地化 (Pure Local):無託管服務;數據保留在本地機器或 VPC 中。

Sources