TensorRT与Triton Server部署求助:版本不兼容及模型加载失败
问题根源
你遇到的序列化版本不匹配,是因为本地生成.plan模型的TensorRT版本(10.0.1,对应序列化版本237),和Triton Server容器内置的TensorRT版本(对应序列化版本236,属于8.6.x系列)不兼容。TensorRT的.plan文件只能被相同或兼容版本的TensorRT加载,跨大版本会直接触发加载失败。
解决方案
提供两种可选方案,按需选择:
方案1:更换匹配的Triton Server容器版本
TensorRT 10.0.1对应的Triton Server版本是24.07及以后,替换启动命令中的镜像即可:
docker run --gpus=all -ti --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /home/ubuntu/model_repository:/models nvcr.io/nvidia/tritonserver:24.07-py3 tritonserver --model-repository=/models
方案2:本地安装指定TensorRT 8.6.1版本,适配现有Triton 24.04
如果坚持用Triton 24.04,需要卸载当前的TensorRT 10.0.1,重新安装匹配的8.6.1版本:
- 卸载现有TensorRT:
pip uninstall -y tensorrt
- 安装TensorRT 8.6.1(适配CUDA 12.2):
pip install tensorrt==8.6.1 --index-url https://pypi.nvidia.com
- 重新导出
.plan模型,再用原Triton启动命令即可。
完整环境配置步骤(以方案2为例,版本严格匹配)
1. 确认基础环境
- 验证CUDA 12.2正常:
nvcc --version
- 验证NVIDIA驱动正常运行:
nvidia-smi
2. 安装匹配的TensorRT 8.6.1
- 清理现有TensorRT相关包:
pip uninstall -y tensorrt tensorrt-libs tensorrt-bindings
- 通过NVIDIA官方源安装指定版本:
pip install tensorrt==8.6.1 tensorrt-libs==8.6.1 tensorrt-bindings==8.6.1 --index-url https://pypi.nvidia.com
- 验证安装成功:
python -c "import tensorrt; print(tensorrt.__version__)"
输出应为8.6.1
3. 导出TensorRT .plan模型
- 示例用
trtexec转换ONNX模型到.plan:
trtexec --onnx=your_model.onnx --saveEngine=your_model.plan --explicitBatch
(如果用TensorRT API导出,确保代码调用的是8.6.1版本的库)
4. 配置Triton模型仓库
- 按标准结构创建仓库:
model_repository/ └── your_trt_model/ ├── 1/ │ └── model.plan └── config.pbtxt
config.pbtxt示例(根据自身模型输入输出调整):
name: "your_trt_model" platform: "tensorrt_plan" max_batch_size: 32 input [ { name: "input_0" data_type: TYPE_FP32 dims: [3, 224, 224] } ] output [ { name: "output_0" data_type: TYPE_FP32 dims: [1000] } ]
5. 启动Triton Server并验证
- 启动命令:
docker run --gpus=all -d --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /home/ubuntu/model_repository:/models nvcr.io/nvidia/tritonserver:24.04-py3 tritonserver --model-repository=/models
- 验证服务状态:
curl http://localhost:8000/v2/health/ready
返回OK则服务正常,TensorRT模型可正常加载。
内容的提问来源于stack exchange,提问作者Simone Grassi
相关产品推荐
相关产品推荐

