推理模型仓(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服务器软件,就能开始使用这个模型仓来进行测试与体验,这是下一篇文章会带着大家进行安装的部分。【完】
好文章,需要你的鼓励
英国国家医疗服务(NHS)正将无人机纳入常规医疗物流体系。自今年2月起,无人机每天在雷恩斯公园和圣乔治医院之间运送血液等诊断样本,飞行仅需3分钟,比公路运输快约85%,且碳排放减少高达98%。目前已有逾2000名患者受益。NHS计划将该服务扩展至圣赫利尔、克罗伊登等多家医院,最终惠及约180万名患者。该网络由英国医疗初创公司Apian与谷歌旗下Wing合作运营。
AgentLens是Explyt公司联合俄罗斯学术机构开发的AI编程助手评测基准,通过分析完整人机交互轨迹而非仅看最终结果,从五个维度评估代码智能体的真实表现。
边缘AI计算厂商Aetina宣布,将在其DeviceEdge AIE-KT风冷系列和新款AIE-PT无风扇平台上支持英伟达全新Jetson T3000和T2000模块。T3000基于Blackwell GPU,最高提供865 FP4 TFLOPS算力,功耗70W;T2000则提供400 FP4 TFLOPS,面向视觉AI代理和自主移动机器人等场景。两款模块预计2027年第一季度上市,支持Nemotron、Cosmos 3等英伟达AI软件生态。
韩国梨花女子大学提出Splash框架,通过识别AI模型中的"休眠参数"并只在其中训练触觉能力,让小型多模态AI在学会感知材质触感的同时,完整保留原有视觉语言推理能力。