大部分要學習 Triton 推理服務器的入門者,都會被搜索引擎或網(wǎng)上文章引導至官方的https://developer.nvidia.com/nvidia-triton-inference-server處(如下截圖),然后從 “Get Started” 直接安裝服務器與用戶端軟件、創(chuàng)建基礎(chǔ)的模型倉、執(zhí)行一些最基本的范例。
這條路徑雖然能在很短時間內(nèi)跑起 Triton 的應用,但在未掌握整個應用架構(gòu)之前便貿(mào)然執(zhí)行,反倒容易讓初學者陷入迷失的狀態(tài),因此建議初學者最好先對 Triton 項目有比較更完整的了解之后,再執(zhí)行前面的 “Get Started” 就會更容易掌握項目的精髓。
要獲得比較完整的 Triton 技術(shù)資料,就得到項目開源倉里去尋找。與 NVIDIA 其他放在 https://github.com/NVIDIA或https://github.com/NVIDIA-AI-IOT的項目不同,Triton 項目有獨立的開源倉,位置在https://github.com/triton-inference-server,進入開源倉后會看到如下截屏的內(nèi)容:
下面列出四大部分的技術(shù)資源:
1. Getting Start(新手上路):
這里提供三個鏈接,比較重要的是 “Quick Start(快速啟動)” 的部分,提供以下三個步驟就能輕松執(zhí)行 Triton 的基礎(chǔ)示范:
(1) Create a Model Repository(創(chuàng)建模型倉)
(2) Launch Triton(啟動Triton服務器與用戶端)
(3) Send an Inference Request(提交推理要求)
2. Production Documentation(生產(chǎn)文件):
這里最重要的是 “server documents on GitHub” 鏈接,點進去后會進入整個 Triton 項目中最完整的技術(shù)文件中心(如下圖),除 Installation 與 Getting Started 屬于入門范疇,其余 User Guide、API Guide、Additional Resources 與 Customization Guide 等四個部分,都是 Triton 推理服務器非常重要的技術(shù)內(nèi)容。
因此這個部分可以算得上是學習 Triton 服務器的最重要資源。
例如點擊 “User Guide” 之后,就會看到以下所條例的執(zhí)行步驟:
Creating a Model Repository
Writing a Model Configuration
Buillding a Model Pipeline
Managing Model Availablity
Collecting Server Metrics
Supporting Custom Ops/layers
Using the Client API
Analyzing Performance
Deploying on edge (Jetson)
3. Examples(范例):
這里的范例,比較重要的是指向https://github.com/NVIDIA/DeepLearningExamples鏈接,列出針對 NVIDIA Tensor Core 計算單元的深度學習模型列表,包括計算機視覺、NLP 自然語言處理、推薦系統(tǒng)、語音轉(zhuǎn)文字 / 文字轉(zhuǎn)語音、圖形神經(jīng)網(wǎng)絡(luò)、時間序列等各種神經(jīng)網(wǎng)絡(luò)模型細節(jié),包括網(wǎng)絡(luò)結(jié)構(gòu)與相關(guān)參數(shù)的內(nèi)容。
對于未來要在 Triton 服務器上,對于所使用的網(wǎng)絡(luò)后端進行性能優(yōu)化或者創(chuàng)建新的后端,會有很大的助益,但是對于初學者來說是相對艱澀的,因此現(xiàn)階段先不做深入的說明與示范。
4. Feedback(反饋):
這里會鏈接到https://github.com/triton-inference-server/server/issues問題中心,是 Triton 項目中最重要的技術(shù)問題解決資源之一,后面執(zhí)行過程中所遇到的問題,都可以先到這里來查看是否有人已經(jīng)提出?如果沒有的話,也可以在這里提交自己所遇到的問題,項目負責人會提供合適的回復。
以上第 2、4 兩項資源,對初學者來說會有最大的幫助。接著看一下項目里 “釘住(Pinned)” 的 6 個倉(如下圖),是比較重要的基礎(chǔ)部分,涵蓋了 Triton 架構(gòu)圖中的主要板塊。
主要內(nèi)容如下:
1. server 倉:
這里集成整個項目的主要內(nèi)容,包括幾部分:
(1)deploy(部署):提供在阿里巴巴、亞馬遜等云資源的部署方式,以及基于 NVIDIA Fleet 指令集、GKE(Google kubernets Engine)、k8s、Helm 等應用平臺的各種部署方法;
(2)docker(容器):修正一些創(chuàng)建容器腳本的錯誤;
(3)docs(使用說明):就是前面 “生產(chǎn)文件(Production Documentation)” 的內(nèi)容,這里不重復贅述;
(4)qa(質(zhì)量優(yōu)化):由于 Triton 推理服務器有非常多優(yōu)化的環(huán)節(jié),在這個目錄下提供上百個不同狀況的優(yōu)化測試腳本;
(5)src(源代碼):目錄下存放整個 Triton 推理服務器的開源代碼(.cc)、頭文件(.h)與編譯腳本(CMakeLists.txt);
(6)其他代碼與腳本
2. core 倉:
此存儲庫包含實現(xiàn) Triton 核心功能的庫的源代碼和標頭。核心庫可以如下所述構(gòu)建,并通過其 CAPI 直接使用。為了有用,核心庫必須與一個或多個后端配對。您可以在后端回購中了解有關(guān)后端的更多信息。
3. backend 倉:
提供創(chuàng)建 Triton 服務器后端(backend)的源代碼、腳本與工具?!昂蠖恕?是用來執(zhí)行不同深度學習模型的管理模塊,以深度學習框架進行封裝,例如 PyTorch、Tensorflow、ONNX Runtime 與 TensorRT 等等,用戶也可以為了性能目的,自行定義 C / C++ 封裝方式。
4. client 倉:
提供 Triton 用戶端的 C++ / Python / Java 開發(fā)接口、能生成適用于不同編程語言的 GRPC 開發(fā)接口的 protoc 編譯器,以及對應的用戶端范例;
5. model_analyzer 倉:
深度學習模型(model)是 Triton 推理服務器的最基礎(chǔ)組成元件,因此對分析模型的計算與內(nèi)存需求是服務器性能的一項關(guān)鍵功能。這個 model_analyzer 模型分析工具是一種 CLI 工具,這款新工具可以自動化地從數(shù)百種組合中為 AI 模型選擇最佳配置,以實現(xiàn)最優(yōu)性能,同時確保應用程序所需的服務質(zhì)量,能幫助開發(fā)人員更好地了解不同配置中的權(quán)衡,并選擇能夠最大化 Triton 的性能配置;
6. model_navigator 倉:
這個 model_navigator 模型導航器是一種能夠自動將模型從源移動到最佳格式和配置的工具,支持將模型從源導出為所有可能的格式,并應用 Triton 服務器的后端優(yōu)化。使用模型分析器能找到最佳的模型配置,匹配提供的約束條件并優(yōu)化性能。
以上是 Triton 開源項目里比較核心的 6 個倉,另外還有 20 多個代碼倉,其中大約 15 個是項目提供的后端(backend)擴充應用,例如 tensorrt_backend、fil_backend、square_backend 等等,以及一些額外的管理工具,并且不斷增加中。
本系列后面的內(nèi)容都會基于這個 server 倉的 docs 目錄下的內(nèi)容為主,按部就班地帶著讀者循序漸進創(chuàng)建與調(diào)試 Triton 推理服務器的運作環(huán)境。
審核編輯 :李倩
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4855瀏覽量
102711 -
服務器
+關(guān)注
關(guān)注
12文章
8958瀏覽量
85082
原文標題:NVIDIA Triton 系列文章(3):開發(fā)資源說明
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論