RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NVIDIA Triton推理服務(wù)器的功能與架構(gòu)簡(jiǎn)介

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來(lái)源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 作者:NVIDIA英偉達(dá)企業(yè)解 ? 2022-11-02 10:44 ? 次閱讀

前面文章介紹微軟 Teams 會(huì)議系統(tǒng)、微信軟件與騰訊 PCG 服務(wù)三個(gè) Triton 推理服務(wù)器的成功案例,讓大家對(duì) Triton 有初步的認(rèn)知,但別誤以為這個(gè)軟件只適合在大型的服務(wù)類應(yīng)用中使用,事實(shí)上 Triton 能適用于更廣泛的推理環(huán)節(jié)中,并且在越復(fù)雜的應(yīng)用環(huán)境中就越能展現(xiàn)其執(zhí)行成效。

在說(shuō)明 Triton 推理服務(wù)器的架構(gòu)與功能之前,我們需要先了解一個(gè)推理服務(wù)器所需要面對(duì)并解決的問(wèn)題。

與大部分的服務(wù)器軟件所需要的基本功能類似,一個(gè)推理服務(wù)器也得接受來(lái)自不同用戶端所提出的各種要求(request)然后做出回應(yīng)(response),并且對(duì)系統(tǒng)的處理進(jìn)行性能優(yōu)化與穩(wěn)定性管理。

但是推理計(jì)算需要面對(duì)深度學(xué)習(xí)領(lǐng)域的各式各樣推理模型,包括圖像分類、物件檢測(cè)、語(yǔ)義分析、語(yǔ)音識(shí)別等不同應(yīng)用類別,每種類別還有不同神經(jīng)網(wǎng)絡(luò)算法與不同框架所訓(xùn)練出來(lái)的模型格式等。此外,我們不能對(duì)任務(wù)進(jìn)行單純的串行隊(duì)列(queue)方式處理,這會(huì)使得任務(wù)等待時(shí)間拖得很長(zhǎng),影響使用的體驗(yàn)感,因此必須對(duì)任務(wù)進(jìn)行并行化處理,這里就存在非常復(fù)雜的任務(wù)管理技巧。

下面列出一個(gè)推理服務(wù)器所需要面對(duì)的技術(shù)問(wèn)題:

1.支持多種模型格式:至少需要支持普及度最高的

2.TensorFlow 的 GraphDef 與 SavedMode 中一種以上格式

(1) PyTorch 的 TorchScript 格式

(2) ONNX 開放標(biāo)準(zhǔn)格式

(3) 其他:包括自定義模型格式

3.支持多種查詢類型,包括

(1) 在線的實(shí)時(shí)查詢:盡量降低查詢的延遲(latency)時(shí)間

(2) 離線的批量處理:盡量提高查詢的通量(throughput)

(3) 流水線傳輸?shù)淖R(shí)別號(hào)管理等工作

4.支持多種部署方式:包括

(1) 企業(yè)的 GPUCPU 計(jì)算設(shè)備

(2) 公共云或數(shù)據(jù)中心

5.對(duì)模型進(jìn)行最佳縮放處理:讓個(gè)別模型提供更好的性能

6.優(yōu)化多個(gè) KPI:包括

(1) 硬件利用率

(2) 模型推理識(shí)別時(shí)間

(3) 總體成本(TCO)

7.提高系統(tǒng)穩(wěn)定性:需監(jiān)控模型狀態(tài)并解決問(wèn)題以防止停機(jī)

在了解推理服務(wù)器所需要解決的關(guān)鍵問(wèn)題之后,接著來(lái)看看下方的 Triton 系統(tǒng)高階架構(gòu)圖,就能更清楚每個(gè)板塊所負(fù)責(zé)的任務(wù)與使用的對(duì)應(yīng)技術(shù)。

24b31aec-59ec-11ed-a3b6-dac502259ad0.png

Triton 推理服務(wù)器采用屬于 “主從(client-server)” 架構(gòu)的系統(tǒng),由圖中的四個(gè)板塊所組成:

