自托管推理服务器,通过兼容 OpenAI 的 API 在一个集群中提供嵌入、重排序、OCR、抽取和大模型等多种模型。
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
用 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
向正在运行的服务发送嵌入请求
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 数据每日更新。
相关项目
一个深度学习服务器与命令行工具,通过 REST API 对图像、文本、表格和时间序列数据进行训练与推理。
将 Vercel AI SDK 接入 OpenRouter 的 provider 包,通过统一接口调用数百个大模型。
Go 语言向量搜索库,提供精确余弦相似度检索,并可选接入基于 llama.cpp 的本地 GGUF 嵌入或 OpenAI 兼容的云端嵌入。
一款以容器方式在本地运行 AI 模型的开发工具,自动匹配 GPU 镜像并提供 REST API 或聊天服务。
用于将 AI/ML 模型打包并部署到 Baseten 或自有基础设施的命令行与 Python 工具。