系统学习 AI 学习路径:从 GPU 运行时到推理、微调与 RAG 评估

infinity

Infinity 嵌入服务:多模型、高吞吐的 embedding 与 rerank HTTP 服务

补充说明

Infinity 是一个面向 embedding 和 reranking 的高吞吐推理服务,支持 GPU/CPU、动态批处理、多模型和 OpenAI 兼容 API。它适合给 RAG、语义搜索和推荐系统提供统一的向量化入口,和 TEI 属于同类工具,但在多模型托管和 API 形态上有所不同。

Infinity 负责加载模型、批处理请求和返回向量/分数;文档切分、向量库、检索编排仍由业务或 RAG 框架负责。选型时比较模型支持范围、API 兼容性、批处理效率、部署复杂度和社区维护情况。

常用示例

# 启动服务,指定模型和端口
infinity_emb v2 --model-id BAAI/bge-m3 --port 7997

# 指定设备和批处理大小
infinity_emb v2 --model-id BAAI/bge-m3 --device cuda --batch-size 32

# Docker 方式
docker run -p 7997:7997 \
  -v /models:/app/.cache \
  michaelfeil/infinity:latest \
  v2 --model-id BAAI/bge-m3
# OpenAI 兼容的 embeddings 端点
curl http://localhost:7997/embeddings \
  -H 'Content-Type: application/json' \
  -d '{"model":"BAAI/bge-m3","input":["磁盘满怎么排查","Pod 一直重启"]}'

# 重排
curl http://localhost:7997/rerank \
  -H 'Content-Type: application/json' \
  -d '{"model":"BAAI/bge-reranker-v2-m3","query":"磁盘满","documents":["df -h","Pod 日志"]}'

# 查看已加载模型
curl http://localhost:7997/models

多模型场景可以在启动时注册多个模型,按请求里的 model 字段路由;上线前确认显存能否同时容纳所有模型,或使用按需加载。

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. Infinity 和 TEI 的定位有什么相同和不同?
  2. 多模型部署时最容易遇到的资源问题是什么?
  3. 为什么换 embedding 模型后已有向量库可能失效?
答案
  1. 两者都提供 embedding/rerank HTTP 服务、动态批处理和 GPU 加速;Infinity 更强调多模型托管和 OpenAI 兼容 API,TEI 由 Hugging Face 维护、与 HF 模型生态结合更紧。
  2. 显存。每个模型都占显存,多模型同时加载容易 OOM;需要按需加载、限制并发或拆分实例。
  3. 不同模型的向量维度和语义空间不同,旧向量无法与新查询向量直接比较;换模型后要重建索引并重新评估召回。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令