当前位置:   article > 正文

模型部署架构,以Triton Inference Server(TensorRT)为例

triton inference server

本文概念存在偏差,混淆了几个概念
有点误人子弟,多谢评论区提醒
我花点时间再学些后再重新更新本文。打扰了

模型部署架构Triton Inference Server(TensorRT)

模型训练只是DeepLearning的一小部分,如《Hidden Technical Debt in Machine Learning Systems》NIPS2015机器学习系统的技术债
书中所说。

现有几种搭建框架

Python:TF+Flask+Funicorn+Nginx
FrameWork:TF serving,TorchServe,ONNX Runtime
Intel:OpenVINO,NVNN,QNNPACK(FB的)
NVIDIA:TensorRT Inference Server(Triton),DeepStream

主要说现阶段比较主流的

TensorRT
硬件T4的GPU(也可嵌入端等NVIDIA设备)
软件TensorRT (Triton)2020年TensorRT改名为Triton

在这里插入图片描述

T4上,相对CPU ResNet-50jiasu 快27倍
在这里插入图片描述

输入可以是TF,MXNet,Pytorch等

主要优化技术

  1. 混合精度
  2. 图优化,层融合
  3. 动态显存管理
  4. 多种输入同时执行(多输入合在一起,多模型并发等)

图优化部分:
垂直层融合,水平也层融合,近乎减少一半显存和计算(V100GPU)
VGG Net从43层融合到27层
V100上测试比普通Tensorflow快几十倍,ResNet50控制在7ms
在这里插入图片描述

Triton Inference Server

最大化GPU运行时间
单GPU多模型
可异构加入别的框架
可以Docker等环境
开源,可定制化

主要功能

  1. 密集输入时自动合成batch,平衡延迟latency和吞吐量。自动并发小模型(不会有多进程交流的困难)

  2. 支持CPU推理,可集成OpenVINO等其他异构

  3. 原生支持多种模型,可以原生TF+Pytorch模型同时来

  4. 内存共享,库版本管理机制。
    model-ensemble多个模型串联,模型A输出给模型B输入的优化

Triton推断服务结构

通过Http返回json,内部gRPC等调用方式
(自动合并batch输入即动态分批,多卡自动分配任务,多种后端,热更新模型,收集运行信息,支持Python、C++,等。。。)
在这里插入图片描述

模型控制与配置
platform
input
output
vresion_policy
等,格式和protobuf类似
配置文件控制模型model-ensemble的pipeline

缺:推出比较晚,文档,生态还在完善中

后记

看完这些,希望你已经没有想看源码的冲动了。
如果是这样的话,不妨点个赞吧。

为何要点赞?

如果本文解决了你的困惑,不妨点个赞鼓励一下。
不管你信不信,也不管你同不同意,实际上,你的每一次点赞都标志着你自身的进步。而打赏乃是点赞的高级形式
曾经有无数个点赞的机会,但是我都没有好好珍惜,假如时光可以倒流,我一定为他们也为自己点赞。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/351811
推荐阅读
相关标签
  

闽ICP备14008679号