Repolode
RyanCodrai

RyanCodrai/turbovec

面向 Python 和 Rust 的进程内向量索引,基于 TurboQuant 将嵌入压缩到每维 2 或 4 比特并直接检索。

可替代:FAISS

Star
17,411
Fork
1,488
未关闭 Issue
23
最近提交
15天前

这是什么?

turbovec 是一个面向 Python 和 Rust 的向量索引库。它使用 TurboQuant 量化方法将每个嵌入存储为每维 2 或 4 比特,并通过 SIMD 内核直接在压缩数据上做最近邻搜索,索引完全运行在当前进程内,无需单独部署服务。

它主要用于 RAG 等检索场景:同样规模的嵌入若用 float32 存储会占用大量内存。库支持无需重新训练的增删向量操作,通过 sync 调用实现只写入变更部分的增量持久化,并提供以自定义 uint64 id 作为键的 IdMapIndex。搜索时可以用 id 白名单进行过滤。项目还提供了与 LangChain、LlamaIndex、Haystack、Agno 的即插即用集成。

它采用全量扫描而非图索引,查询耗时随数据量线性增长。量化会带来一定精度损失,适合在使用前用自己的数据验证召回率。

核心功能

  • 01以每维 2 或 4 比特存储向量,4 比特时体积约为 float32 的 1/7.8。
  • 02直接在压缩编码上执行 SIMD 优化的检索,提供 Python 和 Rust 接口。
  • 03增删向量无需训练或重建索引。
  • 04增量 sync() 只写入变更部分,并以原子方式保存。
  • 05支持按自定义 id 建立索引,并在检索时使用白名单过滤。

适用场景

  • 构建本地 RAG 检索器,将嵌入保存在进程内存中。
  • 在内存有限的机器上检索大规模嵌入集合。
  • 在 LangChain 或 LlamaIndex 应用中接入向量存储,无需部署单独的数据库。
  • 离线或注重隐私的语义搜索,数据不需要离开当前进程。

快速上手

  1. 1

    从 PyPI 安装 Python 包

    pip install turbovec
  2. 2

    使用 TurboQuantIndex 构建并索引向量(参见 README 示例)

使用前须知

  • 它会扫描每个向量,因此不适合对延迟有严格要求的超大规模语料。
  • 量化是有损的,因此结果是近似值而非精确的浮点结果。

标签

常见问题

turbovec 是什么?
面向 Python 和 Rust 的进程内向量索引,基于 TurboQuant 将嵌入压缩到每维 2 或 4 比特并直接检索。 turbovec 是一个面向 Python 和 Rust 的向量索引库。它使用 TurboQuant 量化方法将每个嵌入存储为每维 2 或 4 比特,并通过 SIMD 内核直接在压缩数据上做最近邻搜索,索引完全运行在当前进程内,无需单独部署服务。
turbovec 可以免费使用吗?用的什么许可证?
turbovec 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
turbovec 还在维护吗?
活跃维护中。turbovec 最近一次提交是在 2026年10月7日。
turbovec 适合用来做什么?
构建本地 RAG 检索器,将嵌入保存在进程内存中。 在内存有限的机器上检索大规模嵌入集合。 在 LangChain 或 LlamaIndex 应用中接入向量存储,无需部署单独的数据库。 离线或注重隐私的语义搜索,数据不需要离开当前进程。
turbovec 怎么安装和运行?
从 PyPI 安装 Python 包: pip install turbovec 使用 TurboQuantIndex 构建并索引向量(参见 README 示例)
在哪里获取 turbovec?
源代码和安装说明在 GitHub 上:https://github.com/RyanCodrai/turbovec

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目