alitrack

一个小众算法,同时出现在卫星遥感、向量数据库和本地OCR里

TurboQuant:不训练、不建码本、ARM 上比 FAISS 快 19%。

最近三天,我在三个完全不同的项目里撞见了同一个算法。

一个是 Isaac Corley 的地球观测项目 TerraBit。5000 万个卫星影像向量,用 TurboQuant 从 183 GB 压到 11 GB,浏览器里跑 XOR+popcount 检索。他说 4-bit 的召回率「和 float32 几乎没有区别」。

一个是 Qdrant 1.18。五月刚发布的版本,把 TurboQuant 作为默认量化方案推上线。四种压缩比:4-bit (8×) 到 1-bit (32×),非对称评分,SIMD 加速。内部实现其实是 TurboQuant + RaBitQ 混合体,加了逐坐标各向异性补偿——论文算法到生产中间差了一个工程师数月的打磨。

还有一个是我自己在 M3 Ultra 上跑的本地 OCR 管道。BGE-M3 嵌入后的 1024 维向量,用 turbovec(一个 Rust 写的 TurboQuant Python 绑定)做 RAG 索引。26 个向量时索引只有几 KB,1000 万文档也只要 4 GB。

三个场景完全没有交集:卫星遥感、向量数据库、中文 OCR。但它们不约而同用了同一个轮子。

● ● ●

TurboQuant 到底是什么

Google Research 2026 年的论文,ICLR 接收。算法本身不复杂:随机旋转向量 → 每维独立做最优标量量化 → 可选残差补偿。两层关键创新放在一块就是一个不需要训练数据的量化器,失真率理论接近最优。

传统的 Product Quantization 需要先跑 k-means 学码本。换一批数据,码本要重学。二进制量化更快但没有中间地带——不是 1-bit 就是 float32。

TurboQuant 填的是中间的空档。4-bit 时质量几乎等于 float32,2-bit 时比二进制量化高 10-20 个百分点。而且完全不挑数据分布——旋转把所有向量"抹平"成近似高斯分布,什么嵌入模型来了都一样。

● ● ●

为什么在 ARM 上特别快

TerraBit 用 TurboQuant 是因为他们要把卫星数据塞进浏览器。Qdrant 用 TurboQuant 是因为用户不想为 GPU 向量数据库付费。我用 TurboQuant 是因为 M3 Ultra 上没有 CUDA。

这三个理由指向同一个事实:TurboQuant 在 ARM 上跑得比 x86 好。

turbovec 的基准测试:Apple Silicon 的 NEON SIMD 比 FAISS IndexPQFastScan 快 10-19%,所有配置下。x86 上差距小很多,2-bit 时 FAISS 甚至反超几个百分点——AVX-512 VBMI 指令的位操作比 NEON 更灵活。

但 ARM 正在吃掉越来越多的 AI 推理场景。Apple Silicon、AWS Graviton、树莓派集群、手机端侧推理。TurboQuant 在这个趋势上是顺风的。

● ● ●

不建码本意味着什么

pgvector 的一个用户做了对比:884 万向量的 HNSW 索引,新增 10% 数据后重新平衡图用了 8500 秒。TurboQuant 全量重建只要 1095 秒。

没有图结构、没有码本训练、没有 k-means 迭代——add() 完立刻能搜。这对本地 RAG 场景是质变:你不会因为加了一张新发票去等 10 分钟重建索引。

过滤查询的差距更大。1% 选择率(8.8 万条)下 pgvector 要 350ms,turbovec 只要 3.4ms——100 倍的差距来自 SIMD 内核直接在压缩空间里算分数,不需要解压、不需要回表。

● ● ●

局限

TurboQuant 是扁平索引。它扫描所有向量。百万级没问题,千万级开始吃力,亿级无法承受。FAISS 的 IVF 分区或 Qdrant 的 HNSW 图结构在十亿级场景仍然不可替代。

低维向量(d < 200)下旋转近似变弱,召回率下降。现代嵌入模型最低也是 768 维起跳,这个限制不太致命。

生产环境的 TurboQuant 不等于论文里的 TurboQuant。Qdrant 的实现混了 RaBitQ 的长度重归一化和 1-bit 评分路径,又加了逐坐标各向异性补偿。论文到工程之间差的东西不少,但社区已经在填了。

● ● ●

一个观察

TurboQuant 让我想起 SQLite。

不是功能上像,是气质上像。零配置、单文件、无服务端、ARM 上跑得特别好、能处理比你想象中多得多的数据。SQLite 从「玩具数据库」到「地球上部署最广的数据库」用了 20 年。TurboQuant 从论文到 Qdrant 默认方案用了不到 6 个月。

本地 AI 的栈正在往同一个方向收敛:MLX 框架、TurboQuant 索引、Ollama/Mac 推理。没有 Docker、没有 GPU 集群、没有 Kubernetes。一个算法到底能不能成,不只看精度和速度,也看它能不能嵌进这个越来越薄的栈里。

TurboQuant 能。

代码:https://github.com/RyanCodrai/turbovec | Qdrant 实现:https://qdrant.tech/articles/turboquant-quantization/ | 论文:https://arxiv.org/abs/2504.19874