0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NVIDIA Triton 系列文章(4):創(chuàng)建模型倉

NVIDIA英偉達企業(yè)解決方案 ? 來源:未知 ? 2022-11-15 21:20 ? 次閱讀

推理模型倉(inference model repository)是 Triton 推理服務器的最基礎元件,如同數(shù)據(jù)庫(database)服務器必須先創(chuàng)建一個數(shù)據(jù)庫是類似的道理。要使用 Triton 推理服務器的第一件任務,就是先創(chuàng)建一個模型存儲倉來作為服務器的組織中心,將所需的模型、配置文件和其他資源都位于這個存儲倉中,才能讓 Triton 進行推理任務。


進入https://github.com/triton-inference-server/server/tree/main/docs這個最完整的說明文件區(qū),在“User Guide”里的前 5 個步驟,就是為 Triton 服務器創(chuàng)建與管理模型倉的任務,依序如下:


  • 創(chuàng)建模型儲存?zhèn)}(Creating a Model Repository)

  • 撰寫模型配置文件(Writing a Model Configuration)

  • 創(chuàng)建模型的流水線(Buillding a Model Pipeline)

  • 管理模型可用性(Managing Model Availablity)

  • 收集服務器指標(Collecting Server Metrics)


本文先帶著讀者創(chuàng)建模型存儲倉,這是執(zhí)行 Triton 服務器之前必須執(zhí)行的環(huán)節(jié),另外四個部分會在后續(xù)文章中陸續(xù)探索。


這個儲存?zhèn)}的要求相對簡單,只要是常用的文件系統(tǒng)就行,包括企業(yè)內部使用的 Windows NTFS 或 Linux ext3/4 文件服務器,也可以是 Google 云、亞馬遜云、微軟 Asure 之類的網(wǎng)上儲存空間。


Triton 模型倉是以“目錄結構”為主體的方式搭建,將配套的文件放置對應的位置里就可以,下面是一個簡單的范例:


目錄結構與文件

├──

│ ├── <1>

│ │ └── model.onnx

│ ├── config.pbtxt

│ └── densenet_labels.txt

└──

├── <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的標注文件


這個模型倉主要分為以下兩大部分:


1. 目錄結構:需要創(chuàng)建以下三層目錄,并根據(jù)各層定義進行命名

(1) 第一層“倉名稱”:簡單創(chuàng)建一個文件夾作為模型該模型倉的根路徑,一臺設備上可以有任意個模型倉,例如 model_repo1、model_repo2;

(2) 第二層“模型名稱”:在模型倉下面根據(jù)模型名稱創(chuàng)建目錄,通常習慣使用神經(jīng)網(wǎng)絡名稱_后端種類”的組合格式,例如

  • densenet_onnx 表示為 ONNX 后端的 densenet 網(wǎng)絡模型;

  • inception_graphdef 表示為 TensorFlow graphdef 后端的 inception 模型。

(3) 第三層“版本號”:用純數(shù)字表示,因為相同的模型可能存在不同訓練回合(epoch)、不同精度的多個版本。


2. 文件內容:將以下三種文件內容,分別放置在對應的目錄下

(1)配置文件:放在第二層的模型名稱目錄下,通常命名為 config.pbtxt,每個模型都有各自的配置文件,里面存放著該模型執(zhí)行推理時所需要的信息與參數(shù),是 Triton 模型倉里最重要的部分,主要內容將在后面有專門文章提供詳細說明。

(2)標注文件(如果有):放在第二層的模型名稱目錄下,例如 densenet_labels.txt

(3)模型文件:放在第三層的版本目錄下,就是最終執(zhí)行推理功能的神經(jīng)網(wǎng)絡模型,其附加文件名根據(jù)訓練時所用的框架而定,如下所列

  • TensorRT 模型:附加名為 .plan,例如 model.plan

  • ONNX 模型:附加名為 .onnx,例如 model.onnx

  • TorchScript 模型:附加名為 .pt,例如 model.pt

  • TensorFlow 模型:根據(jù)存儲時的方式有 .graphdef 與 .savedmodel 兩種,例如 model.graphdef 或 model.savedmodel

  • OpenVINO 模型:需要由 .xml 與 .bin 組成,例如 model.xml 與 model.bin

  • Python 模型:附加名為 .py,例如 model.py

  • DALI 模型:附加名為 .dali,例如 model.dali


