Triton全方位指南---模型部署入门篇(二)

简介

Triton支持多种类型的模型,包括TensorFlow, PyTorch, ONNX, TensorRT, Python等,在实际部署时我们可能会用到其中的一种或多种模型。而且任何深度学习模型部署框架都需要解决三方面的问题。

  1. 管理多种类型的模型。
  2. 控制模型的版本,加载和卸载。
  3. 配置模型的输入和输出

上面的问题Triton都已提供了相应的解决方案。具体来说,Triton是通过配置文件来管理模型的版本、输入输出、支撑后端等功能。因此在部署前需要做好的两件事是准备好模型文件model.xx和写好配置文件config.pbtxt

模型仓库配置

在上一节中,使用docker参数-v ${PWD}/model_repository:/models映射进来一个文件夹,这个文件夹作为模型仓库,用来存放我们所有的模型和配置。
整个模型仓库的结构应该如下

models
├── test1(模型名称)
│   ├── 1(版本号)
│   │   └── model.py(模型文件)
│   └── config.pbtxt(配置文件)
├── test2(模型名称)
│   ├── 1(版本号)
│   │   └── model.pt(模型文件)
│   ├── 2(版本号)
│   │   └── model.pt(模型文件)
│   └── config.pbtxt(配置文件)

其中模型名称,版本号(不支持小数点.来划分大小版本)和模型后缀名model.xx根据实际情况进行修改。从目录就可以看出,Triton通过模型名称来控制选择的模型,并且通过版本号控制模型版本,对于输入输出和其他功能,都放在了配置文件中。接下来重点介绍,配置文件config.pbtxt的书写。

最小配置文件config.pbtxt

配置文件config.pbtxt中需要指明模型需要的信息。下面用torch后端做个演示样例。更多的信息见官方模型配置指南

name: "test2"
backend: "pytorch"
max_batch_size: 16
input [
{
   
    name: "INPUT_0"
    data_type: TYPE_UINT8
    dims: [ -1 ]
}
]

output [
{
   
    name: "OUTPUT_0"
    data_type: TYPE_FP32
    dims: [ 3, 256, 256 ]
}
]

一个配置文件最少需要设置backend/platformmax_batch_sizeinputoutput属性。

  • name: 可选参数。如果指明了模型名称,则模型名称必须和文件夹名字保持一致,不一样的话会报错。
  • max_batch_size: 可选参数。模型支持最大的batch尺寸,如果不支持batch,应该设置为0。缺省为0(这里虽然说可以不写,但是建议写上)。
  • backend:和platform填其中一个。支持后端的有tensorrt、pytorch、onnxruntime、tensorflow、python、openvino、dali、fil等后端。同时,也可以自定义后端。
  • platform:和backend填其中一个。这个参数的作用是检查模型的类别,例如tensorflow有多种保存格式,GraphDef格式和SavedModel格式,对应的platform为tensorflow_graphdef和tensorflow_savedmodel。
  • input:必填。输入队列,在每个输入中需要指明输入数据的名称name,输入类型data_type和输入尺寸dims
  • output:必填。输出队列,和输入队列一样。

input/output参数详解

  1. name这个参数是对传输的变量进行命名,主要作用是和客户端通信,方便操作。
  2. data_type该参数指定模型接受的数据类型,下表为各类型变量的对应关系。
<
Model Config TensorRT TensorFlow ONNX Runtime PyTorch API NumPy
TYPE_BOOL kBOOL DT_BOOL BOOL kBool BOOL bool
TYPE_UINT8 kUINT8 DT_UINT8 UINT8 kByte UINT8 uint8
TYPE_UINT16 DT_UINT16 UINT16 UINT16 uint16
TYPE_UINT32 DT_UINT32 UINT32 UINT32 uint32
TYPE_UINT64 DT_UINT64 UINT64 UINT64 uint64
TYPE_INT8 kINT8 DT_INT8 INT8 kChar INT8 int8
TYPE_INT16 DT_INT16 INT16 kShort INT16 int16
TYPE_INT32 kINT32 DT_INT32 INT32 kInt INT32 int32
TYPE_INT64 kINT64 DT_INT64 INT64 kLong INT64 int64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值