[Triton课程笔记] 1.2.2 编程实战-如何编写模型配置
一、最小模型配置

必要参数:
platform/backend: 用于指定后端,大部分情况二选一,特殊情况需要特殊对待,见后面。
max_batch_size: 指定最大batch。
input、output: 输入输出Tensor的名字和信息。
注意,对于Tensorrt,TensorFlow save-model,onnx模型,config.pbtxt不是必须的,只要启动指定 --strict-model-config=false
二、platform和backend的异同
对于Tensorrt、onnxrt、pytorch,这两种参数二选一即可。
对于TensorFlow必须指定platform,backend可选。
对于openvino,python,dali,只能使用backend。
对于Custom,21.05版本之前,可以通过platform参数设置为custom表示;之后必须通过backend字段进行指定,值为你的custom backend library的名字。
三、max_batch_size&input&output

情况1:
max_batch_size为一个大于0的常数,Input和output指定名字,数据类型,数据形状。
注意:dims在指定的时候忽略batch_size的维度。
情况2:
max_batch_size等于0。表示模型的输入和输出是不包括batch_size那个维度的。
这个时候维度信息就是真实的维度信息。
情况3:
pytorch特殊情况,torchscript模型不保存输入输出的名字,因此对输入输出名称有特殊规定,"字符串__数字"。
支持可变shape,设置为-1。
情况4:
reshape参数:对输入输出进行reshape。
四、模型版本管理——version_policy

version_policy参数,策略:
- all:加载所有版本的模型。
- latest:加载最新的模型(可多个,版本号越大越新)
- specific:指定特定的版本。
五、Instance Groups

对应triton的并行计算能力特性,这个参数主要用来配置在指定设备上运行多个实例,提高模型服务能力,增加吞吐。
Instance Groups配置跑在同样设备上的一组模型实例。
- count:同时开启的模型数量。
- kind:指定设备类型。
- gpus:指定GPU编号,如果不指定这个参数,triton会在每个GPU上跑相应数量的instance。
可配置多组。
六、Scheduling And Batching
Scheduling:指定调度策略来应对请求。
6.1 Default Scheduler

- 不做batching;
- 输入进来是多少就按照多少去推理;
6.2 Dynamic Batcher

- 在服务端将多少个batch_size比较小的input_tensor合并为一个batch_size比较大的input_tensor;
- 提高吞吐率的关键手段;
- 只适合无状态模型;
子参数:
- preferr_batch_size: 期望达到的batch_size是多少,多个值;
- max_queue_delay_microseconds: 打成batch的时间限制,微秒;
高级子参数:
- preserver_ordering: 请求进来的顺序和响应出去的顺序保持一致;
- priority_levels: 定义不同优先级请求处理顺序;
- Queue_Policy: 设置请求等待队列行为;
6.3 Sequence Batcher

- 专门用于stateful model的一种调度器;
- 确保同一序列的推理请求能够路由到同样的模型实例上推理;
6.4 Ensemble Scheduler
- 组合不同的模块,形成pipeline;
- 后面详细介绍。
七、Optimization Policy

- Onnx模型优化——TRT backend for ONNX;
- TensorFlow模型优化——TF-TRT;
八、Model Warmup

指定模型热身的参数:
- 初始化可能延迟,直到收到前面几个推理请求;
- 热身完成后,Triton的服务才是Ready状态;
- 模型加载会变长;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)