即便是在云存儲上,也只要根據(jù)上述要求創(chuàng)建目錄結構,并將各類文件放置在對應目錄下,然后啟動 Triton 推理服務器時使用“--model-repostory=”參數(shù),指向模型倉根路徑的位置就可以,例如以下狀況:


# 在本機上
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 服務器啟動時,會將模型倉下的模型載入計算設備的內存之中,并不需要與模型倉所在服務器進行實時數(shù)據(jù)交換,因此啟動之初會消耗比較多時間,開始執(zhí)行推理計算之后是不會受到網(wǎng)絡速度影響推理性能。


為了協(xié)助讀者跟容易理解模型倉的使用,我們以 NVIDIA Jetson AGX Orin 設備作為實驗平臺,先下載https://github.com/triton-inference-server/server開源倉,里面的docs目錄下有個examples/model_repository就是個模型倉范例,里面有 8 個簡單的模型,可以做些簡單的測試與體驗。現(xiàn)在請執(zhí)行以下指令:


cd$HOME&&mkdirtriton&&cdtriton
git clone https://github.com/triton-inference-server/server
cd server/docs/examples
treemodel_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 配置文件,而且內容都不盡相同,這是針對不同模型所設置的內容與參數(shù)。


在下載的模型倉里的 densenet_onnx 與 inception_graphdef 目錄下,并沒有提供對用的模型文件,因此需要執(zhí)行以下指令將這兩個模型文件下載,并存放在指定位置里:


$  ./fetch_models.sh


現(xiàn)在就能看到在 densenet_onnx 與 inception_graphdef 各生成版本 <1> 目錄,并且各有一個 model.onnx 與 model.graphdef 模型文件。


接下去只要安裝好 Triton 服務器軟件,就能開始使用這個模型倉來進行測試與體驗,這是下一篇文章會帶著大家進行安裝的部分。


推薦閱讀

NVIDIA Jetson Nano 2GB 系列文章(1):開箱介紹

NVIDIA Jetson Nano 2GB 系列文章(2):安裝系統(tǒng)

NVIDIA Jetson Nano 2GB 系列文章(3):網(wǎng)絡設置及添加 SWAPFile 虛擬內存

NVIDIA Jetson Nano 2GB 系列文章(4):體驗并行計算性能

NVIDIA Jetson Nano 2GB 系列文章(5):體驗視覺功能庫



NVIDIA Jetson Nano 2GB 系列文章(6):安裝與調用攝像頭


NVIDIA Jetson Nano 2GB 系列文章(7):通過 OpenCV 調用 CSI/USB 攝像頭

NVIDIA Jetson Nano 2GB 系列文章(8):執(zhí)行常見機器視覺應用


NVIDIA Jetson Nano 2GB 系列文章(9):調節(jié) CSI 圖像質量

NVIDIA Jetson Nano 2GB 系列文章(10):顏色空間動態(tài)調節(jié)技巧

NVIDIA Jetson Nano 2GB 系列文章(11):你應該了解的 OpenCV

NVIDIA Jetson Nano 2GB 系列文章(12):人臉定位


NVIDIA Jetson Nano 2GB 系列文章(13):身份識別


NVIDIA Jetson Nano 2GB 系列文章(14):Hello AI World

NVIDIA Jetson Nano 2GB 系列文章(15):Hello AI World 環(huán)境安裝


NVIDIA Jetson Nano 2GB 系列文章(16):10行代碼威力



NVIDIA Jetson Nano 2GB 系列文章(17):更換模型得到不同效果

NVIDIA Jetson Nano 2GB 系列文章(18):Utils 的 videoSource 工具

NVIDIA Jetson Nano 2GB 系列文章(19):Utils 的 videoOutput 工具

NVIDIA Jetson Nano 2GB 系列文章(20):“Hello AI World” 擴充參數(shù)解析功能