1.模型倉(cāng)(Model Repostory):存放 Triton 服務(wù)器所要使用的模型文件與配置文件的存儲(chǔ)設(shè)備,可以是本地服務(wù)器的文件系統(tǒng),也可以使用 Google、AWS、Azure 等云存儲(chǔ)空間,只要遵循 Triton 服務(wù)器所要求的規(guī)范就可以;

2.客戶端應(yīng)用(Client Application):基于 Triton 用戶端 Python / C++ / Java 庫(kù)所撰寫,可以在各種操作系統(tǒng)與 CPU 架構(gòu)上操作,對(duì) Triton 服務(wù)器提交任務(wù)請(qǐng)求,并且接受返回的計(jì)算結(jié)果。這是整個(gè) Triton 推理應(yīng)用中代碼量最多的一部分,也是開發(fā)人員需要花費(fèi)最多心思的部分,在后面會(huì)有專文講解。

3.HTTP / gPRC 通訊協(xié)議:作為用戶端與服務(wù)端互動(dòng)的通訊協(xié)議,開發(fā)人員可以根據(jù)實(shí)際狀況選擇其中一種通訊協(xié)議進(jìn)行操作,能透過(guò)互聯(lián)網(wǎng)對(duì)服務(wù)器提出推理請(qǐng)求并返回推理結(jié)果,如下圖所示:

24e30694-59ec-11ed-a3b6-dac502259ad0.png

使用這類通訊協(xié)議有以下優(yōu)點(diǎn):

(1)支持實(shí)時(shí)、批處理和流式推理查詢,以獲得最佳應(yīng)用程序體驗(yàn)

(2)提供高吞吐量推理,同時(shí)使用動(dòng)態(tài)批處理和并發(fā)模型執(zhí)行來(lái)滿足緊張的延遲預(yù)算

(3)模型可以在現(xiàn)場(chǎng)制作中更新,而不會(huì)中斷應(yīng)用程序

4.推理服務(wù)器(Inference Server):這是整個(gè) Triton 服務(wù)器最核心且最復(fù)雜的部分,特別在 “性能”、“穩(wěn)定”、“擴(kuò)充” 這三大要求之間取得平衡的管理,主要包括以下幾大功能板塊:

(1) C 開發(fā)接口

在服務(wù)器內(nèi)的代碼屬于系統(tǒng)底層機(jī)制,主要由 NVIDIA 系統(tǒng)工程師進(jìn)行維護(hù),因此只提供性能較好的 C 開發(fā)接口,一般應(yīng)用工程師可以忽略這部分,除非您有心深入 Triton 系統(tǒng)底層進(jìn)行改寫。

(2) 模型管理器(Model Management):

支持多框架的文件格式并提供自定義的擴(kuò)充能力,目前已支持 TensorFlow 的 GraphDef 與 SavedModel 格式、ONNX、PyTorch TorchScript、TensorRT、用于基于樹的 RAPIDS FIL 模型、OpenVINO 等模型文件格式,還能使用自定義的 Python / C++ 模型格式;

(3) 模型的推理隊(duì)列調(diào)度器(Per-Model Scheduler Queues):

將推理模型用管道形式進(jìn)行管理,將一個(gè)或多個(gè)模型的預(yù)處理或后處理進(jìn)行邏輯排列,并管理模型之間的輸入和輸出張量的連接,任何的推理請(qǐng)求都會(huì)觸發(fā)這個(gè)模型管道。這部分還包含以下兩個(gè)重點(diǎn):

并發(fā)模型執(zhí)行(Concurrent Model Execution):允許同一模型的多個(gè)模型和 / 或多個(gè)實(shí)例在同一系統(tǒng)上并行執(zhí)行,系統(tǒng)可能有零個(gè)、一個(gè)或多個(gè) GPU。

模型和調(diào)度程序(Models And Schedulers):支持多種調(diào)度和批量處理算法,可為每個(gè)模型單獨(dú)選擇無(wú)狀態(tài)(stateless)、有狀態(tài)(stateful)或集成(ensemble)模式。對(duì)于給定的模型,調(diào)度器的選擇和配置是通過(guò)模型的配置文件完成的。

(4) 計(jì)算資源的優(yōu)化處理:

