我們仔細閱讀每一份意見回饋,並非常認真地看待您的建議。
如需查看所有可用的限定詞,請參閱我們的說明文件。
這是 botirk38/turboquant 的實驗性 WASM + relaxed SIMD 版本,適用於瀏覽器和 Node.js。
基於論文「TurboQuant: Online Vector Quantization with Near-optimal Distortion Rate」(Google Research, ICLR 2026)。
現場展示 — 包括向量搜尋、圖像相似度、3D 高斯噴灑壓縮,以及一個可在瀏覽器中運行的 Gemma 4 E2B LLM,其 KV 快取經過 TurboQuant 壓縮 — 全部在瀏覽器中完成。
此儲存庫的大部分內容是 TurboQuant 的 WASM 版本:一個透過 Zig 編譯為 WASM 的版本,支援 relaxed SIMD,可在 CPU 上對向量進行編碼/解碼/評分。這也是 turboquant-wasm npm 套件所提供的內容 — 向量搜尋、圖像相似度以及 3DGS 展示都載入此模組並調用它。
Prompt → Diagram 展示則有所不同:它直接在 WGSL 計算著色器中重新實現了相同的 TurboQuant 數學運算(極座標 + QJL 旋轉)。LLM KV 快取的編碼/解碼/點積呼叫量相當於 140 層 × 35 個頭 × 30 個 token/秒 — 只有 GPU 原生路徑才能達到即時效能。因此,該展示是演算法的 showcases,而非套件的消費者。
相同的數學運算,兩種載體:WASM 用於 CPU 向量搜尋工作負載,WGSL 用於 GPU LLM 工作負載。如果您想了解「TurboQuant 壓縮在 GPU 上的表現如何」,demo/src/draw/shaders/ 中的 draw 展示的 WGSL 著色器是參考範例。
Float32 嵌入索引非常龐大 — 100 萬個向量 × 384 維度 = 1.5GB。它們無法放入行動裝置的記憶體中,下載需要數分鐘,而且 gzip 壓縮率僅約 7%,因為 float32 的熵很高。
TurboQuant 將其壓縮 6 倍(1.5GB → 240MB),並直接在壓縮資料上進行搜尋,無需解壓縮。無需訓練步驟 — 與 PQ/OPQ 不同,只需 init({ dim, seed }) 即可立即編碼任何向量。
WASM 二進位檔使用 relaxed SIMD 指令:
dotBatch() 在可用時(Chrome 113+, Edge 113+)透明地使用 WebGPU。GPU 計算著色器直接讀取壓縮資料 — 無需解壓縮步驟。在沒有 WebGPU 的裝置上會回退到 WASM SIMD。
編碼會保留內積 — 透過黃金值測試和失真邊界驗證:
在以下情況下使用 TurboQuant:向量連續到達(LLM KV 快取、即時索引),您無法暫停進行訓練,您需要簡單的部署(瀏覽器、邊緣裝置),或者您想要一個沒有依賴項的單一 npm 套件。
在以下情況下使用 PQ/OPQ:您有一個靜態資料集,可以負擔訓練步驟,並且需要最大的壓縮率 + 最快的查詢速度。PQ 是傳統批次向量搜尋的更好工具。
TurboQuant WASM SIMD 向量壓縮 — 每維度 3 位元,支援快速點積運算。需要 relaxed SIMD(Chrome 114+, Firefox 128+, Safari 18+, Node 20+)