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 字段路由;上线前确认显存能否同时容纳所有模型,或使用按需加载。
/embeddings 对 input、model、encoding_format 的支持不同;用实际请求验证,不要假设和 OpenAI 完全一致。合上页面,先回答,再展开对照。
小程序版
微信扫码,随时查命令