這是作為服務(wù)器軟件的最重要工作之一,就是要將設(shè)備的計(jì)算資源充分調(diào)度,并且優(yōu)化總體計(jì)算性能,主要使用以下三種技術(shù)。

支持異構(gòu)計(jì)算模式:可部署在純 x86 與 ARM CPU 的計(jì)算設(shè)備上,也支持裝載 NVIDIA GPU 的計(jì)算設(shè)備。

動(dòng)態(tài)批量處理(Dynamic batching)技術(shù):對(duì)支持批處理的模型提供多個(gè)內(nèi)置的調(diào)度和批處理算法,并結(jié)合各個(gè)推理請(qǐng)求以提高推理吞吐量,這些調(diào)度和批量處理決策對(duì)請(qǐng)求推理的客戶端是透明的。

批量處理推理請(qǐng)求分為客戶端批量處理和服務(wù)器批量處理兩種,通過(guò)將單個(gè)推理請(qǐng)求組合在一起來(lái)實(shí)現(xiàn)服務(wù)器批處理,以提高推理吞吐量;

構(gòu)建一個(gè)批量處理緩存區(qū),當(dāng)達(dá)到配置的延遲閾值后便啟動(dòng)處理機(jī)制;

調(diào)度和批處理決策對(duì)請(qǐng)求推斷的客戶機(jī)是透明的,并且根據(jù)模型進(jìn)行配置。

c.并發(fā)模型(Concurrent model)運(yùn)行:多個(gè)模型或同一模型的多個(gè)實(shí)例,可以同時(shí)在一個(gè) GPU 或多個(gè) GPU 上運(yùn)行,以滿足不同的模型管理需求。

(5) 框架后端管理器(Framework Backends):

Triton 的后端就是執(zhí)行模型的封裝代碼,每種支持的框架都有一個(gè)對(duì)應(yīng)的后端作為支持,例如 tensorrt_backend 就是支持 TensorRT 模型推理所封裝的后端、openvino_backend 就是支持 openvine 模型推理所封裝的后端,目前在 Triton 開源項(xiàng)目里已經(jīng)提供大約 15 種后端,技術(shù)人員可以根據(jù)開發(fā)無(wú)限擴(kuò)充。

要添加一個(gè)新的后臺(tái)是相當(dāng)復(fù)雜的過(guò)程,因此在本系列文章中并不探索,這里主要說(shuō)明以下 Triton 服務(wù)器對(duì)各個(gè)后端的管理機(jī)制,主要是以下重點(diǎn):

采用 KFServing 的新社區(qū)標(biāo)準(zhǔn) gRPC 和 HTTP/REST 數(shù)據(jù)平面(data plane)v2 協(xié)議(如下圖),這是 Kubernetes 上基于各種標(biāo)準(zhǔn)的無(wú)服務(wù)器推理架構(gòu)

24f06f96-59ec-11ed-a3b6-dac502259ad0.png

通過(guò)配置自動(dòng)化和自動(dòng)擴(kuò)展簡(jiǎn)化 Kubernetes 中的推理服務(wù)部署

透明地處理負(fù)載峰值,即使請(qǐng)求數(shù)量顯著增加,請(qǐng)求的服務(wù)也將繼續(xù)順利運(yùn)行

可以通過(guò)定義轉(zhuǎn)換器,輕松地將標(biāo)記化和后處理等預(yù)處理步驟包含在部署中

可以用 NGC 的 Helm 命令在 Kubernetes 中部署 Triton,也可以部署為容器微服務(wù),為 GPU 和 CPU 上的預(yù)處理或后處理和深度學(xué)習(xí)模型提供服務(wù),也能輕松部署在數(shù)據(jù)中心或云平臺(tái)上

將推理實(shí)例進(jìn)行微服務(wù)處理,每個(gè)實(shí)例都可以在 Kubernetes 環(huán)境中獨(dú)立擴(kuò)展,以獲得最佳性能

通過(guò)這種新的集成,可以輕松地在 Kubernetes 使用 Triton 部署高性能推理

