精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

NVIDIA Triton 系列文章(11):模型類別與調度器-1

NVIDIA英偉達企業解決方案 ? 來源:未知 ? 2023-01-11 06:35 ? 次閱讀

在 Triton 推理服務器的使用中,模型(model)類別與調度器(scheduler)、批量處理器(batcher)類型的搭配,是整個管理機制中最重要的環節,三者之間根據實際計算資源與使用場景的要求去進行調配,這是整個 Triton 服務器中比較復雜的部分。

在模型類別中有“無狀態(stateless)”“有狀態(stateful)”“集成(ensemble)”三種,調度器方面則有“標準調度器(default scheduler)”“集成調度器(ensemble scheduler)”兩種,而標準調度器下面還有“動態批量處理器(dynamic batcher)”“序列批量處理器(sequence batcher)”兩種批量處理器。

模型類別與調度器/批量處理器之間存在一些關聯性,以下整理出一個簡單的配合表格,提供大家參考:

類別

調度器

批量處理器

使用場景

無狀態

標準調度器

動態批量處理器

面向各自獨立的推理模型

有狀態

標準調度器

序列批量處理器

處理存在交互關系的推理模型組

集成

集成調度器

創建復雜的工作流水線

接下去就要為這幾個管理機制的組合進行說明,由于內容較多并且不均衡,特別是“有狀態模型”與“集成模型”兩部分的使用是相對復雜的,因此這些組合會分為三篇文章來進行較為深入的說明。

1. 無狀態(Stateless)模式:

這是 Triton 默認的模型模式,最主要的要求就是“模型所維護的狀態不跨越推理請求”,也就是不存在與其他推理請求有任何交互關系,大部分處于最末端的獨立推理模型,都適合使用這種模式,例如車牌檢測最末端的將圖像識別成符號的推理、為車輛識別顏色/種類/廠牌的圖像分類等,還有 RNN 以及具有內部內存的類似模型,也可以是無狀態的。

2. 有狀態(Stateful)模式:

很多提供云服務的系統,需要具備同時接受多個推理請求去形成一系列推理的能力,這些推理必須路由到某些特定模型實例中,以便正確更新模型維護的狀態。此外,該模型可能要求推理服務器提供控制信號,例如指示序列的開始和結束。

Triton 服務器提供動態(dynamic)與序列(sequence)兩種批量處理器(batcher),其中序列批量處理器必須用于這種有狀態模式,因為序列中的所有推理請求都被路由到同一個模型實例,以便模型能夠正確地維護狀態。

序列批量處理程序還需要與模型相互傳遞信息,以指示序列的開始、結束、具有可執行推理請求的時間,以及序列的關聯編號(ID)。當對有狀態模型進行推理請求時,客戶端應用程序必須為序列中的所有請求提供相同的關聯編號,并且還必須標記序列的開始和結束。

下面是這種模式的控制行為有“控制輸入”“隱式狀態管理”“調度策略”三個部分,本文后面先說明控制輸入的內容,另外兩個部分在下篇文章內講解。

(1) 控制輸入(control inputs)

為了使有狀態模型能夠與序列批處理程序一起正確運行,模型通常必須接受 Triton 用于與模型通信的一個或多個控制輸入張量。

模型配置的sequence_batching里的control_input部分,指示模型如何公開序列批處理程序應用于這些控件的張量。所有控件都是可選的,下面是模型配置的一部分,顯示了所有可用控制信號的示例配置:

05204e62-9136-11ed-bfe3-dac502259ad0.png

  • 開始(start):

這個輸入張量在配置中使用“CONTROL_SEQUENCE_START”指定,上面配置表明模型有一個名為“START”的輸入張量,其數據類型為 32 位浮點數,序列批量處理程序將在對模型執行推理時定義此張量。

START 輸入張量必須是一維的,大小等于批量大小,張量中的每個元素指示相應批槽中的序列是否開始。上面配置中“fp32_false_true”表示,當張量元素等于 0 時為“false(不開始)”、等于 1 時為“ture(開始)”

  • 結束(End):

結束輸入張量在配置中使用“CONTROL_SEQUENCE_END”指定,上面配置表明模型有一個名為“END”的輸入張量,具有 32 位浮點數據類型,序列批處理程序將在對模型執行推理時定義此張量。

END 輸入張量必須是一維的,大小等于批量大小,張量中的每個元素指示相應批槽中的序列是否開始。上面配置中“fp32_false_true”表示,當張量元素等于 0 時為“false(不結束)”、等于 1 時為“ture(結束)”。

  • 準備就緒(Ready):

