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