人工智能機器學習( ML )和深度學習( DL )正在成為解決機器人、零售、醫療保健、工業等領域各種計算問題的有效工具。對低延遲、實時響應和隱私的需求使運行 AI 應用程序處于邊緣。
然而,在邊緣的應用程序和服務中部署 AI 模型對基礎設施和運營團隊來說可能是一項挑戰。不同的框架、端到端延遲要求以及缺乏標準化實施等因素可能會使 AI 部署具有挑戰性。在這篇文章中,我們將探討如何應對這些挑戰,并在邊緣生產中部署 AI 模型。
以下是部署推理模型的最常見挑戰:
多模型框架:數據科學家和研究人員使用不同的人工智能和深度學習框架,如 TensorFlow 、 PyTorch 、 TensorRT 、 ONNX 運行時或純 Python 來構建模型。這些框架中的每一個都需要一個執行后端來在生產環境中運行模型。同時管理多個框架后端可能成本高昂,并導致可伸縮性和維護問題。
不同的推理查詢類型:邊緣推理服務需要處理多個同時查詢、不同類型的查詢,如實時在線預測、流式數據和多個模型的復雜管道。每一項都需要特殊的推理處理。
不斷發展的模型:在這個不斷變化的世界中,人工智能模型不斷地根據新數據和新算法進行重新訓練和更新。生產中的型號必須在不重新啟動設備的情況下持續更新。典型的 AI 應用程序使用許多不同的模型。它使問題的規模進一步擴大,以更新現場的模型。
NVIDIA Triton 推理服務器是一款開源推理服務軟件,通過解決這些復雜性簡化了推理服務。 NVIDIA Triton 提供了一個單一的標準化推理平臺,可支持在多框架模型和不同部署環境(如數據中心、云、嵌入式設備、,以及虛擬化環境。它通過高級批處理和調度算法支持不同類型的推理查詢,并支持實時模型更新。 NVIDIA Triton 還旨在通過并發模型執行和動態批處理最大限度地提高硬件利用率,從而提高推理性能。
我們用 2021 年 8 月發布的 Jetson JetPack 4.6 將 Triton 推理服務器引入 Jetson 。有了 NVIDIA Triton , AI 部署現在可以跨云、數據中心和邊緣標準化。
主要特征
以下是 NVIDIA Triton 的一些關鍵功能,它們可以幫助您簡化 Jetson 中的模型部署。
圖 1 Jetson Jetson 上的 Triton 推理服務器架構
嵌入式應用集成
客戶機應用程序和 Triton 推理服務器之間的通信支持直接 C-API 集成,但也支持 gRPC 和 HTTP / REST 。在 Jetson 上,當客戶端應用程序和推理服務都在同一設備上運行時,客戶端應用程序可以直接調用 Triton 推理服務器 API ,而通信開銷為零。 NVIDIA Triton 是一個帶有 C API 的共享庫,可使完整功能直接包含在應用程序中。這最適合基于 Jetson 的嵌入式應用程序。
多框架支持
NVIDIA Triton 在本機集成了流行的框架后端,如 TensorFlow 1 。 x / 2 。 x 、 ONNX 運行時 TensorRT ,甚至自定義后端。這允許開發人員直接在 Jetson 上運行他們的模型,而無需經過轉換過程。 NVIDIA Triton 還支持添加自定義后端的靈活性。開發人員有自己的選擇,基礎設施團隊使用單個推理引擎優化部署。
DLA 支持
Jetson 上的 Triton 推理服務器可以在 GPU 和 DLA 上運行模型。 DLA 是 Jetson Xavier NX 和 Jetson AGX Xavier 上提供的深度學習加速器。
并發模型執行
Triton 推理服務器通過在 Jetson 上同時運行多個模型,最大限度地提高性能并減少端到端延遲。這些模型可以是所有相同的模型,也可以是來自不同框架的不同模型。 GPU 內存大小是對可同時運行的型號數量的唯一限制。
動態配料
批處理是一種提高推理吞吐量的技術。批處理推理請求有兩種方法:客戶端批處理和服務器批處理。 NVIDIA Triton 通過將單個推理請求組合在一起來實現服務器批處理,以提高推理吞吐量。它是動態的,因為它構建一個批處理,直到達到一個可配置的延遲閾值。當達到閾值時, NVIDIA Triton 安排當前批執行。調度和批處理決策對請求推斷的客戶機是透明的,并且根據模型進行配置。通過動態批處理, NVIDIA Triton 在滿足嚴格延遲要求的同時最大限度地提高吞吐量。
動態批處理的一個例子是,應用程序同時運行檢測和分類模型,其中分類模型的輸入是從檢測模型檢測到的對象。在這種情況下,由于可以對任意數量的檢測進行分類,因此動態批處理可以確??梢詣討B創建檢測對象的批,并且可以將分類作為批處理請求運行,從而減少總體延遲并提高應用程序的性能。
模型組合
模型集成功能用于創建不同模型和預處理或后處理操作的管道,以處理各種工作負載。 NVIDIA Triton 集成允許用戶將多個模型和預處理或后處理操作縫合到一個具有連接輸入和輸出的管道中。 NVIDIA Triton 只需從客戶端應用程序向集成發出一個推斷請求,即可輕松管理整個管道的執行。例如,嘗試對車輛進行分類的應用程序可以使用 NVIDIA Triton 模型集成來運行車輛檢測模型,然后在檢測到的車輛上運行車輛分類模型。
定制后端
除了流行的 AI 后端, NVIDIA Triton 還支持執行定制的 C ++后端。這些工具對于創建特殊的邏輯非常有用,比如預處理和后處理,甚至是常規模型。
動態模型加載
NVIDIA Triton 有一個模型控制 API ,可用于動態加載和卸載模型。這使設備能夠在應用程序需要時使用這些型號。此外,當模型使用新數據重新訓練時,它可以無縫地重新部署在 NVIDIA Triton 上,而不會重新啟動任何應用程序或中斷服務,從而允許實時模型更新。
結論
Triton 推理服務器作為 Jetson 的共享庫發布。 NVIDIA Triton 每月發布一次,增加了新功能并支持最新的框架后端。有關更多信息,請參閱 Triton 推理服務器對 Jetson 和 JetPack 的支持。
NVIDIA Triton 有助于在每個數據中心、云和嵌入式設備中實現標準化的可擴展生產 AI 。它支持多個框架,在 GPU 和 DLA 等多個計算引擎上運行模型,處理不同類型的推理查詢。通過與 NVIDIA JetPack 的集成, NVIDIA Triton 可用于嵌入式應用。
關于作者
Shankar Chandrasekaran 是 NVIDIA 數據中心 GPU 團隊的高級產品營銷經理。他負責 GPU 軟件基礎架構營銷,以幫助 IT 和 DevOps 輕松采用 GPU 并將其無縫集成到其基礎架構中。在 NVIDIA 之前,他曾在小型和大型科技公司擔任工程、運營和營銷職位。他擁有商業和工程學位。
Suhas Sheshadri 是 NVIDIA 的產品經理,專注于 Jetson 軟件。此前,他曾在 NVIDIA 與自主駕駛團隊合作,為 NVIDIA 驅動平臺優化系統軟件。Mahan Salehi 是 NVIDIA 的深度學習軟件產品經理,專注于 Triton 推理服務器。在 NVIDIA 之前,他是一家人工智能初創公司的聯合創始人兼首席執行官,此前也曾在醫療器械行業工作。他擁有多倫多大學的工程學學位。
審核編輯:郭婷
-
NVIDIA
+關注
關注
14文章
5076瀏覽量
103725 -
數據中心
+關注
關注
16文章
4859瀏覽量
72382 -
深度學習
+關注
關注
73文章
5515瀏覽量
121553
發布評論請先 登錄
相關推薦
評論