就緒輸入張量在配置中使用“CONTROL_SEQUENCE_READY”指定,上面配置表明模型有一個名為“READY”的輸入張量,其數據類型為 32 位浮點數,序列批處理程序將在對模型執行推理時定義此張量。

READY 輸入張量必須是一維的,大小等于批量大小,張量中的每個元素指示相應批槽中的序列是否開始。上面配置中“fp32_false_true”表示,當張量元素等于 0 時為“false(未就緒)”、等于1時為“ture(就緒)”。

  • 關聯編號(Correlation ID):

關聯編號輸入張量在配置中使用“CONTROL_SEQUENCE_CORRID”指定,上面置表明模型有一個名為“CORRID”的輸入張量,其數據類型為無符號 64 位整數,序列批處理程序將在對模型執行推理時定義此張量。

CORRID 張量必須是一維的,大小等于批量大小,張量中的每個元素表示相應批槽中序列的相關編號。

(2) 隱式狀態管理(implicit State Management)

這種方式允許有狀態模型將其狀態存儲在 Triton 服務器中。當使用隱式狀態時,有狀態模型不需要在模型內部存儲推理所需的狀態。不過隱式狀態管理需要后端(backend)支持。目前只有 onnxruntime_backend 和 tensorrt_backend 支持隱式狀態。

下面是模型配置的一部分,在sequence_batching配置中的 state 部分,就是用于指示該模型正在使用隱式狀態:

sequence_batching {
  state  [
    {
       input_name: "INPUT_STATE"
       output_name: "OUTPUT_STATE"
       data_type: TYPE_INT32
      dims:  [ -1 ]
    }
  ]
}

這里做簡單的說明:

  • 字段說明:

  • input_name 字段:指定將包含輸入狀態的輸入張量的名稱;
  • output_name 字段:描述由包含輸出狀態的模型生成的輸出張量的名稱;
  • dims 字段:指定狀態張量的維度。

  • 執行要點:

  • 序列中第 i 個請求中模型提供的輸出狀態,將用作第 i+1 個請求中的輸入狀態;
  • 當 dims 字段包含可變大小的維度時,輸入狀態和輸出狀態的尺度不必匹配;
  • 出于調試目的,客戶端可以請求輸出狀態。為了實現這個目的,模型配置的輸出部分必須將輸出狀態(OUTPUT_STATE)列為模型的一個輸出;
  • 由于需要傳輸額外的張量,從客戶端請求輸出狀態可能會增加請求延遲。

默認情況下,序列中的啟動請求包含輸入狀態的未初始化數據。模型可以使用請求中的開始標志來檢測新序列的開始,并通過在模型輸出中提供初始狀態來初始化模型狀態,如果模型狀態描述中的 dims 部分包含可變尺度,則 Triton 在開始請求時將每個可變尺寸設置為“1”。對于序列中的其他非啟動請求,輸入狀態是序列中前一個請求的輸出狀態。

對于狀態初的初始化部分,有以下兩種狀況需要調整:

  • 啟動請求時:則模型將“OUTPUT_STATE”設置為等于“INPUT”張量;

  • 非啟動請求時:將“OUTPUT_STATE”設為“INPUT”和“INPUT_STATE”張量之和。

除了上面討論的默認狀態初始化之外,Triton 還提供了“從 0 開始”與“從文件導入”兩種初始化狀態的機制。下面提供兩種初始化的配置示例:

052f0830-9136-11ed-bfe3-dac502259ad0.png

兩個配置只有粗體部分不一樣,其余內容都是相同的,提供讀者做個參考。

以上是關于有狀態模型的“控制輸入”與“隱式狀態管理”的使用方式,剩下的“調度策略”部分,會在后文中提供完整的說明。


原文標題:NVIDIA Triton 系列文章(11):模型類別與調度器-1

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


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

    關注

    22

    文章

    3748

    瀏覽量

    90842

原文標題:NVIDIA Triton 系列文章(11):模型類別與調度器-1

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

