turbovec: 它是什么,解决了什么问题,以及为什么它正受到关注

turbovec: 它是什么,解决了什么问题,以及为什么它正受到关注

它解决了什么问题

turbovec 是一个高性能向量索引,旨在减少大规模向量搜索对海量 RAM 的需求。它允许用户在极小的内存占用下容纳数百万个文档(例如,在 4 GB 内存中容纳 1000 万个文档,而不是 31 GB),同时保持高搜索速度和召回率,使其成为离线环境或内存受限的 RAG 栈的理想选择。

工作原理

该项目基于 Google Research 的 TurboQuant 算法构建,使用了一种无需单独训练阶段的数据无关量化器。其过程包括:

  1. 归一化与旋转:向量被归一化为单位方向,并乘以一个随机正交矩阵,以使其坐标分布变得可预测。
  2. 校准 (TQ+):在首次摄取数据时,对每个坐标进行平移和缩放拟合,将经验数据映射到标准 Beta 分布。
  3. Lloyd-Max 量化:使用预计算的最佳边界将坐标分桶到 2-bit 或 4-bit 整数中。
  4. 长度重归一化:每个向量存储一个标量,以纠正由量化引起的内积系统性低估,从而确保评分的无偏性。
  5. SIMD 搜索:使用手写的 NEON (ARM) 和 AVX-512BW (x86) 内核进行搜索,直接针对码本值进行评分,而无需进行完全解压缩。

适用人群

对于构建检索增强生成 (RAG) 应用的开发者,在这些应用中隐私、低延迟和内存效率至关重要,特别是那些使用本地或离线环境的用户。

亮点

  • 在线摄取:随着语料库的增长,不需要训练步骤、参数调整或索引重建。
  • 极高压缩率:高达 16 倍的压缩(例如,从 FP32 到 2-bit),且召回率损失极小。
  • 高性能:在 ARM 架构上优于 FAISS IndexPQFastScan 10–19%,并在 x86 上保持竞争力。
  • 过滤搜索:支持通过白名单进行搜索时过滤,该功能直接集成到 SIMD 内核中以避免不必要的计算。
  • 框架集成:可作为 LangChain、LlamaIndex、Haystack 和 Agno 中内存向量存储的即插即用替代方案。
  • 纯本地:无需托管服务;数据保留在本地机器或 VPC 中。

Sources