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

TurboVec 是一個以 Rust 實作的向量索引,搭配 Python 綁定,可把 1,000 萬文件壓到 4GB 記憶體,並支援過濾搜尋。
這個專案來自 RyanCodrai/turbovec,核心採用 Google Research 的 TurboQuant 方法。作者公布的數字很直接:同一批資料若用 float32,記憶體需求是 31GB;用 TurboVec,則降到 4GB。
它不是只做壓縮,還把索引、查詢與持久化一起包進去。對需要在本機或 VPC 裡跑 RAG 的團隊來說,這種設計比把資料丟到託管向量服務更容易控管。
| 項目 | 數值 |
|---|---|
| Corpus size | 10 million documents |
| RAM with float32 | 31 GB |
| RAM with TurboVec | 4 GB |
| Repository stars | 3.8k |
| Forks | 347 |
| Commits | 144 |
| Benchmark speedup on ARM | 12–20% over FAISS FastScan |
| Benchmark result on x86 | 1–6% faster on 4-bit configs |
發生了什麼
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
TurboVec 把 TurboQuant 做成可直接落地的本機索引,支援線上 ingest,不需要先做訓練,也不用等資料量變動後重建整個索引。這對資料持續新增的應用很實用,因為索引維護成本會直接影響上線速度。

專案同時提供兩種主要介面:TurboQuantIndex 和 IdMapIndex。前者偏向快速建立與查詢,後者則讓外部 ID 保持穩定,方便把向量索引接到既有資料庫或應用層。
它的另一個重點是把過濾搜尋放進 SIMD kernel 裡。使用者可以在查詢時傳入 allowlist 或 slot bitmask,系統只從允許集合裡回傳前 k 筆結果,減少多撈與多算的浪費。
專案頁面也列出一串整合目標,包括 LangChain、LlamaIndex、Haystack 與 Agno。這代表它不是只面向底層工程師,也想直接進入現成的 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 主機,甚至是邊緣設備能不能跑得動向量檢索。

它也把「資料不能出域」這件事變得更好處理。若團隊在金融、醫療或內部知識庫場景工作,本機索引加上 Python 綁定,通常比把嵌入向量送去第三方服務更容易過資安與合規審查。
Benchmark 方面,TurboVec 主打在 ARM 上比 FAISS 的 FastScan 快 12–20%,在 x86 的 4-bit 配置也有 1–6% 優勢。這些數字還需要更多真實工作負載驗證,但已經足以讓正在比較 FAISS、託管向量庫和自建索引的團隊把它列入測試清單。
真正的問題是:當資料規模、過濾條件和查詢型態變複雜後,TurboVec 的壓縮率與召回率能不能同時守住。若答案是可以,很多 RAG 專案就不必再用記憶體換便利。