infinity
高性能文本嵌入向量推理服务引擎,支持 TensorRT/ONNX 多后端加速
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
高性能文本嵌入向量推理服务引擎,支持 TensorRT/ONNX 多后端加速
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你在构建一个 RAG(检索增强生成)系统,语料库有 1000 万条文档。每次用户提问,系统需要从海量向量中找出最相关的 Top-K 片段——这个过程如果延迟超过 500ms,用户体验将急剧下降。Infinity 正是为解决这一痛点而生:它是一个专为文本嵌入(Embedding)、重排序(Reranking)、CLIP、CLAP 和 ColPali 模型打造的高吞吐、低延迟推理服务引擎,GitHub 获星 2800+。
图1:Infinity 处理多模态图片样本示意
项目作者 Michael Feil 在实际构建向量数据库应用时,发现市面上的 embedding 服务要么性能不足,要么依赖闭源云服务。他决定从零打造一个开源替代品——支持任意 HuggingFace 模型、高吞吐量、低延迟,且能在本地硬件上运行的推理服务。这一理念精准击中了 AI 应用开发者对私有化部署和成本控制的双重需求。
如果把 HuggingFace 上的预训练 embedding 模型比作一辆高性能赛车,Infinity 就是让这辆车上赛道的那套专业装备——它负责把模型高效地加载到硬件上,并通过 REST API 对外提供服务。
Infinity 的核心定位是推理服务层,它站在预训练模型和业务应用之间,承担以下职责:
Infinity 采用模块化插件架构,核心代码位于 libs/infinity_emb/infinity_emb/:
inference/ — 推理调度层:batch_handler(批处理)、queue(队列)、caching_layer(缓存)、loading_strategy(模型加载策略)transformer/ — 模型实现层:embedder(embedding 模型)、crossencoder(交叉编码 reranker)、classifier(分类)、quantization(量化)、vision/audio(多模态)fastapi_schemas/ — API 接口定义infinity_server.py — FastAPI 主服务入口技术选型上,Infinity 选用了 FastAPI 作为 Web 框架(异步高性能 + 自动 OpenAPI 文档),搭配 uvicorn 作为 ASGI 服务器,整体属于典型的异步事件驱动架构,适合高并发 I/O 密集型推理场景。
方式一:Docker 一键部署(推荐)
# NVIDIA GPU 模式
docker run -it --gpus all \
-v $PWD/data:/app/.cache \
-p 7997:7997 \
michaelf34/infinity:latest \
v2 --model-id BAAI/bge-small-en-v1.5 --port 7997
# AMD ROCm 模式
docker run -it \
--device=/dev/kfd --device=/dev/dri \
michaelf34/infinity:latest-rocm \
v2 --model-id BAAI/bge-small-en-v1.5 --port 7997
方式二:pip 安装
pip install "infinity_emb[all]"
infinity-emb v2 --model-id BAAI/bge-small-en-v1.5
方式三:Python SDK
from infinity_emb import InfinityPipeline
pipe = InfinityPipeline("BAAI/bge-small-en-v1.5")
result = pipe.encode(["Hello world"])
API 调用示例(与 OpenAI 兼容):
curl -X POST http://localhost:7997/v1/embeddings \
-H "Content-Type: application/json" \
-d '{"input": ["Hello world"], "model": "BAAI/bge-small-en-v1.5"}'
Infinity 官方 benchmark 在 GCP g2-standard-16(1× NVIDIA L4)上对比了多个开源方案。以 BAAI/bge-large-en-v1.5 模型为例,Infinity 的吞吐量显著领先竞品,原因是:
对于企业用户,Infinity 还支持 AMD ROCM(M125/MI210/MI300 系列)和 AWS Inferentia 2 专用加速器,覆盖主流 GPU/加速硬件。
适用场景:
局限性:
Infinity 的出现填补了开源向量推理服务的一个关键空白——高性能 + 多后端 + HuggingFace 原生支持。在它之前,开发者往往需要在 text-embeddings-inference(HuggingFace 官方)、FastEmbed、SentenceTransformers 自托管之间权衡,各有取舍。Infinity 通过统一的推理抽象层,让用户可以一键切换 PyTorch/ONNX/TensorRT/CTranslate2 后端,而无需修改业务代码。
目前已有 BentoML(通过 BentoInfinity)、RunPod、Modal、TrueFoundry、Dstack 等多个平台提供 Infinity 的集成或托管服务,生态正在快速扩张。
| 场景 | 推荐部署方式 | 推荐推理引擎 |
|---|---|---|
| 个人开发测试 | Docker CPU 模式 | ONNX |
| 生产 NVIDIA GPU | Docker + v2 CLI | TensorRT |
| AMD GPU 用户 | Docker ROCm | PyTorch + compile |
| AWS 云服务 | AWS Neuron / Modal | Neuron / PyTorch |
| Apple 芯片 Mac | pip 安装 | PyTorch MPS |