本節討論了 Triton 提供的一些開箱即用的關鍵新特性、工具和服務,可應用于生產中的模型部署、運行和擴展。
使用新管理服務建立業務流程模型
Triton 為高效的多模型推理帶來了一種新的模型編排服務。該軟件應用程序目前處于早期使用階段,有助于以資源高效的方式簡化 Kubernetes 中 Triton 實例的部署,其中包含許多模型。此服務的一些關鍵功能包括:
按需加載模型,不使用時卸載模型。
盡可能在單個 GPU 服務器上放置多個模型,從而有效地分配 GPU 資源
管理單個模型和模型組的自定義資源需求
大型語言模型推理
在自然語言處理( NLP )領域,模型的規模呈指數級增長(圖 1 )。具有數千億個參數的大型 transformer-based models 可以解決許多 NLP 任務,例如文本摘要、代碼生成、翻譯或 PR 標題和廣告生成。
圖 1.NLP 模型規模不斷擴大
但這些型號太大了,無法安裝在單個 GPU 中。例如,具有 17.2B 參數的圖靈 NLG 需要至少 34 GB 內存來存儲 FP16 中的權重和偏差,而具有 175B 參數的 GPT-3 需要至少 350 GB 內存。要使用它們進行推理,您需要多 GPU 和越來越多的多節點執行來為模型服務。
Triton 推理服務器有一個稱為 Faster transformer 的后端,它為大型 transformer 模型(如 GPT 、 T5 等)帶來了多 GPU 多節點推理。大型語言模型通過優化和分布式推理功能轉換為更快的 transformer 格式,然后使用 Triton 推理服務器跨 GPU 和節點運行。
圖 2 顯示了使用 Triton 在 CPU 或一個和兩個 A100 GPU 上運行 GPT-J ( 6B )模型時觀察到的加速。
圖 2.Faster transformer 后端的模型加速
基于樹的模型推斷
Triton 可用于在 CPU 和 GPU 上部署和運行 XGBoost 、 LightGBM 和 scikit learn RandomForest 等框架中基于樹的模型,并使用 SHAP 值進行解釋。它使用去年推出的 Forest Inference Library ( FIL )后端實現了這一點。
使用 Triton 進行基于樹的模型推理的優點是在機器學習和深度學習模型之間的推理具有更好的性能和標準化。它特別適用于實時應用程序,如欺詐檢測,其中可以輕松使用較大的模型以獲得更好的準確性。
使用模型分析器優化模型配置
高效的推理服務需要為參數選擇最佳值,例如批大小、模型并發性或給定目標處理器的精度。這些值指示吞吐量、延遲和內存需求。在每個參數的值范圍內手動嘗試數百種組合可能需要數周時間。
Triton 模型分析器工具將找到最佳配置參數所需的時間從幾周減少到幾天甚至幾小時。它通過對給定的目標處理器脫機運行數百個具有不同批大小值和模型并發性的推理模擬來實現這一點。最后,它提供了如圖 3 所示的圖表,可以方便地選擇最佳部署配置。
圖 3.模型分析器工具的輸出圖表
使用業務邏輯腳本為管道建模
圖 4.模型集成與業務邏輯腳本
使用 Triton ?聲波風廓線儀的模型集成功能,您可以構建復雜的模型管道和集成,其中包含多個模型以及預處理和后處理步驟。業務邏輯腳本使您能夠在管道中添加條件、循環和步驟的重新排序。
使用 Python 或 C ++后端,您可以定義一個自定義腳本,該腳本可以根據您選擇的條件調用 Triton 提供的任何其他模型。 Triton 有效地將數據傳遞到新調用的模型,盡可能避免不必要的內存復制。然后將結果傳遞回自定義腳本,您可以從中繼續進一步處理或返回結果。
圖 4 顯示了兩個業務邏輯腳本示例:
Conditional execution 通過避免執行不必要的模型,幫助您更有效地使用資源。
Autoregressive models 與 transformer 解碼一樣,要求模型的輸出反復反饋到自身,直到達到某個條件。業務邏輯腳本中的循環使您能夠實現這一點。
自動生成模型配置
Triton 可以自動為您的模型生成配置文件,以加快部署速度。對于 TensorRT 、 TensorFlow 和 ONNX 模型,當 Triton 在存儲庫中未檢測到配置文件時,會生成運行模型所需的最低配置設置。
Triton 還可以檢測您的模型是否支持批推理。它將max_batch_size設置為可配置的默認值。
您還可以在自己的自定義 Python 和 C ++后端中包含命令,以便根據腳本內容自動生成模型配置文件。當您有許多模型需要服務時,這些特性特別有用,因為它避免了手動創建配置文件的步驟。
解耦輸入處理
圖 5.通過解耦輸入處理實現的一個請求到多個響應場景
雖然許多推理設置需要推理請求和響應之間的一對一對應,但這并不總是最佳數據流。
例如,對于 ASR 模型,發送完整的音頻并等待模型完成執行可能不會帶來良好的用戶體驗。等待時間可能很長。相反, Triton 可以將轉錄的文本以多個短塊的形式發送回來(圖 5 ),從而減少了第一次響應的延遲和時間。
通過 C ++或 Python 后端的解耦模型處理,您可以為單個請求發送多個響應。當然,您也可以做相反的事情:分塊發送多個小請求,然后返回一個大響應。此功能在如何處理和發送推理響應方面提供了靈活性。
開始可擴展 AI 模型部署
您可以使用 Triton 部署、運行和縮放 AI 模型,以有效緩解您在多個框架、多樣化基礎設施、大型語言模型、優化模型配置等方面可能面臨的 AI 推理挑戰。
Triton 推理服務器是開源的,支持所有主要模型框架,如 TensorFlow 、 PyTorch 、 TensorRT 、 XGBoost 、 ONNX 、 OpenVINO 、 Python ,甚至支持 GPU 和 CPU 系統上的自定義框架。探索將 Triton 與任何應用程序、部署工具和平臺、云端、本地和邊緣集成的更多方法。
關于作者
Shankar Chandrasekaran 是 NVIDIA 數據中心 GPU 團隊的高級產品營銷經理。他負責 GPU 軟件基礎架構營銷,以幫助 IT 和 DevOps 輕松采用 GPU 并將其無縫集成到其基礎架構中。在 NVIDIA 之前,他曾在小型和大型科技公司擔任工程、運營和營銷職位。他擁有商業和工程學位。
Neal Vaidya 是 NVIDIA 深度學習軟件的技術營銷工程師。他負責開發和展示以開發人員為中心的關于深度學習框架和推理解決方案的內容。他擁有杜克大學統計學學士學位。
審核編輯:郭婷
-
gpu
+關注
關注
28文章
4911瀏覽量
130661 -
服務器
+關注
關注
13文章
9689瀏覽量
87287 -
深度學習
+關注
關注
73文章
5554瀏覽量
122482
發布評論請先 登錄
Cognizant將與NVIDIA合作部署神經人工智能平臺,加速企業人工智能應用

評論