收藏 人收藏

    評論

    相關推薦

    NVIDIA新增生成式AI就緒系統認證類別

    借助全新的 NVIDIA Spectrum-X Ready 和 NVIDIA IGX 認證,領先的制造業合作伙伴將提供高性能系統,幫助客戶輕松部署 AI。
    的頭像 發表于 10-10 09:44 ?327次閱讀

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

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

    NVIDIA Nemotron-4 340B模型幫助開發者生成合成訓練數據

    Nemotron-4 340B 是針對 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 優化的模型系列,該系列包含最先進
    的頭像 發表于 09-06 14:59 ?266次閱讀
    <b class='flag-5'>NVIDIA</b> Nemotron-4 340B<b class='flag-5'>模型</b>幫助開發者生成合成訓練數據

    英偉達推出全新NVIDIA AI Foundry服務和NVIDIA NIM推理微服務

    NVIDIA 宣布推出全新 NVIDIA AI Foundry 服務和 NVIDIA NIM 推理微服務,與同樣剛推出的 Llama 3.1 系列開源
    的頭像 發表于 07-25 09:48 ?673次閱讀

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

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

    NVIDIA與Google DeepMind合作推動大語言模型創新

    支持 NVIDIA NIM 推理微服務的谷歌最新開源模型 PaliGemma 首次亮相。
    的頭像 發表于 05-16 09:44 ?423次閱讀

    NVIDIA加速微軟最新的Phi-3 Mini開源語言模型

    NVIDIA 宣布使用 NVIDIA TensorRT-LLM 加速微軟最新的 Phi-3 Mini 開源語言模型。TensorRT-LLM 是一個開源庫,用于優化從 PC 到云端的 NVID
    的頭像 發表于 04-28 10:36 ?490次閱讀

    使用NVIDIA Triton推理服務來加速AI預測

    這家云計算巨頭的計算機視覺和數據科學服務使用 NVIDIA Triton 推理服務來加速 AI 預測。
    的頭像 發表于 02-29 14:04 ?547次閱讀

    在AMD GPU上如何安裝和配置triton

    最近在整理python-based的benchmark代碼,反過來在NV的GPU上又把Triton裝了一遍,發現Triton的github repo已經給出了對應的llvm的commit id以及對應的編譯細節,然后跟著走了一遍,也順利的安裝成功,只需要按照如下方式即可完
    的頭像 發表于 02-22 17:04 ?2231次閱讀
    在AMD GPU上如何安裝和配置<b class='flag-5'>triton</b>?

    【BBuf的CUDA筆記】OpenAI Triton入門筆記一

    這里來看官方的介紹:https://openai.com/research/triton ,從官方的介紹中我們可以看到OpenAI Triton的產生動機以及它的目標是什么,還可以看到一些經典算法的實現例子展示。
    的頭像 發表于 01-23 10:00 ?2478次閱讀
    【BBuf的CUDA筆記】OpenAI <b class='flag-5'>Triton</b>入門筆記一

    利用NVIDIA產品技術組合提升用戶體驗

    本案例通過利用NVIDIA TensorRT-LLM加速指令識別深度學習模型,并借助NVIDIA Triton推理服務
    的頭像 發表于 01-17 09:30 ?656次閱讀

    不要錯過!NVIDIA “大模型沒那么泛!”主題活動

    2024 新年首發! NVIDIA模型系列活動 將于 2024 年 1 月 正式啟動,由 NVIDIA 和業界專家攜手分享大
    的頭像 發表于 12-20 19:35 ?631次閱讀
    不要錯過!<b class='flag-5'>NVIDIA</b> “大<b class='flag-5'>模型</b>沒那么泛!”主題活動

    什么是Triton-shared?Triton-shared的安裝和使用

    經過前面幾章關于triton在nv gpu上調優的講解,我們這章開始來看看triton的一個third_party庫,該庫是為了讓triton去支持更多其他的backend。該項目的地址如下所示
    的頭像 發表于 12-19 09:47 ?1118次閱讀
    什么是<b class='flag-5'>Triton</b>-shared?<b class='flag-5'>Triton</b>-shared的安裝和使用

    Triton編譯的原理和性能

    Triton是一種用于編寫高效自定義深度學習原語的語言和編譯Triton的目的是提供一個開源環境,以比CUDA更高的生產力編寫快速代碼,但也比其他現有DSL具有更大的靈活性。Triton
    的頭像 發表于 12-16 11:22 ?2762次閱讀
    <b class='flag-5'>Triton</b>編譯<b class='flag-5'>器</b>的原理和性能

    NVIDIA 為部分大型亞馬遜 Titan 基礎模型提供訓練支持

    本文將介紹亞馬遜如何使用 NVIDIA NeMo 框架、GPU 以及亞馬遜云科技的 EFA 來訓練其 最大的新一代大語言模型(LLM)。 大語言模型的一切都很龐大——巨型模型是在數千顆
    的頭像 發表于 11-29 21:15 ?514次閱讀
    <b class='flag-5'>NVIDIA</b> 為部分大型亞馬遜 Titan 基礎<b class='flag-5'>模型</b>提供訓練支持