NVIDIA Jetson Nano 2GB 系列文章(21):身份識別

NVIDIA Jetson Nano 2GB 系列文章(22):“Hello AI World” 圖像分類代碼

NVIDIA Jetson Nano 2GB 系列文章(23):“Hello AI World 的物件識別應用

NVIDIAJetson Nano 2GB 系列文章(24): “Hello AI World” 的物件識別應用

NVIDIAJetson Nano 2GB 系列文章(25): “Hello AI World” 圖像分類的模型訓練

NVIDIAJetson Nano 2GB 系列文章(26): “Hello AI World” 物件檢測的模型訓練

NVIDIAJetson Nano 2GB 系列文章(27): DeepStream 簡介與啟用

NVIDIAJetson Nano 2GB 系列文章(28): DeepStream 初體驗

NVIDIAJetson Nano 2GB 系列文章(29): DeepStream 目標追蹤功能

NVIDIAJetson Nano 2GB 系列文章(30): DeepStream 攝像頭“實時性能”

NVIDIAJetson Nano 2GB 系列文章(31): DeepStream 多模型組合檢測-1

NVIDIAJetson Nano 2GB 系列文章(32): 架構說明與deepstream-test范例

NVIDIAJetsonNano 2GB 系列文章(33): DeepStream 車牌識別與私密信息遮蓋

NVIDIA Jetson Nano 2GB 系列文章(34): DeepStream 安裝Python開發(fā)環(huán)境

NVIDIAJetson Nano 2GB 系列文章(35): Python版test1實戰(zhàn)說明

NVIDIAJetson Nano 2GB 系列文章(36): 加入USB輸入與RTSP輸出

NVIDIAJetson Nano 2GB 系列文章(37): 多網(wǎng)路模型合成功能

NVIDIAJetson Nano 2GB 系列文章(38): nvdsanalytics視頻分析插件

NVIDIAJetson Nano 2GB 系列文章(39): 結合IoT信息傳輸

NVIDIAJetson Nano 2GB 系列文章(40): Jetbot系統(tǒng)介紹

NVIDIAJetson Nano 2GB 系列文章(41): 軟件環(huán)境安裝

NVIDIAJetson Nano 2GB 系列文章(42): 無線WIFI的安裝與調試

NVIDIAJetson Nano 2GB 系列文章(43): CSI攝像頭安裝與測試

NVIDIAJetson Nano 2GB 系列文章(44): Jetson的40針引腳

NVIDIAJetson Nano 2GB 系列文章(45): I2C總線與PiOLED

NVIDIAJetson Nano 2GB 系列文章(46): 機電控制設備的安裝

NVIDIAJetson Nano 2GB 系列文章(47): 組裝過程的注意細節(jié)

NVIDIAJetson Nano 2GB 系列文章(48): 用鍵盤與搖桿控制行動

NVIDIAJetson Nano 2GB 系列文章(49): 智能避撞之現(xiàn)場演示

NVIDIAJetson Nano 2GB 系列文章(50): 智能避障之模型訓練

NVIDIAJetson Nano 2GB 系列文章(51): 圖像分類法實現(xiàn)找路功能

NVIDIAJetson Nano 2GB 系列文章(52): 圖像分類法實現(xiàn)找路功能

NVIDIAJetson Nano 2GB 系列文章(53): 簡化模型訓練流程的TAO工具套件

NVIDIA Jetson Nano 2GB 系列文章(54):NGC的內容簡介與注冊密鑰

NVIDIA Jetson Nano 2GB 系列文章(55):安裝TAO模型訓練工具

NVIDIA Jetson Nano 2GB 系列文章(56):啟動器CLI指令集與配置文件

NVIDIA Jetson Nano 2GB 系列文章(57):視覺類腳本的環(huán)境配置與映射

NVIDIA Jetson Nano 2GB 系列文章(58):視覺類的數(shù)據(jù)格式

NVIDIA Jetson Nano 2GB 系列文章(59):視覺類的數(shù)據(jù)增強

NVIDIA Jetson Nano 2GB 系列文章(60):圖像分類的模型訓練與修剪

