推理模型仓(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服务器软件,就能开始使用这个模型仓来进行测试与体验,这是下一篇文章会带着大家进行安装的部分。【完】
好文章,需要你的鼓励
Queen's大学研究团队提出结构化智能体软件工程框架SASE,重新定义人机协作模式。该框架将程序员角色从代码编写者转变为AI团队指挥者,建立双向咨询机制和标准化文档系统,解决AI编程中的质量控制难题,为软件工程向智能化协作时代转型提供系统性解决方案。
苹果在iOS 26公开发布两周后推出首个修复更新iOS 26.0.1,建议所有用户安装。由于重大版本发布通常伴随漏洞,许多用户此前选择安装iOS 18.7。尽管iOS 26经过数月测试,但更大用户基数能发现更多问题。新版本与iPhone 17等新机型同期发布,测试范围此前受限。预计苹果将继续发布后续修复版本。
西北工业大学与中山大学合作开发了首个超声专用AI视觉语言模型EchoVLM,通过收集15家医院20万病例和147万超声图像,采用专家混合架构,实现了比通用AI模型准确率提升10分以上的突破。该系统能自动生成超声报告、进行诊断分析和回答专业问题,为医生提供智能辅助,推动医疗AI向专业化发展。