RyanCodrai/turbovec
A vector index built on TurboQuant, written in Rust with Python bindings
解决的问题
turbovec 提供了一种高性能、内存高效的方法来存储和搜索海量向量嵌入集合。它显著降低了内存使用量(每个维度仅占用 2 或 4 位),同时保持了高搜索速度和召回率,非常适合需要在本地进程内进行大规模向量存储,且无需专用数据库服务器开销的应用场景。
工作原理
该库使用 TurboQuant 量化技术,通过共享的随机正交矩阵旋转向量,确保坐标遵循可预测的分布。然后,它使用预计算的 Lloyd-Max 码本对这些坐标进行量化并打包。在搜索时,它利用 SIMD 优化的内核直接在压缩数据上执行快速内积搜索。它支持增量更新、原子文件同步以及通过允许列表或位掩码进行过滤。
适用对象
适用于在 Python 或 Rust 中构建本地 AI 应用的开发者,他们需要在受限的 RAM 环境下对大型数据集(例如数百万个嵌入)执行快速相似度搜索。它专为那些倾向于使用进程内库而非独立向量数据库服务,且能够接受有损量化搜索方案的用户而设计。
主要亮点
- 极致压缩: 与 float32 存储相比,内存占用减少高达 15.5 倍。
- 高性能: 在 ARM 和 x86 架构上,搜索速度均显著快于 FAISS FastScan。
- 零训练: 使用数学码本,这意味着添加新数据时无需训练阶段或重建索引。
- 即插即用集成: 兼容 LangChain, LlamaIndex, Haystack 和 Agno 等主流框架。
- 本地且持久: 完全在您的进程内运行,并支持原子化、崩溃安全的持久化存储。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目