NVIDIA Jetson Nano 2GB 系列文章(61):物件檢測的模型訓練與優(yōu)化

NVIDIA Jetson Nano 2GB 系列文章(62):物件檢測的模型訓練與優(yōu)化-2

NVIDIA Jetson Nano 2GB 系列文章(63):物件檢測的模型訓練與優(yōu)化-3

NVIDIA Jetson Nano 2GB 系列文章(64):將模型部署到Jetson設備

NVIDIA Jetson Nano 2GB 系列文章(65):執(zhí)行部署的 TensorRT 加速引擎

NVIDIA Jetson 系列文章(1):硬件開箱

NVIDIA Jetson 系列文章(2):配置操作系統(tǒng)

NVIDIA Jetson 系列文章(3):安裝開發(fā)環(huán)境

NVIDIA Jetson 系列文章(4):安裝DeepStream

NVIDIA Jetson 系列文章(5):使用Docker容器的入門技巧

NVIDIA Jetson 系列文章(6):使用容器版DeepStream

NVIDIA Jetson 系列文章(7):配置DS容器Python開發(fā)環(huán)境

NVIDIA Jetson 系列文章(8):用DS容器執(zhí)行Python范例

NVIDIA Jetson 系列文章(9):為容器接入USB攝像頭

NVIDIA Jetson 系列文章(10):從頭創(chuàng)建Jetson的容器(1)

NVIDIA Jetson 系列文章(11):從頭創(chuàng)建Jetson的容器(2)

NVIDIA Jetson 系列文章(12):創(chuàng)建各種YOLO-l4t容器

NVIDIA Triton系列文章(1):應用概論

NVIDIA Triton系列文章(2):功能與架構簡介

NVIDIA Triton系列文章(3):開發(fā)資源說明


原文標題:NVIDIA Triton 系列文章(4):創(chuàng)建模型倉

文章出處:【微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 英偉達
    +關注

    關注

    22

    文章

    3900

    瀏覽量

    92846

