[TOOLS] 3 分鐘閱讀OraCore 編輯部

TurboVec:Rust 向量索引把 1,000 萬文件壓到 4GB

TurboVec 用 Rust 與 TurboQuant 把 1,000 萬文件的向量索引壓到 4GB,並提供 Python 綁定、過濾搜尋與本機部署能力,主打比 FAISS 更省記憶體。

分享 LinkedIn
TurboVec:Rust 向量索引把 1,000 萬文件壓到 4GB

TurboVec 是一個以 Rust 實作的向量索引,搭配 Python 綁定,可把 1,000 萬文件壓到 4GB 記憶體,並支援過濾搜尋。

這個專案來自 RyanCodrai/turbovec核心採用 Google Research 的 TurboQuant 方法。作者公布的數字很直接:同一批資料若用 float32,記憶體需求是 31GB;用 TurboVec,則降到 4GB。

它不是只做壓縮,還把索引、查詢與持久化一起包進去。對需要在本機或 VPC 裡跑 RAG 的團隊來說,這種設計比把資料丟到託管向量服務更容易控管。

項目數值
Corpus size10 million documents
RAM with float3231 GB
RAM with TurboVec4 GB
Repository stars3.8k
Forks347
Commits144
Benchmark speedup on ARM12–20% over FAISS FastScan
Benchmark result on x861–6% faster on 4-bit configs

發生了什麼

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

TurboVec 把 TurboQuant 做成可直接落地的本機索引,支援線上 ingest,不需要先做訓練,也不用等資料量變動後重建整個索引。這對資料持續新增的應用很實用,因為索引維護成本會直接影響上線速度。

TurboVec:Rust 向量索引把 1,000 萬文件壓到 4GB

專案同時提供兩種主要介面:TurboQuantIndexIdMapIndex。前者偏向快速建立與查詢,後者則讓外部 ID 保持穩定,方便把向量索引接到既有資料庫或應用層。

它的另一個重點是把過濾搜尋放進 SIMD kernel 裡。使用者可以在查詢時傳入 allowlist 或 slot bitmask,系統只從允許集合裡回傳前 k 筆結果,減少多撈與多算的浪費。

專案頁面也列出一串整合目標,包括 LangChainLlamaIndexHaystackAgno。這代表它不是只面向底層工程師,也想直接進入現成的 RAG 工具鏈。

  • Rust core with Python bindings
  • Online ingest, no separate train phase
  • Filtered search with allowlists or bitmasks
  • Local-only use for air-gapped or VPC deployments
  • Adapters for LangChain, LlamaIndex, Haystack, and Agno

為什麼重要

對開發者來說,TurboVec 的價值在於把向量搜尋的記憶體門檻拉低。這會直接影響小型 GPU、CPU-only 主機,甚至是邊緣設備能不能跑得動向量檢索。

TurboVec:Rust 向量索引把 1,000 萬文件壓到 4GB

它也把「資料不能出域」這件事變得更好處理。若團隊在金融、醫療或內部知識庫場景工作,本機索引加上 Python 綁定,通常比把嵌入向量送去第三方服務更容易過資安與合規審查。

Benchmark 方面,TurboVec 主打在 ARM 上比 FAISS 的 FastScan 快 12–20%,在 x86 的 4-bit 配置也有 1–6% 優勢。這些數字還需要更多真實工作負載驗證,但已經足以讓正在比較 FAISS、託管向量庫和自建索引的團隊把它列入測試清單。

真正的問題是:當資料規模、過濾條件和查詢型態變複雜後,TurboVec 的壓縮率與召回率能不能同時守住。若答案是可以,很多 RAG 專案就不必再用記憶體換便利。