NVIDIA Triton Inference Server 通过 HTTP 和 gRPC 提供机器学习模型服务。它支持多种后端,包括 TensorRT、PyTorch、ONNX Runtime、TensorFlow、Python 和 ensemble,同时提供批处理、指标、模型版本管理和并发控制功能。
从容器开始 #
受支持的 Triton 容器通过 NVIDIA NGC 发布:
sh
docker pull nvcr.io/nvidia/tritonserver:<tag>
docker run --gpus all --rm -p 8000:8000 -p 8001:8001 \
-v "$PWD/models:/models" \
nvcr.io/nvidia/tritonserver:<tag> tritonserver \
--model-repository=/models请选择支持与模型匹配的后端的标签。最小镜像仅包含服务器,其他镜像则会添加选定的框架或 SDK 组件。请查看发行说明,确认服务器、CUDA 驱动程序和模型运行时之间的兼容性。
模型仓库布局 #
Triton 从模型仓库中发现模型:每个模型对应一个目录,每个模型目录包含一个或多个数字版本目录:
text
models/
classifier/
config.pbtxt
1/
model.onnxconfig.pbtxt 声明模型输入、输出、批处理行为以及后端特定设置。对于受支持的格式,Triton 可以推断部分配置,但显式配置更加清晰,并且许多功能都要求显式配置。Python 后端模型通常会在其版本目录中提供 model.py,并实现 Triton 的后端接口。
请求与运维 #
客户端在推理请求中发送命名张量,并在响应中接收命名输出张量。动态批处理可以合并兼容的请求以提高吞吐量,但必须根据延迟目标调整其队列等待时间和批次大小。
仅公开适合当前环境的端点以及对模型仓库的访问权限。监控 Prometheus 指标端点,使用具有代表性的输入形状进行测试,并对模型进行版本管理,从而使回滚在运维上保持简单。
评论
在 GitHub 上阅读或评论(发表评论需要登录)