原文標題:NVIDIA Triton 系列文章(4):創(chuàng)建模型倉

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    英偉達GTC25亮點:NVIDIA Dynamo開源庫加速并擴展AI推理模型

    Triton 推理服務器的后續(xù)產品,NVIDIA Dynamo 是一款全新的 AI 推理服務軟件,旨在為部署推理 AI 模型的 AI 工廠最大化其 token 收益。它協(xié)調并加速數(shù)千個 GPU 之間的推理通信,并使用分離服務將
    的頭像 發(fā)表于 03-20 15:03 ?489次閱讀

    基于RC熱阻SPICE模型的GaNPX?和PDFN封裝的熱特性建模

    GaN Systems提供RC熱阻模型,使客戶能夠使用SPICE進行詳細的熱模擬。 模型基于有限元分析(FEA)熱模擬創(chuàng)建,并已由GaN Systems驗證。 選擇了考爾(Cauer)模型
    的頭像 發(fā)表于 03-11 18:32 ?342次閱讀
    基于RC熱阻SPICE<b class='flag-5'>模型</b>的GaNPX?和PDFN封裝的熱特性<b class='flag-5'>建模</b>

    用Reality AI Tools創(chuàng)建模型

    在第二步采集到的數(shù)據(jù)基礎之上,用Reality AI Tools創(chuàng)建模型。
    的頭像 發(fā)表于 01-22 14:23 ?1946次閱讀
    用Reality AI Tools<b class='flag-5'>創(chuàng)建模型</b>

    NVIDIA推出開放式Llama Nemotron系列模型

    作為 NVIDIA NIM 微服務,開放式 Llama Nemotron 大語言模型和 Cosmos Nemotron 視覺語言模型可在任何加速系統(tǒng)上為 AI 智能體提供強效助力。
    的頭像 發(fā)表于 01-09 11:11 ?523次閱讀

    Triton編譯器的優(yōu)化技巧

    在現(xiàn)代計算環(huán)境中,編譯器的性能對于軟件的運行效率至關重要。Triton 編譯器作為一個先進的編譯器框架,提供了一系列的優(yōu)化技術,以確保生成的代碼既高效又適應不同的硬件架構。 1. 指令選擇
    的頭像 發(fā)表于 12-25 09:09 ?640次閱讀

    Triton編譯器的優(yōu)勢與劣勢分析

    Triton編譯器作為一種新興的深度學習編譯器,具有一系列顯著的優(yōu)勢,同時也存在一些潛在的劣勢。以下是對Triton編譯器優(yōu)勢與劣勢的分析: 優(yōu)勢 高效性能優(yōu)化 : Triton編譯器
    的頭像 發(fā)表于 12-25 09:07 ?859次閱讀

    Triton編譯器在機器學習中的應用

    1. Triton編譯器概述 Triton編譯器是NVIDIA Triton推理服務平臺的一部分,它負責將深度學習模型轉換為優(yōu)化的格式,以便
    的頭像 發(fā)表于 12-24 18:13 ?772次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    Triton 是一個開源的編譯器前端,它支持多種編程語言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一個可擴展和可定制的編譯器框架,允許開發(fā)者添加新的編程語言特性和優(yōu)化技術
    的頭像 發(fā)表于 12-24 17:23 ?1316次閱讀

    NVIDIA助力企業(yè)創(chuàng)建定制AI應用

    NVIDIA 近日宣布與眾多技術領導者一同使用最新NVIDIA NIM Agent Blueprint以及NVIDIA NeMo和NVIDIA NIM微服務,幫助企業(yè)
    的頭像 發(fā)表于 11-20 09:12 ?595次閱讀

    NVIDIA助力提供多樣、靈活的模型選擇

    在本案例中,Dify 以模型中立以及開源生態(tài)的優(yōu)勢,為廣大 AI 創(chuàng)新者提供豐富的模型選擇。其集成的 NVIDIAAPI Catalog、NVIDIA NIM和Triton 推理服務器
    的頭像 發(fā)表于 09-09 09:19 ?767次閱讀

    NVIDIA Nemotron-4 340B模型幫助開發(fā)者生成合成訓練數(shù)據(jù)

    Nemotron-4 340B 是針對 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 優(yōu)化的模型系列,該
    的頭像 發(fā)表于 09-06 14:59 ?534次閱讀
    <b class='flag-5'>NVIDIA</b> Nemotron-<b class='flag-5'>4</b> 340B<b class='flag-5'>模型</b>幫助開發(fā)者生成合成訓練數(shù)據(jù)

    采用OpenUSD和NVIDIA NIM微服務創(chuàng)建精準品牌視覺

    全球領先的創(chuàng)意和制作服務機構率先采用 OpenUSD 和 NVIDIA NIM 微服務來創(chuàng)建精準的品牌視覺。
    的頭像 發(fā)表于 08-01 14:33 ?607次閱讀

    NVIDIA AI Foundry 為全球企業(yè)打造自定義 Llama 3.1 生成式 AI 模型

    借助 NVIDIA AI Foundry,企業(yè)和各國現(xiàn)在能夠使用自有數(shù)據(jù)與 Llama 3.1 405B 和 NVIDIA Nemotron 模型配對,來構建“超級模型
    發(fā)表于 07-24 09:39 ?814次閱讀
    <b class='flag-5'>NVIDIA</b> AI Foundry 為全球企業(yè)打造自定義 Llama 3.1 生成式 AI <b class='flag-5'>模型</b>

    cad如何進行三維建模

    三維建模是計算機輔助設計(CAD)中的一項重要技術,它可以幫助設計師在計算機上創(chuàng)建和編輯三維模型。本文將介紹如何使用CAD軟件進行三維建模,包括建模
    的頭像 發(fā)表于 07-09 10:23 ?1739次閱讀

    arma-garch模型建模步驟

    ARMA-GARCH模型是一種常用于金融市場時間序列數(shù)據(jù)的建模方法,它結合了自回歸移動平均(ARMA)模型和廣義自回歸條件異方差(GARCH)模型的優(yōu)點。以下是ARMA-GARCH
    的頭像 發(fā)表于 07-09 10:20 ?1220次閱讀