推理模型仓(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服务器软件,就能开始使用这个模型仓来进行测试与体验,这是下一篇文章会带着大家进行安装的部分。【完】
好文章,需要你的鼓励
微软推出 Copilot+ PC 标准,要求配备高性能 NPU,引发 AI PC 市场格局变化。英伟达虽在数据中心 AI 领域占主导,但在 PC 端面临挑战。文章分析了英伟达的 AI PC 策略、NPU 与 GPU 的竞争关系,以及未来 GPU 可能在 Copilot+ 功能中发挥作用的前景。
专家预测,随着人工智能技术的迅速发展和广泛应用,2025 年可能成为 AI 泡沫破裂的关键一年。尽管 AI 仍有望在多模态模型和自动机器学习等领域取得突破,但技术瓶颈、投资回报率下降、监管趋严以及环境和伦理问题等因素可能导致 AI 热潮降温。未来 AI 发展将更注重平衡和可持续性。
Google 推出名为 Titans 的新型 AI 架构,是 Transformer 的直接进化版。Titans 引入了神经长期记忆、短期记忆和基于惊喜的学习系统,使 AI 更接近人类思维方式。这一突破性技术有望彻底改变 AI 范式,推动机器智能向人类认知迈进一大步。
主动型 AI 是人工智能的下一次进化,它不仅能生成内容,还能自主决策和追求目标。这种 AI 可以设定自己的目标,制定策略并根据情况调整方法,实现真正的自主性。它将彻底改变机器与世界的互动方式,为人机协作开启新的可能性,但也带来了透明度和伦理等挑战。