
- 確認(rèn)請(qǐng)求中的“IMAGE”張量映射到預(yù)處理模型中的輸入“RAW_IMAGE”。
- 檢查集合中的模型,并向預(yù)處理模型發(fā)送內(nèi)部請(qǐng)求,因?yàn)樗璧乃休斎霃埩慷家丫途w。
- 識(shí)別內(nèi)部請(qǐng)求的完成,收集輸出張量并將內(nèi)容映射到“預(yù)處理圖像”,這是集成中已知的唯一名稱。
- 將新收集的張量映射到集合中模型的輸入。在這種情況下,“classification_model”和“segmentation_model”的輸入將被映射并標(biāo)記為就緒。
- 檢查需要新收集的張量的模型,并向輸入就緒的模型發(fā)送內(nèi)部請(qǐng)求,在本例中是分類模型和分割模型。請(qǐng)注意,響應(yīng)將根據(jù)各個(gè)模型的負(fù)載和計(jì)算時(shí)間以任意順序排列。
- 重復(fù)步驟 3-5,直到不再發(fā)送內(nèi)部請(qǐng)求,然后用集成輸出名稱的張量去響應(yīng)推理請(qǐng)求。
- 使用 image_prepoecess_model 模型,將原始圖像處理成preprocessed_image 數(shù)據(jù);
- 將 preprocessed_image 數(shù)據(jù)傳遞給 classification_model 模型,執(zhí)行圖像分類推理,最終返回“CLASSIFICATION”結(jié)果;
- 將 preprocessed_image 數(shù)據(jù)傳遞給 segmentation_model 模型,執(zhí)行語(yǔ)義分割推理計(jì)算,最終返回“SEGMENTATION”結(jié)果;
- 支持一個(gè)或多個(gè)模型的流水線以及這些模型之間輸入和輸出張量的連接;
- 處理多個(gè)模型的模型拼接或數(shù)據(jù)流,例如“數(shù)據(jù)處理->推理->數(shù)據(jù)后處理”等;
- 收集每個(gè)步驟中的輸出張量,并根據(jù)規(guī)范將其作為其他步驟的輸入張量;
- 所集成的模型能繼承所涉及模型的特征,在請(qǐng)求方的元數(shù)據(jù)必須符合集成中的模型;
- 在模型倉(cāng)里為流水線創(chuàng)建一個(gè)新的“組合模型”文件夾,例如為“ensemble_model”;
- 在目路下創(chuàng)建新的 config.pbtxt,并且使用“platform: "ensemble"”來定義這個(gè)模型要執(zhí)行集成功能;
- 定義集成模型:
name:"ensemble_model"
platform: "ensemble"
max_batch_size: 1
input [
{
name: "IMAGE"
data_type: TYPE_STRING
dims: [ 1 ]
}
]
output [
{
name: "CLASSIFICATION"
data_type: TYPE_FP32
dims: [ 1000 ]
},
{
name: "SEGMENTATION"
data_type: TYPE_FP32
dims: [ 3, 224, 224 ]
}
]
從這個(gè)內(nèi)容中可以看出,Triton 服務(wù)器將這個(gè)集成模型視為一個(gè)獨(dú)立模型。
4. 定義模型的集成調(diào)度器:這部分使用“ensemble_scheduling”來調(diào)動(dòng)集成調(diào)度器,將使用到模型與數(shù)據(jù)形成完整的交互關(guān)系。
在上面示例圖中,灰色區(qū)塊所形成的工作流水線中,使用到 image_prepoecess_model、classification_model、segmentation_model 三個(gè)模型,以及 preprocessed_image 數(shù)據(jù)在模型中進(jìn)行傳遞。
下面提供這部分的范例配置內(nèi)容,一開始使用“ensemble_scheduling”來調(diào)用集成調(diào)度器,里面再用“step”來定義模組之間的執(zhí)行關(guān)系,透過模型的“input_map”與“output_map”的“key:value”對(duì)的方式,串聯(lián)起模型之間的交互動(dòng)作:
ensemble_scheduling{
step [
{
model_name: "image_preprocess_model"
model_version: -1
input_map {
key: "RAW_IMAGE"
value: "IMAGE"
}
output_map {
key: "PREPROCESSED_OUTPUT"
value: "preprocessed_image"
}
},
{
model_name: "classification_model"
model_version: -1
input_map {
key: "FORMATTED_IMAGE"
value: "preprocessed_image"
}
output_map {
key: "CLASSIFICATION_OUTPUT"
value: "CLASSIFICATION"
}
},
{
model_name: "segmentation_model"
model_version: -1
input_map {
key: "FORMATTED_IMAGE"
value: "preprocessed_image"
}
output_map {
key: "SEGMENTATION_OUTPUT"
value: "SEGMENTATION"
}
}
]
}
這里簡(jiǎn)單說明一下工作流程:
(1) 模型 image_preprocess_model 接收外部輸入的 IMAGE 數(shù)據(jù),進(jìn)行圖像預(yù)處理任務(wù),輸出 preprocessed_image 數(shù)據(jù);(2) 模型 classification_model 的輸入為 preprocessed_image,表示這個(gè)模型的工作是在 image_preprocess_model 之后的任務(wù),執(zhí)行的推理輸出為 CLASSIFICATION;(3) 模型 segmentation_model 的輸入為 preprocessed_image,表示這個(gè)模型的工作是在 image_preprocess_model 之后的任務(wù),執(zhí)行的退輸出為 SEGMENTATION;(4) 上面兩步驟可以看出 classification_model 與 segmentation_model 屬于分支的同級(jí)模型,與上面工作流圖中的要求一致。
完成以上的步驟,就能用集成模型與集成調(diào)度器的搭配,來創(chuàng)建一個(gè)完整的推理工作流任務(wù),相當(dāng)簡(jiǎn)單。
不過這類集成模型中,還有以下幾個(gè)需要注意的重點(diǎn):
- 這是 Triton 服務(wù)器用來執(zhí)行用戶定義模型流水線的抽象形式,由于沒有與集成模型關(guān)聯(lián)的物理實(shí)例,因此不能為其指定 instance_group 字段;
- 不過集成模型內(nèi)容所組成的個(gè)別模型(例如image_preprocess_model),可以在其配置文件中指定 instance_group,并在集成接收到多個(gè)請(qǐng)求時(shí)單獨(dú)支持并行執(zhí)行。
- 由于集成模型將繼承所涉及模型的特性,因此在請(qǐng)求起點(diǎn)的元數(shù)據(jù)(本例為“IMAGE”)必須符合集成中的模型,如果其中一個(gè)模型是有狀態(tài)模型,那么集成模型的推理請(qǐng)求應(yīng)該包含有狀態(tài)模型中提到的信息,這些信息將由調(diào)度器提供給有狀態(tài)模型。
原文標(biāo)題:NVIDIA Triton 系列文章(13):模型與調(diào)度器-3
文章出處:【微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
英偉達(dá)
+關(guān)注
關(guān)注
22文章
3922瀏覽量
93135
原文標(biāo)題:NVIDIA Triton 系列文章(13):模型與調(diào)度器-3
文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
NVIDIA RTX 5880 Ada與Qwen3系列模型實(shí)測(cè)報(bào)告

英偉達(dá)GTC25亮點(diǎn):NVIDIA Dynamo開源庫(kù)加速并擴(kuò)展AI推理模型
NVIDIA推出開放式Llama Nemotron系列模型
Triton編譯器與GPU編程的結(jié)合應(yīng)用
Triton編譯器如何提升編程效率
Triton編譯器的優(yōu)化技巧
Triton編譯器的優(yōu)勢(shì)與劣勢(shì)分析
Triton編譯器在機(jī)器學(xué)習(xí)中的應(yīng)用
Triton編譯器的常見問題解決方案
Triton編譯器支持的編程語(yǔ)言
Triton編譯器與其他編譯器的比較
Triton編譯器功能介紹 Triton編譯器使用教程
NVIDIA助力提供多樣、靈活的模型選擇
NVIDIA Nemotron-4 340B模型幫助開發(fā)者生成合成訓(xùn)練數(shù)據(jù)

評(píng)論