Repolode
michaelfeil

michaelfeil/infinity

基于 Rust 与 LibTorch 的推理服务引擎,通过 REST API 提供向量嵌入、重排序与分类服务。

Star
2,984
Fork
220
未关闭 Issue
153
最近提交
3天前

这是什么?

Infinity 是一个面向文本嵌入、重排序、分类等模型的推理服务引擎。v3 服务端使用 Rust 编写,通过 PyTorch 的 C++ 接口 LibTorch 执行模型推理。客户端通过 HTTP 调用,包括用于稠密向量的 /v1/embeddings、用于重排序的 /rerank、用于序列分类与奖励打分的 /v1/classify,以及用于 SPLADE 稀疏向量的 /embed_sparse。

服务通过 Docker 镜像启动,需要计算能力为 SM80(Ampere)或更新的 NVIDIA GPU 以及 NVIDIA Container Toolkit。默认使用所有可见的 CUDA GPU,每块 GPU 各持有一份完整模型副本,池化方式根据模型检查点的元数据自动选择。/health 接口会在加载和预热完成后报告就绪状态,运行中的服务还提供 /docs 交互式 API 页面。

支持的模型涵盖稠密与多模态嵌入、用于后期交互检索的 token 级向量、token 分类与命名实体识别,以及结构化决策。基于 Python 的早期版本(v2,包名 infinity-emb)仍保留在同一仓库中。

核心功能

  • 01通过 REST API 提供嵌入、重排序、分类和结构化决策服务。
  • 02服务端由 Rust 编写,使用 LibTorch 执行推理。
  • 03默认使用所有可见 CUDA GPU,每块 GPU 保存一份完整模型。
  • 04支持 SPLADE 稀疏向量与用于后期交互检索的 token 级向量。
  • 05通过 /health 接口在加载和预热完成后报告就绪状态。

适用场景

  • 在 NVIDIA GPU 上部署嵌入接口,用于语义搜索或检索增强生成。
  • 在搜索流程中通过 HTTP API 增加重排序环节。
  • 将命名实体识别或序列分类模型作为服务运行。
  • 使用固定版本的容器镜像部署可复现的 GPU 推理服务。

快速上手

  1. 1

    用 Docker 运行 Infinity v3 服务(需要 SM80 或更新的 NVIDIA GPU 以及 NVIDIA Container Toolkit)

    docker run --rm --gpus all -p 8000:8000 -v infinity-cache:/data ghcr.io/michaelfeil/infinity_v3:nvidia-3.0.0 --model-id sentence-transformers/all-MiniLM-L6-v2 --torch-device cuda --dtype bfloat16 --hostname 0.0.0.0 --port 8000
  2. 2

    向正在运行的服务发送嵌入请求

    curl http://localhost:8000/v1/embeddings -H 'Content-Type: application/json' -d '{"model":"sentence-transformers/all-MiniLM-L6-v2","input":["A document about semantic search."]}'

使用前须知

  • v3 服务采用自定义的源码可用许可证(Infinity Restricted MIT License 1.0),而非标准开源许可证。
  • 文档中的 Docker 快速开始需要计算能力为 SM80 或更新的 NVIDIA GPU。
  • 每块 GPU 必须能容纳完整模型,包括 MoE 模型的所有专家。

收录于专题

标签

常见问题

infinity 是什么?
基于 Rust 与 LibTorch 的推理服务引擎,通过 REST API 提供向量嵌入、重排序与分类服务。 Infinity 是一个面向文本嵌入、重排序、分类等模型的推理服务引擎。v3 服务端使用 Rust 编写,通过 PyTorch 的 C++ 接口 LibTorch 执行模型推理。客户端通过 HTTP 调用,包括用于稠密向量的 /v1/embeddings、用于重排序的 /rerank、用于序列分类与奖励打分的 /v1/classify,以及用于 SPLADE 稀疏向量的 /embed_sparse。
infinity 可以免费使用吗?用的什么许可证?
infinity 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
infinity 还在维护吗?
活跃维护中。infinity 最近一次提交是在 2026年11月4日。
infinity 适合用来做什么?
在 NVIDIA GPU 上部署嵌入接口,用于语义搜索或检索增强生成。 在搜索流程中通过 HTTP API 增加重排序环节。 将命名实体识别或序列分类模型作为服务运行。 使用固定版本的容器镜像部署可复现的 GPU 推理服务。
infinity 怎么安装和运行?
用 Docker 运行 Infinity v3 服务(需要 SM80 或更新的 NVIDIA GPU 以及 NVIDIA Container Toolkit): docker run --rm --gpus all -p 8000:8000 -v infinity-cache:/data ghcr.io/michaelfeil/infinity_v3:nvidia-3.0.0 --model-id sentence-transformers/all-MiniLM-L6-v2 --torch-device cuda --dtype bfloat16 --hostname 0.0.0.0 --port 8000 向正在运行的服务发送嵌入请求: curl http://localhost:8000/v1/embeddings -H 'Content-Type: application/json' -d '{"model":"sentence-transformers/all-MiniLM-L6-v2","input":["A document about semantic search."]}'
在哪里获取 infinity?
源代码和安装说明在 GitHub 上:https://github.com/michaelfeil/infinity

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

相关项目