Triton全方位指南---从安装到上线(一)安装部署

部署运行你感兴趣的模型镜像

简介:

NVIDIA开源的商用级别的后端算法服务框架
Triton Inference Server是一款开源的推理服务框架,它的核心库基于C++编写的,旨在在生产环境中提供快速且可扩展的AI推理能力,具有以下优势

  • 支持多种深度学习框架:包括PyTorch,Tensorflow,TensorRT,ONNX,OpenVINO等产出的模型文件
  • 至此多种机器学习框架:支持对树模型的部署,包括XGBoost,LightGBM等
  • 支持多种协议:支持HTTP,GRPC协议
  • 服务端支持模型前后处理:提供后端API,支持将数据的前处理和模型推理的后处理在服务端实现
  • 支持模型并发推理:支持多个模型或者同一模型的多个实例在同一系统上并行执行
  • 支持动态批处理(Dynamic batching):支持将一个或多个推理请求合并成一个批次,以最大化吞吐量
  • 支持多模型的集成流水线:支持将多个模型进行连接组合,将其视作一个整体进行调度管理
  • 支持模型热加载:可以通过API查看所有运行中模型的状态,还可以通过API不影响其他模型的情况下卸载和装载模型。
    在这里插入图片描述

环境部署流程

1、检查版本对应,驱动要求

在安装一切环境之前,一定要先清楚所需的环境的版本要求,包括显卡和CUDA的对应,系统的版本,python的版本等等。triton各版本驱动要求信息和包含库信息
[图片]

2、安装docker拉取镜像:

直接从官方拉取Triton省去了很多麻烦,轻松便捷,因此本文基于这种方式。如果之后需要自定义后端或者开发新的功能,可以深入了解下手动编译的方式。
下面是Ubuntu的安装示例,其他示例可见docker官方安装教程

更新apt-get

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

apt下载安装docker-ce 和插件

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证docker 是否安装

sudo docker run hello-world

2、安装NGC

NGC全称NVIDIA GPU Cloud,包含一系列用于深度学习、机器学习、可视化和高性能计算 (HPC) 应用的 GPU 优化容器,这些容器均已经过了性能、安全性和可扩展性测试。
需要根据NGC官方安装指导 安装NGC。下面是AMD64架构安装示例,其他示例请参照官方教程

下载并解压ngccli

wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/versions/3.55.0/files/ngccli_linux.zip -O ngccli_linux.zip && unzip ngccli_linux.zip

检查md5和sha256 文件hash是否正确

find ngc-cli/ -type f -exec md5sum {} + | LC_ALL=C sort | md5sum -c ngc-cli.md5
sha256sum ngccli_linux.zip

输出应该和官方提供的hash一致,这里的例子为73a53f829b106f7886d555e7fd1200306370f3afcc77f349e11fea13460b748a

配置环境变量

chmod u+x ngc-cli/ngc
echo "export PATH=\"\$PATH:$(pwd)/ngc-cli\"" >> ~/.bash_profile && source ~/.bash_profile

设置API key

输入

ngc config set

当出现Enter API Key字样的时候切换回NGC页面,点击右上角个人头像的下拉菜单(如果没有NGC账号可以注册一个),然后点击Set up按钮,应该看到如下的界面
[图片]

再点击Get API Key按钮来生成临时NGC API Key
进入后点击右上角Genereate API Key按钮生成你的API Key,然后将最下方的API Key复制下来。
复制好后返回到Bash Shell粘贴API Key后回车。
之后NGC CLI会询问你将以哪种格式输出输出信息,NGC CLI提供了三种方式,个人喜欢json格式,以json格式进行输出,显示的信息也是最全的。
之后NGC CLI会提示输入组织、用户等信息,根据提示输入默认信息后回车即可。

配置好后,我们在Bash中输入如下指令

ngc user who

当看到statusCodeSUCCESS后,就证明我们的NGC配置成功了。

登录NGC

使用

docker login nvcr.io

命令登录,此时回车会提示你输入用户名和密码,这个还是之前生成API Key页面所生成的用户名和密码。
[图片]

这里用户名输入:$oauthtoken即可,密码则是刚才我们在NGC生成的API Key,点击回车,当docker cli显示Login Sucessed的字样后,我们便可以顺利访问NGC上的镜像列表了。

下载镜像

浏览器切回到NGC网页,点击左侧catlog下来菜单->containers按钮,进入到NGC镜像列表,在搜索框搜索Triton Inference Server,点击进入,再点击Tags标签选择对应版本的镜像下载。
[图片]

[图片]

例如这里演示的是r23.10版本。版本-py3。其他的是不同环境或版本的镜像,详情可见Overview

docker pull nvcr.io/nvidia/tritonserver:23.10-py3

3、安装nvidia container toolkit

安装完镜像后还必须安装nvidia container toolkit,用于连接docker容器和显卡。不然运行容器指定显卡时会报错,识别不到显卡。nvidia container toolkit官方安装指南

配置仓库

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

更新apt-get和安装

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

4、运行镜像和后端服务

运行容器

示例

docker run -ti --gpus=1 --net=host -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:23.10-py3

运行容器的时候需要指定好gpu,--gpus=1表示使用1号显卡,如果使用所有显卡使用allnet网络模式我这里指定为host模式,容器共享宿主机的网络命名空间。-v ${PWD}/model_repository:/models表示映射宿主机的一个文件夹${PWD}/model_repository到容器内,在容器内的路径为/models。这样的话只需要在宿主机内上传新的模型,容器内同时就可以访问到。

配置环境

接下来需要为你的模型或者python backend安装所需的包。如果python backend中需要opencv、torchvision、torch等库,直接使用pip install ***进行安装。如果需要conda,或者不同版本的python可参考官方文档
很棒,如果你能成功到这里说明你已经把前期工作准备充分了,接下来才是重头戏。

参考文献

入门教程
【高可用AI推理服务】使用WSL2部署Triton Inference Server推理服务器
AI模型部署:Triton Inference Server模型部署框架简介和快速实践
Triton模型部署流程(stey by stey)
Triton 概念指南(Part 1):如何部署模型推理服务

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值