深度神經(jīng)網(wǎng)絡(luò)在多個(gè)領(lǐng)域的成功促使人們對(duì)如何有效地部署這些模型以用于實(shí)際應(yīng)用進(jìn)行了大量思考和努力。然而,盡管基于樹的模型(包括隨機(jī)森林和梯度增強(qiáng)模型)在表格數(shù)據(jù)分析中 continued dominance 非常重要,而且對(duì)于解釋性非常重要的用例非常重要,但加速部署基于樹的模型(包括隨機(jī)森林和梯度增強(qiáng)模型)的努力卻沒(méi)有受到太多關(guān)注。
隨著 DoorDash 和 CapitalOne 等組織轉(zhuǎn)向基于樹的模型來(lái)分析大量關(guān)鍵任務(wù)數(shù)據(jù),提供工具以幫助部署此類模型變得簡(jiǎn)單、高效和高效變得越來(lái)越重要。
NVIDIA Triton 推理服務(wù)器 提供在 CPU 和 GPU 上部署深度學(xué)習(xí)模型的完整解決方案,支持多種框架和模型執(zhí)行后端,包括 PyTorch 、 TensorFlow 、 ONNX 、 TensorRT 等。從 21.06.1 版開始,為了補(bǔ)充 NVIDIA Triton 推理服務(wù)器現(xiàn)有的深度學(xué)習(xí)功能,新的 林推理庫(kù)( FIL )后端 提供了對(duì)樹模型的支持,例如 XGBoost 、 LightGBM 、 Scikit-Learn RandomForest , RAPIDS 卡米爾森林 ,以及 Treelite 支持的任何其他型號(hào)。
基于 RAPIDS 森林推理庫(kù) (NVIDIA ),NVIDIA Triton 推理服務(wù)器 FIL 后端允許用戶利用 NVIDIA Triton 推理服務(wù)器的相同特性,以達(dá)到 deep learning 模型的最優(yōu)吞吐量/延遲,以在相同的系統(tǒng)上部署基于樹的模型。
在本文中,我們將簡(jiǎn)要介紹NVIDIA Triton 推理服務(wù)器本身,然后深入介紹如何使用 FIL 后端部署 XGBOOST 模型的示例。使用 NVIDIA GPU ,我們將看到,我們不必總是在部署更精確的模型或保持延遲可控之間做出選擇。
在示例筆記本中,通過(guò)利用 FIL 后端的 GPU 加速推理,在一臺(tái)配備八臺(tái) V100 GPU 的 NVIDIA DGX-1 服務(wù)器上,我們將能夠部署比 CPU 更復(fù)雜的欺詐檢測(cè)模型,同時(shí)將 p99 延遲保持在 2ms 以下, still 每秒提供超過(guò) 400K 的推斷( 630MB / s ),或者比 CPU 上的吞吐量高 20 倍。
NVIDIA Triton 推理服務(wù)器
NVIDIA Triton 推理服務(wù)器為 machine learning 模型的實(shí)時(shí)服務(wù)提供了完整的開源解決方案。 NVIDIA Triton 推理服務(wù)器旨在使性能模型部署過(guò)程盡可能簡(jiǎn)單,它為在實(shí)際應(yīng)用中嘗試部署 ML 算法時(shí)遇到的許多最常見問(wèn)題提供了解決方案,包括:
多框架 支持 : 支持所有最常見的深度學(xué)習(xí)框架和序列化格式,包括 PyTorch 、 TensorFlow 、 ONNX 、 TensorRT 、 OpenVINO 等。隨著 FIL 后端的引入, NVIDIA Triton 推理服務(wù)器還提供對(duì) XGBoost 、 LightGBM 、 Scikit Learn / cuML RandomForest 和任何框架中的 Treelite 序列化模型的支持。
Dynamic Batching : 允許用戶指定一個(gè)批處理窗口,并將在該窗口中收到的任何請(qǐng)求整理成更大的批處理,以優(yōu)化吞吐量。
多種查詢類型 :優(yōu)化多種查詢類型的推理:實(shí)時(shí)、批處理、流式,還支持模型集成。
使用 NVIDIA 管道和集合 推理服務(wù)器部署的 管道和集合 Triton 型號(hào)可以通過(guò)復(fù)雜的管道或集成進(jìn)行連接,以避免客戶端和服務(wù)器之間,甚至主機(jī)和設(shè)備之間不必要的數(shù)據(jù)傳輸。
CPU 模型執(zhí)行 : 雖然大多數(shù)用戶希望利用 GPU 執(zhí)行帶來(lái)的巨大性能提升,但 NVIDIA Triton 推理服務(wù)器允許您在 CPU 或 GPU 上運(yùn)行模型,以滿足您的特定部署需求和資源可用性。
Dynamic Batching [VZX337 ]如果NVIDIA Triton 推理服務(wù)器不提供對(duì)部分管道的支持,或者如果需要專門的邏輯將各種模型鏈接在一起,則可以使用自定義 Python 或C++后端精確地添加所需的邏輯。
Run anywhere :在擴(kuò)展的云或數(shù)據(jù)中心、企業(yè)邊緣,甚至在嵌入式設(shè)備上。它支持用于人工智能推理的裸機(jī)和虛擬化環(huán)境(如 VMware vSphere )。
Kubernetes 和 AI 平臺(tái)支持 :
作為 Docker 容器提供,并可輕松與 Kubernetes 平臺(tái)集成,如 AWS EKS 、谷歌 GKE 、 Azure AKS 、阿里巴巴 ACK 、騰訊 TKE 或紅帽 OpenShift 。
可在 Amazon SageMaker 、 Azure ML 、 Google Vertex AI 、阿里巴巴 AI 彈性算法服務(wù)平臺(tái)和騰訊 TI-EMS 等托管 CloudAI 工作流平臺(tái)上使用。
Enterprise support : NVIDIA AI 企業(yè)軟件套件包括對(duì) NVIDIA Triton 推理服務(wù)器的全面支持,例如訪問(wèn) NVIDIA AI 專家以獲得部署和管理指導(dǎo)、安全修復(fù)和維護(hù)發(fā)布的優(yōu)先通知、長(zhǎng)期支持( LTS )選項(xiàng)和指定的支持代理。
圖 1:NVIDIA Triton 推理服務(wù)器架構(gòu)圖。
為了更好地了解如何利用 FIL 后端的這些特性來(lái)部署樹模型,我們來(lái)看一個(gè)特定的用例。
示例: FIL 后端的欺詐檢測(cè)
為了在 NVIDIA Triton 推理服務(wù)器中部署模型,我們需要一個(gè)配置文件,指定有關(guān)部署選項(xiàng)和序列化模型本身的一些細(xì)節(jié)。模型當(dāng)前可以按以下任意格式序列化:
XGBoost 二進(jìn)制格式
XGBoost JSON
LightGBM 文本格式
Treelite 二進(jìn)制檢查點(diǎn)文件
在下面的筆記本中,我們將介紹部署欺詐檢測(cè)模型過(guò)程的每個(gè)步驟,從培訓(xùn)模型到編寫配置文件以及優(yōu)化部署參數(shù)。在此過(guò)程中,我們將演示 GPU 部署如何在保持最小延遲的同時(shí)顯著提高吞吐量。此外,由于 FIL 可以輕松地?cái)U(kuò)展到非常大和復(fù)雜的模型,而不會(huì)大幅增加延遲,因此我們將看到,對(duì)于任何給定的延遲預(yù)算,在 GPU 上部署比 CPU 上更復(fù)雜和準(zhǔn)確的模型是可能的。
筆記本:
抱歉,出了點(diǎn)問(wèn)題。 Reload?
抱歉,我們無(wú)法顯示此文件。
抱歉,此文件無(wú)效,無(wú)法顯示。
查看器需要 iframe 。
view raw正如我們?cè)诒竟P記本中所看到的, NVIDIA Triton 推理服務(wù)器的 FIL 后端允許我們使用序列化的模型文件和簡(jiǎn)單的配置文件輕松地為樹模型提供服務(wù)。如果沒(méi)有 NVIDIA Triton 推理服務(wù)器,那些希望服務(wù)于其他框架中的 XGBoost 、 LightGBM 或隨機(jī)林模型的人通常會(huì)求助于吞吐量延遲性能差且不支持多個(gè)框架的手動(dòng)搖瓶服務(wù)器。 NVIDIA Triton 推理服務(wù)器的動(dòng)態(tài)批處理和并發(fā)模型執(zhí)行自動(dòng)最大化吞吐量,模型分析器有助于選擇最佳部署配置。手動(dòng)選擇可能需要數(shù)百種組合,并且可能會(huì)延遲模型的展開。有了 FIL 后端,我們可以為來(lái)自所有這些框架的模型提供服務(wù),而無(wú)需定制代碼和高度優(yōu)化的性能。
結(jié)論
使用 FIL 后端,NVIDIA Triton 推理服務(wù)器現(xiàn)在提供了一個(gè)高度優(yōu)化的實(shí)時(shí)服務(wù)的森林模型,無(wú)論是在他們自己或旁邊的深度學(xué)習(xí)模型。雖然支持 CPU 和 GPU 執(zhí)行,但我們可以利用 GPU 加速來(lái)保持低延遲和高吞吐量,即使對(duì)于復(fù)雜的模型也是如此。正如我們?cè)谑纠P記本中看到的,這意味著即使延遲預(yù)算很緊,也不需要通過(guò)退回到更簡(jiǎn)單的模型來(lái)降低模型的準(zhǔn)確性。
如果您想嘗試部署自己的 XGBOST 、 LITGBM 、 SKEXCEL 或 CUML 森林模型進(jìn)行實(shí)時(shí)推理,那么您可以很容易地從 Docker container 、NVIDIA 的 GPU 優(yōu)化的 AI 軟件目錄中拉取 NVIDIA NVIDIA AI 企業(yè)套件 推理服務(wù)器 Docker container 。您可以在 FIL 后端文檔 中找到入門所需的一切。如果準(zhǔn)備部署到 Kubernetes 集群, NVIDIA Triton 還提供了 Helm charts 示例。對(duì)于希望在實(shí)際工作負(fù)載下試用 Triton 推理服務(wù)器的企業(yè), NVIDIA LaunchPad 計(jì)劃提供了一組在 Triton 中使用 Triton 的精心策劃的實(shí)驗(yàn)室。
Krieger 說(shuō):“ STAR 的獨(dú)特之處在于,它是第一個(gè)在軟組織中規(guī)劃、調(diào)整和執(zhí)行手術(shù)計(jì)劃的機(jī)器人系統(tǒng),只需極少的人工干預(yù)?!?。
關(guān)于作者
William Hicks 是NVIDIA RAPIDS 團(tuán)隊(duì)的高級(jí)軟件工程師。??怂箵碛胁继m代斯大學(xué)物理學(xué)碩士學(xué)位和布朗大學(xué)文學(xué)藝術(shù)碩士學(xué)位。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4989瀏覽量
103074 -
gpu
+關(guān)注
關(guān)注
28文章
4740瀏覽量
128953 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9165瀏覽量
85436
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論