nvdia triton server运行pt文件

23 篇文章 0 订阅
16 篇文章 0 订阅
triton server默认都是tensorrt推理。

但也会出现有操作不支持,导致无法转模型为engine的情况。

可以选择直接运行pytorch的pt文件,以下为操作步骤。

1.pytorch后端环境编译步骤

原理是使用 pytorch C++ API运行pt文件模型。

安装依赖项

apt-get install patchelf rapidjson-dev python3-dev

构建NGC 的 PyTorch 容器。

例如,构建一个使用 NGC 21.02 版本的 PyTorch 容器的后端,步骤如下:

git clone https://github.com/triton-inference-server/pytorch_backend.git
git checkout r21.02
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/install -DTRITON_PYTORCH_DOCKER_IMAGE="nvcr.io/nvidia/pytorch:21.02-py3" ..
make install

以下所需的 Triton 存储库将被拉取并在构建中使用。

默认情况下,每个git分支的标签都是main。

但以下CMake 参数可以被重新设置。

  • triton-inference-server/backend: -DTRITON_BACKEND_REPO_TAG=[tag]

  • triton-inference-server/core: -DTRITON_CORE_REPO_TAG=[tag]

  • triton-inference-server/common: -DTRITON_COMMON_REPO_TAG=[tag]

这里如果报错cmake版本过低,则

apt remove cmake
pip install cmake --upgrade

编译完成后会在build文件夹里产生很多库文件,这些库文件将在后续被使用

参考自pytorch后端配置文档

2.使用编译后的共享库

通常情况放在triton镜像的这里

/opt/
tritonserver/
backends/
mybackend/
libtriton_mybackend.so
... # mybackend需要的其他文件

关于后端配置详细可以去看后端配置官方文档

3.pytorch模型仓库

此时环境准备完成,准备模型仓库即可。

最简的TorchScript模型仓库如下:

  <模型仓库路径>/
    <模型名>/
      config.pbtxt 配置文件
      1/
        model.pt pt文件

model.pt需要由pth文件生成,示例如下

import torch
from unet import UNet
​
# 读取模型
# model = UNet(n_channels=3, n_classes=1, bilinear=True)
# device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
# model = model.to(device)
# model.load_state_dict(torch.load("checkpoints/best_0.8774614781141281.pth", map_location=device))
#
# model = model.eval()
​
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = torch.load("checkpoints/best_0.8774614781141281.pth", map_location=device)
model.to(device)
model.eval()
​
# 创建输入tensor
dummy_input = torch.ones(1, 3, 360, 640).to(device)
# 生成pt
trace_model = torch.jit.trace(model, dummy_input)
trace_model.save('checkpoints/model.pt')

最简单的config.pbtxt示例如下:

  platform: "pytorch_libtorch"
  max_batch_size: 1
  input [
    {
      name: "INPUT__0"
      data_type: TYPE_FP32
      dims: [ 3, 360, 640]
    }
  ]
  output [
    {
      name: "OUTPUT__0"
      data_type: TYPE_FP32
      dims: [ 3, 360, 640 ]
    }
  ]

必须指定 backend或platformmax_batch_sizeinput与output

详细配置可以去看 模型配置官方文档

4.triton加载模型

post请求 服务器ip:8000/v2/repository/models/模型名/load

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Triton Server是一个用于部署机器学习模型的开源平台,支持多种框架(如TensorFlow、PyTorch、ONNX等)和多种部署方式(如RESTful API、gRPC等)。以下是Triton Server的安装和使用教程: 1. 安装NVIDIA CUDA和cuDNN Triton Server依赖于NVIDIA CUDA和cuDNN,因此需要先安装它们。具体安装步骤可参考官方文档:https://docs.nvidia.com/cuda/index.html 和 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html 。 2. 下载Triton Server 可以从Triton Server的GitHub仓库下载最新版本:https://github.com/triton-inference-server/server 。 3. 安装Triton Server Triton Server的安装非常简单,只需解压缩下载的压缩包即可。 ``` $ tar xzf tritonserver-2.6.0-linux-x86_64.tar.gz ``` 4. 配置模型 Triton Server通过配置文件来加载和部署模型。可以参考官方文档中的模型配置示例(https://github.com/triton-inference-server/server/tree/main/docs/examples/model_repository )来创建自己的配置文件。配置文件将指定模型的路径、输入和输出张量的名称和形状、部署方式等信息。 5. 启动Triton Server 启动Triton Server非常简单,只需运行以下命令即可: ``` $ ./tritonserver-2.6.0/bin/tritonserver --model-repository=/path/to/model/repository ``` 其中,--model-repository参数指定了存放模型的目录。 6. 使用Triton Server 启动Triton Server后,可以通过RESTful API或gRPC接口来部署和查询模型。具体使用方法可参考官方文档:https://github.com/triton-inference-server/server 。 希望这些步骤能够帮助您安装和使用Triton Server

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值