推理模型仓(inference model repository)是Triton推理服务器的最基础元件,如同数据库(database)服务器必须先创建一个数据库是类似的道理。要使用Triton推理服务器的第一件任务,就是先创建一个模型存储仓来作为服务器的组织中心,将所需的模型、配置文件和其他资源都位于这个存储仓中,才能让Triton进行推理任务。
进入https://github.com/triton-inference-server/server/tree/main/docs这个最完整的说明文件区,在“User Guide”里的前5个步骤,就是为Triton服务器创建与管理模型仓的任务,依序如下:
本文先带着读者创建模型存储仓,这是执行Triton服务器之前必须执行的环节,另外四个部分会在后续文章中陆续探索。
这个储存仓的要求相对简单,只要是常用的文件系统就行,包括企业内部使用的Windows NTFS或Linux ext3/4文件服务器,也可以是Google云、亚马逊云、微软Asure之类的网上储存空间。
Triton模型仓是以“目录结构”为主体的方式搭建,将配套的文件放置对应的位置里就可以,下面是一个简单的范例:
|
目录结构与文件 |
用途说明 |
|
<model_repo1> ├── <densenet_onnx> │ ├── <1> │ │ └── model.onnx │ ├── config.pbtxt │ └── densenet_labels.txt └── <inception_graphdef> ├── <1> │ └── model.graphdef ├── <2> │ └── model.graphdef ├── config.pbtxt └── inception_labels.txt |
根目录:仓名称 目录:模型densenet_onnx 目录:模型densenet_onnx的版本1 文件:模型densenet_onnx版本1的模型文件 文件:模型densenet_onnx的配置文件 文件:模型densenet_onnx的标注文件 目录:模型inception_graphdef 目录:模型inception_graphdef版本1 文件:模型inception_graphdef版本1的模型文件 目录:模型inception_graphdef版本2 文件:模型inception_graphdef版本2的模型文件 文件:模型inception_graphdef的配置文件 文件:模型inception_graphdef的标注文件 |
这个模型仓主要分为以下两大部分:
即便是在云存储上,也只要根据上述要求创建目录结构,并将各类文件放置在对应目录下,然后启动Triton推理服务器时使用“--model-repostory=”参数,指向模型仓根路径的位置就可以,例如以下状况:
|
$
$
$
$ |
# 在本机上 tritonserver --model-repository=/home/nvidia/triton/repo1 # 在Google云 tritonserver --model-repository=gs://bucket/triton/repo-google # 在亚马逊S3云 tritonserver --model-repository=s3://IP:端口/triton/repo-amazone # 微软Azure云 tritonserver --model-repository=as://用户名/容器名/repo-azure |
Triton服务器启动时,会将模型仓下的模型载入计算设备的内存之中,并不需要与模型仓所在服务器进行实时数据交换,因此启动之初会消耗比较多时间,开始执行推理计算之后是不会受到网络速度影响推理性能。
为了协助读者跟容易理解模型仓的使用,我们以NVIDIA Jetson AGX Orin设备作为实验平台,先下载https://github.com/triton-inference-server/server开源仓,里面的docs目录下有个examples/model_repository就是个模型仓范例,里面有8个简单的模型,可以做些简单的测试与体验。现在请执行以下指令:
|
$ $ $ $ |
cd $HOME && mkdir triton && cd triton git clone https://github.com/triton-inference-server/server cd server/docs/examples tree model_repository |
就会看到如下面左方的列表,共有8个模型文件夹:
|
目录结构与文件 |
用途说明 |
|
model_repository/ ├── densenet_onnx │ ├── config.pbtxt │ └── densenet_labels.txt ├── inception_graphdef │ ├── config.pbtxt │ └── inception_labels.txt ├── simple │ ├── 1 │ │ └── model.graphdef │ └── config.pbtxt ├── simple_dyna_sequence │ ├── 1 │ │ └── model.graphdef │ └── config.pbtxt 《中间省略》 └── simple_string ├── 1 │ └── model.graphdef └── config.pbtxt |
根目录:仓名称为model_repository 目录:模型densenet_onnx 文件:模型densenet_onnx的配置文件 文件:模型densenet_onnx的标注文件 目录:模型inception_graphdef 文件:模型inception_graphdef的配置文件 文件:模型inception_graphdef的标注文件 目录:模型simple 目录:模型simple的版本1 文件:模型simple的模型文件 文件:模型simple的配置文件 目录:模型simple_dyna_sequence 目录:模型simple_dyna_sequence的版本1 文件:模型simple_dyna_sequence的模型文件 文件:模型simple_dyna_sequence的配置文件 《中间省略》 目录:模型simple_string 目录:模型simple_string的版本1 文件:模型simple_string的模型文件 文件:模型simple_string的配置文件 |
我们可以看到每个文件夹里面都有1个独立的config.pbtxt配置文件,而且内容都不尽相同,这是针对不同模型所设置的内容与参数。
在下载的模型仓里的densenet_onnx与inception_graphdef目录下,并没有提供对用的模型文件,因此需要执行以下指令将这两个模型文件下载,并存放在指定位置里:
|
$ |
./fetch_models.sh |
现在就能看到在densenet_onnx与inception_graphdef各生成版本<1>目录,并且各有一个model.onnx与model.graphdef模型文件。
接下去只要安装好Triton服务器软件,就能开始使用这个模型仓来进行测试与体验,这是下一篇文章会带着大家进行安装的部分。【完】
好文章,需要你的鼓励
Google Health 5.0作为Fitbit应用的更新版本正式推出。在安卓端,新版本引入了主屏幕快捷访问小组件,取代原有的圆形步数小组件,可显示最多六项健康指标,支持自定义缩放。点击小组件可跳转至完整统计页面,左上角心形图标可快速打开应用,右侧可直达Health Coach功能。此次更新还启用了全新Google Health图标,移除Fitbit品牌标识。安卓版已于5月19日开始推送,5月26日前全面覆盖。
中科院团队发现顶级AI在几何作图上成功率不到6%,推出PAGER系统将精度提升4.1倍,揭示AI能力评估的关键盲点。
奥迪宣布将推出入门级纯电动车型A2 e-tron,旨在降低豪华电动车的拥有门槛。该车型基于大众最新MEB平台打造,预计提供50kWh、58kWh和79kWh三种电池选项,续航最高可达630公里。目前原型车正在瑞典北部极寒环境及巴伐利亚道路进行测试,重点验证热管理与电池性能。新车预计售价约4万美元,将于今年秋季正式亮相。
浙江大学等机构提出Flash-GRPO视频AI训练新方法,通过同时段分组和梯度校正两项创新技术,实现训练速度提升6倍且质量更优。