以上是 Triton 推理服務(wù)器的高級(jí)框架與主要特性的簡(jiǎn)介,如果看完本文后仍感覺有許多不太理解的部分,這是正常的現(xiàn)象,因?yàn)檎麄€(gè) Triton 系統(tǒng)集成非常多最先進(jìn)的技術(shù)在內(nèi),并非朝夕之間就能掌握的。

后面的內(nèi)容就要進(jìn)入 Triton 推理服務(wù)器的環(huán)境安裝與調(diào)試,以及一些基礎(chǔ)范例的執(zhí)行環(huán)節(jié),透過(guò)這些實(shí)際的操作,逐步體驗(yàn) Triton 系統(tǒng)的強(qiáng)大。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4978

    瀏覽量

    102984
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9123

    瀏覽量

    85322
  • Triton
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7033

原文標(biāo)題:NVIDIA Triton系列文章(2):功能與架構(gòu)簡(jiǎn)介

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SSR與傳統(tǒng)服務(wù)器的對(duì)比分析

    隨著云計(jì)算技術(shù)的快速發(fā)展,Serverless架構(gòu)(無(wú)服務(wù)器架構(gòu))逐漸成為業(yè)界關(guān)注的焦點(diǎn)。其中,SSR(Serverless Stateful Resources,無(wú)服務(wù)器有狀態(tài)資源)
    的頭像 發(fā)表于 11-18 11:22 ?287次閱讀

    GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

    眾所周知,在大型模型訓(xùn)練中,通常采用每臺(tái)服務(wù)器配備多個(gè)GPU的集群架構(gòu)。在上一篇文章《高性能GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)(上篇)》中,我們對(duì)GPU網(wǎng)絡(luò)中的核心術(shù)語(yǔ)與概念進(jìn)行了詳盡介紹。本文
    的頭像 發(fā)表于 11-05 16:20 ?313次閱讀
    GPU<b class='flag-5'>服務(wù)器</b>AI網(wǎng)絡(luò)<b class='flag-5'>架構(gòu)</b>設(shè)計(jì)

    功能服務(wù)器與機(jī)架式的區(qū)別

    在現(xiàn)代數(shù)據(jù)中心和IT基礎(chǔ)設(shè)施中,服務(wù)器扮演著至關(guān)重要的角色。隨著技術(shù)的發(fā)展,服務(wù)器的形式和功能也在不斷演變。功能服務(wù)器和機(jī)架式
    的頭像 發(fā)表于 10-14 15:05 ?201次閱讀

    什么是AI服務(wù)器?AI服務(wù)器的優(yōu)勢(shì)是什么?

    AI服務(wù)器是一種專門為人工智能應(yīng)用設(shè)計(jì)的服務(wù)器,它采用異構(gòu)形式的硬件架構(gòu),通常搭載GPU、FPGA、ASIC等加速芯片,利用CPU與加速芯片的組合來(lái)滿足高吞吐量互聯(lián)的需求,為自然語(yǔ)言處理、計(jì)算機(jī)視覺、機(jī)器學(xué)習(xí)等人工智能應(yīng)用場(chǎng)景提
    的頭像 發(fā)表于 09-21 11:43 ?819次閱讀

    服務(wù)器CPU架構(gòu)之爭(zhēng):x86穩(wěn)坐江山,自研力量蓄勢(shì)待發(fā)

    在數(shù)字化轉(zhuǎn)型的浪潮中,服務(wù)器市場(chǎng)持續(xù)繁榮,各大廠商競(jìng)相投入,力求在激烈的市場(chǎng)競(jìng)爭(zhēng)中占據(jù)一席之地。作為服務(wù)器的核心部件,CPU的性能與功耗直接決定了服務(wù)器的整體表現(xiàn),因此,CPU
    的頭像 發(fā)表于 09-20 14:54 ?780次閱讀

    基于高通主板的ARM架構(gòu)服務(wù)器

    架構(gòu)主導(dǎo)服務(wù)器市場(chǎng),現(xiàn)面臨挑戰(zhàn)。Arm 2008 年入服務(wù)器領(lǐng)域,雖因性能與生態(tài)問(wèn)題未大突破,但近幾年重新沖刺。 (二)技術(shù)創(chuàng)新引領(lǐng) Arm 的 Neoverse 平臺(tái)不斷發(fā)展。20
    的頭像 發(fā)表于 09-11 10:53 ?503次閱讀

    服務(wù)器而言,ARM架構(gòu)與X86架構(gòu)有什么區(qū)別?各自的優(yōu)勢(shì)在哪里?

    一、服務(wù)器架構(gòu)概述 在數(shù)字化時(shí)代,服務(wù)器架構(gòu)至關(guān)重要。服務(wù)器是網(wǎng)絡(luò)核心節(jié)點(diǎn),存儲(chǔ)、處理和提供數(shù)據(jù)與服務(wù)
    的頭像 發(fā)表于 09-09 14:05 ?1719次閱讀

    NVIDIA助力提供多樣、靈活的模型選擇

    在本案例中,Dify 以模型中立以及開源生態(tài)的優(yōu)勢(shì),為廣大 AI 創(chuàng)新者提供豐富的模型選擇。其集成的 NVIDIAAPI Catalog、NVIDIA NIM和Triton 推理服務(wù)器
    的頭像 發(fā)表于 09-09 09:19 ?459次閱讀

    英偉達(dá)推出全新NVIDIA AI Foundry服務(wù)NVIDIA NIM推理服務(wù)

    NVIDIA 宣布推出全新 NVIDIA AI Foundry 服務(wù)NVIDIA NIM 推理服務(wù)
    的頭像 發(fā)表于 07-25 09:48 ?698次閱讀

    AI服務(wù)器的特點(diǎn)和關(guān)鍵技術(shù)

    AI服務(wù)器,即人工智能服務(wù)器,是一種專門設(shè)計(jì)用于運(yùn)行和加速人工智能(AI)算法與模型的硬件設(shè)備。隨著人工智能技術(shù)的快速發(fā)展和普及,AI服務(wù)器在數(shù)據(jù)處理、模型訓(xùn)練、推理應(yīng)用等方面展現(xiàn)出了
    的頭像 發(fā)表于 07-17 16:34 ?1519次閱讀

    ai服務(wù)器是什么架構(gòu)類型

    AI服務(wù)器,即人工智能服務(wù)器,是專門為人工智能應(yīng)用設(shè)計(jì)的高性能計(jì)算服務(wù)器。AI服務(wù)器架構(gòu)類型有很多種,以下是一些常見的
    的頭像 發(fā)表于 07-02 09:51 ?1049次閱讀

    英偉達(dá)推出AI模型推理服務(wù)NVIDIA NIM

    英偉達(dá)近日宣布推出一項(xiàng)革命性的AI模型推理服務(wù)——NVIDIA NIM。這項(xiàng)服務(wù)將極大地簡(jiǎn)化AI模型部署過(guò)程,為全球的2800萬(wàn)英偉達(dá)開發(fā)者提供前所未有的便利。
    的頭像 發(fā)表于 06-04 09:15 ?674次閱讀

    利用NVIDIA組件提升GPU推理的吞吐

    本實(shí)踐中,唯品會(huì) AI 平臺(tái)與 NVIDIA 團(tuán)隊(duì)合作,結(jié)合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)將推理的稠密網(wǎng)絡(luò)和熱
    的頭像 發(fā)表于 04-20 09:39 ?714次閱讀

    使用NVIDIA Triton推理服務(wù)器來(lái)加速AI預(yù)測(cè)

    這家云計(jì)算巨頭的計(jì)算機(jī)視覺和數(shù)據(jù)科學(xué)服務(wù)使用 NVIDIA Triton 推理服務(wù)器來(lái)加速 AI 預(yù)測(cè)。
    的頭像 發(fā)表于 02-29 14:04 ?575次閱讀

    利用NVIDIA產(chǎn)品技術(shù)組合提升用戶體驗(yàn)

    本案例通過(guò)利用NVIDIA TensorRT-LLM加速指令識(shí)別深度學(xué)習(xí)模型,并借助NVIDIA Triton推理服務(wù)器
    的頭像 發(fā)表于 01-17 09:30 ?684次閱讀
    RM新时代网站-首页