OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Infinity — 轻量的向量数据库与嵌入检索引擎

Infinity — 轻量的向量数据库与嵌入检索引擎

 
  halo ·  2026-06-17 11:00:16 · 21 次点击  · 0 条评论  
Infinity logo

AI 原生数据库,专为 LLM 应用打造,提供极速的稠密向量、稀疏向量、张量与全文混合搜索能力。

文档 | 基准测试 | Twitter | Discord

Infinity 是一款尖端的 AI 原生数据库,为稠密向量、稀疏向量、张量、全文及结构化数据等丰富数据类型提供全面的搜索能力。它强力支撑各种大型语言模型(LLM)应用,包括搜索、推荐、问答、对话式 AI、辅助编程、内容生成以及众多 RAG(检索增强生成)应用。

⚡️ 性能表现

Infinity performance comparison

🌟 主要特性

Infinity 集高性能、灵活性、易用性于一身,并具备众多旨在解决下一代 AI 应用挑战的特性:

🚀 极速性能

  • 在百万级向量数据集上实现 0.1 毫秒查询延迟和 15K+ QPS。
  • 在 3300 万文档全文搜索中实现 1 毫秒延迟和 12K+ QPS。

更多详情请参阅基准测试报告

🔮 强大搜索

  • 支持稠密向量、稀疏向量、张量与全文的混合搜索,并支持过滤。
  • 支持多种重排序器,包括 RRF、加权和以及 ColBERT

🍔 丰富数据类型

支持广泛的数据类型,包括字符串、数值、向量等。

🎁 易于使用

  • 直观的 Python API。请参阅 Python API 文档
  • 单一二进制架构,无外部依赖,部署简单。
  • 可作为 Python 模块嵌入,对 AI 开发者友好。

🎮 快速上手

本章节指导您使用 Docker 部署 Infinity 数据库,以独立的客户端和服务器进程方式运行。

前提条件

  • CPU:支持 AVX2 的 x86_64 架构。
  • 操作系统:
  • Linux:glibc 2.17+。
  • Windows:10+ 并启用 WSL/WSL2。
  • MacOS。
  • Python:3.11+ 版本。

安装 Infinity 服务器

Linux x86_64 & MacOS x86_64

sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity
docker pull infiniflow/infinity:nightly
docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly

Windows

如果您使用 Windows 10+,必须启用 WSL 或 WSL2 才能使用 Docker 部署 Infinity。假设您已在 WSL2 中安装 Ubuntu:

  1. 按照此文档 在 WSL2 内启用 systemd。
  2. 根据此处说明 安装 docker-ce。
  3. 如果您已安装 Docker Desktop 4.29 或更高版本:进入 设置 > 开发中功能,然后勾选 启用主机网络
  4. 拉取 Docker 镜像并启动 Infinity:

bash sudo mkdir -p /var/infinity && sudo chown -R $USER /var/infinity docker pull infiniflow/infinity:nightly docker run -d --name infinity -v /var/infinity/:/var/infinity --ulimit nofile=500000:500000 --network=host infiniflow/infinity:nightly

安装 Infinity 客户端

pip install infinity-sdk==0.7.0

运行向量搜索

import infinity

infinity_obj = infinity.connect(infinity.NetworkAddress("<SERVER_IP_ADDRESS>", 23817)) 
db_object = infinity_object.get_database("default_db")
table_object = db_object.create_table("my_table", {"num": {"type": "integer"}, "body": {"type": "varchar"}, "vec": {"type": "vector, 4, float"}})
table_object.insert([{"num": 1, "body": "unnecessary and harmful", "vec": [1.0, 1.2, 0.8, 0.9]}])
table_object.insert([{"num": 2, "body": "Office for Harmful Blooms", "vec": [4.0, 4.2, 4.3, 4.5]}])
res = table_object.output(["*"])
                  .match_dense("vec", [3.0, 2.8, 2.7, 3.1], "float", "ip", 2)
                  .to_pl()
print(res)

🔧 使用二进制文件部署 Infinity

如果您希望使用独立进程的服务器和客户端二进制文件来部署 Infinity,请参阅使用二进制文件部署 Infinity 指南。

🔧 从源码构建

请参阅从源码构建指南。

📚 文档

📜 路线图

请参阅 Infinity 2025 路线图

🙌 社区

21 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 15 ms
Developed with Cursor