在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

使用NVIDIA TensorRT和NVIDIA Triton優(yōu)化和提供模型

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-10-10 14:25 ? 次閱讀

假設您已經(jīng)使用 PyTorch 、 TensorFlow 或您選擇的框架訓練了您的模型,并對其準確性感到滿意,并且正在考慮將其部署為服務。有兩個重要的目標需要考慮:最大化模型性能和構建將其部署為服務所需的基礎設施。這篇文章討論了這兩個目標。

通過在三個堆棧級別上加速模型,可以從模型中擠出更好的性能:

硬件加速

軟件加速

算法網(wǎng)絡加速。

NVIDIA GPU深度學習從業(yè)者在硬件加速方面的首選,其優(yōu)點在業(yè)界得到廣泛討論。

關于 GPU 軟件加速的討論通常圍繞庫,如 cuDNN 、 NCCL 、 TensorRT 和其他 CUDA-X 庫。

算法或網(wǎng)絡加速 圍繞量化和知識提取等技術的使用,這些技術本質(zhì)上是對網(wǎng)絡本身進行修改,其應用高度依賴于您的模型。

這種加速需求主要是由業(yè)務問題驅(qū)動的,如降低成本或通過減少延遲來改善最終用戶體驗,以及戰(zhàn)術考慮因素,如在計算資源較少的邊緣設備上部署模型。

服務深度學習模型

在模型加速后,下一步是構建一個服務服務來部署您的模型,這會帶來一系列獨特的挑戰(zhàn)。這是一個非詳盡列表:

該服務能否在不同的硬件平臺上工作?

它會處理我必須同時部署的其他模型嗎?

服務是否可靠?

如何減少延遲?

使用不同的框架和技術堆棧訓練模型;我該如何應對?

如何縮放?

這些都是有效的問題,解決每一個問題都是一個挑戰(zhàn)。

pYYBAGNDuuqAVceWAADqD1qzO14050.png

圖 1 。使用 TensorRT 和 NVIDIA Triton ?聲波風廓線儀優(yōu)化和部署 DL 模型

解決方案概述

本文討論了使用 NVIDIA TensorRT 及其 PyTorch 和 TensorFlow 的框架集成、 NVIDIA Triton 推理服務器和 NVIDIA GPU 來加速和部署模型。

NVIDIA TensorRT 公司

NVIDIA TensorRT 是一個用于高性能深度學習推理的 SDK 。它包括深度學習推理優(yōu)化器和運行時,為深度學習推理應用程序提供低延遲和高吞吐量。

通過其與 PyTorch 和 TensorFlow 的框架集成,只需一行代碼就可以將推理速度提高 6 倍。

NVIDIA Triton 推理服務器

NVIDIA Triton 推理服務器是一種開源的推理服務軟件,提供單一的標準化推理平臺。它可以支持在數(shù)據(jù)中心、云、嵌入式設備或虛擬化環(huán)境中的任何 GPU 或基于 CPU 的基礎設施上對來自多個框架的模型進行推理。

有關更多信息,請參閱以下視頻:

介紹用于高性能深度學習推理的 NVIDIA TensorRT

NVIDIA Torch TensorRT 入門

TensorFlow TensorRT 入門

Triton 簡化推理的五大原因

工作流概述

在深入細節(jié)之前,下面是總體工作流程。接下來,請參閱以下參考資料

TensorRT

Torch-TensorRT

Tensorflow-TensorRT

圖 1 顯示了您必須完成的步驟。

poYBAGNDuuuAUevcAAGU6D844Uo794.png

圖 2 :使用 TensorRT 優(yōu)化模型并使用 NVIDIA Triton ?聲波風廓線儀的總體工作流程

在你開始跟隨之前,準備好你訓練過的模型。

第 1 步: 優(yōu)化模型。您可以使用 TensorRT 或其框架集成來實現(xiàn)這一點。如果選擇 TensorRT ,則可以使用 trtexec 命令行界面。對于與 TensorFlow 或 Pytorch 的框架集成,可以使用單行 API

第 2 步: 構建模型存儲庫。啟動 NVIDIA Triton 推理服務器需要一個模型存儲庫。該存儲庫包含要提供服務的模型、指定詳細信息的配置文件以及任何必需的元數(shù)據(jù)。

第 3 步: 啟動服務器。

第 4 步: 最后,我們提供了簡單而健壯的 HTTP 和 gRPC API ,您可以使用它們來查詢服務器!

在本文中,使用 NGC 中的 Docker 容器。您可能需要創(chuàng)建一個帳戶并獲得 API key 來訪問這些容器。現(xiàn)在,這里是細節(jié)!

使用 TensorRT 加速模型

TensorRT 通過圖優(yōu)化和量化加速模型。您可以通過以下任何方式獲得這些好處:

trtexec CLI 工具

Python / C ++ API

Torch- TensorRT (與 PyTorch 集成)

TensorFlow- TensorRT (與 TensorFlow 集成)

poYBAGNDuuuATayeAAFcLIJiBhw280.png

圖 3 。使用 TensorRT 或其框架集成優(yōu)化模型

雖然 TensorRT 在本機上支持圖形優(yōu)化的更大定制,但框架集成為生態(tài)系統(tǒng)的新開發(fā)人員提供了易用性。由于選擇用戶可能采用的路由取決于其網(wǎng)絡的特定需求,我們希望列出所有選項。有關更多信息,請參閱 使用 NVIDIA TensorRT 加速深度學習推理(更新) 。

對于 TensorRT ,有幾種方法可以構建 TensorRT 引擎。對于本文,請使用 trtexec CLI 工具。如果您想要一個腳本來導出一個預訓練的模型,請使用 export_resnet_to_onnx.py 示例。

docker run -it --gpus all -v /path/to/this/folder:/trt_optimize nvcr.io/nvidia/tensorrt:-py3 trtexec --onnx=resnet50.onnx \ --saveEngine=resnet50.engine \ --explicitBatch \ --useCudaGraph

要使用 FP16 ,請在命令中添加--fp16。在繼續(xù)下一步之前,您必須知道網(wǎng)絡輸入層和輸出層的名稱,這是定義 NVIDIA Triton 模型存儲庫配置時所必需的。一種簡單的方法是使用polygraphy,它與 TensorRT 容器一起打包。

polygraphy inspect model resnet50.engine --mode=basic

ForTorch TensorRT ,拉動NVIDIA PyTorch 容器,安裝了 TensorRT 和火炬 TensorRT 。要繼續(xù),請使用sample。有關更多示例,請訪問Torch-TensorRTGitHub repo 。

#  is the yy:mm for the publishing tag for NVIDIA's Pytorch # container; eg. 21.12 docker run -it --gpus all -v /path/to/this/folder:/resnet50_eg nvcr.io/nvidia/pytorch:-py3 python torch_trt_resnet50.py

為了擴展細節(jié),您基本上使用 Torch- TensorRT 用 TensorRT 編譯 PyTorch 模型。在幕后,您的模型被轉(zhuǎn)換為 TorchScript 模塊,然后對 TensorRT 支持的操作進行優(yōu)化。有關更多信息,請參閱PyTorch – TensorRT 文件.

model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True).eval().to("cuda") # Compile with Torch TensorRT;
trt_model = torch_tensorrt.compile(model, inputs= [torch_tensorrt.Input((1, 3, 224, 224))], enabled_precisions= { torch_tensorrt.dtype.float32} # Runs with FP32; can use FP16
) # Save the model
torch.jit.save(trt_model, "model.pt")

對于 TensorFlow TensorRT ,過程基本相同。首先,拉動NVIDIA TensorFlow Container,它與 TensorRT 和 TensorFlow TensorRT 一起提供。我們以short scripttf_trt_resnet50.py為例。有關更多示例,請參閱TensorFlow TensorRTgithub 回購。

#  is the yy:mm for the publishing tag for the NVIDIA Tensorflow
# container; eg. 21.12 docker run -it --gpus all -v /path/to/this/folder:/resnet50_eg nvcr.io/nvidia/tensorflow:-tf2-py3 python tf_trt_resnet50.py

同樣,您基本上是使用 TensorFlow- TensorRT 用 TensorRT 編譯 TensorFlow 模型。在幕后,您的模型被分割成包含 TensorRT 支持的操作的子圖,然后進行優(yōu)化。有關更多信息,請參閱張量流 – TensorRT 文檔.

# Load model
model = ResNet50(weights='imagenet')
model.save('resnet50_saved_model') # Optimize with tftrt converter = trt.TrtGraphConverterV2(input_saved_model_dir='resnet50_saved_model')
converter.convert() # Save the model
converter.save(output_saved_model_dir='resnet50_saved_model_TFTRT_FP32')

現(xiàn)在,您已經(jīng)使用 TensorRT 優(yōu)化了模型,可以繼續(xù)下一步,設置 NVIDIA Triton ?聲波風廓線儀。

設置 NVIDIA Triton 推理服務器

NVIDIA Triton 推理服務器用于簡化生產(chǎn)環(huán)境中大規(guī)模部署模型或模型集合。為了實現(xiàn)易用性和靈活性,使用 NVIDIA Triton 圍繞著構建一個模型存儲庫,其中包含模型、用于部署這些模型的配置文件以及其他必要的元數(shù)據(jù)。

看看最簡單的例子。圖 4 有四個關鍵點。config.pbtxt文件( a )是前面提到的配置文件,其中包含模型的配置信息。

圖 4 。設置 NVIDIA Triton 工作流

此配置文件中有幾個要點需要注意:

Name: 此字段定義模型的名稱,并且在模型存儲庫中必須是唯一的。

Platform: ( c )此字段用于定義模型的類型:是 TensorRT 引擎、 PyTorch 模型還是其他模型。

輸入和輸出: ( d )這些字段是必需的,因為 NVIDIA Triton 需要關于模型的元數(shù)據(jù)。本質(zhì)上,它需要網(wǎng)絡輸入和輸出層的名稱以及所述輸入和輸出的形狀。對于 TorchScript ,由于沒有輸入和輸出層的名稱,請使用input__0。數(shù)據(jù)類型設置為 FP32 ,輸入格式指定為 3 、 224 、 224 的(通道、高度、寬度)。

該集合中的 TensorRT 、 Torch TensorRT 和 TensorFlow- TensorRT 工作流之間存在微小差異,其歸結(jié)為指定平臺并更改輸入和輸出層的名稱。我們?yōu)樗腥齻€( TensorRT 、 Torch-TensorRT 或 TensorFlow-TensorRT )制作了示例配置文件。最后,添加經(jīng)過訓練的模型( b )。

現(xiàn)在已經(jīng)構建了模型存儲庫,您可以啟動服務器了。為此,您只需拉動容器并指定模型存儲庫的位置。

docker run --gpus=1 --rm -p 8000:8000 -p 8001:8001 -p 8002:8002 -v /full/path/to/docs/examples/model_repository:/models nvcr.io/nvidia/tritonserver:-py3 tritonserver --model-repository=/models

隨著服務器的啟動和運行,您最終可以構建一個客戶端來滿足推理請求!

設置 NVIDIA Triton 客戶端

管道中的最后一步是查詢 NVIDIA Triton 推理服務器。您可以通過 HTTP 或 gRPC 請求向服務器發(fā)送推斷請求。在深入細節(jié)之前,安裝所需的依賴項并下載一個示例圖像。

pip install torchvision
pip install attrdict
pip install nvidia-pyindex
pip install tritonclient[all] wget -O img1.jpg "https://bit.ly/3phN2jy"

在本文中,使用 Torchvision 將原始圖像轉(zhuǎn)換為適合 ResNet-50 模型的格式。客戶不一定需要它。我們有更全面的 image client 和為 triton-inference-server/client GitHub repo 中可用的標準用例預先制作的大量不同的客戶端。然而,對于這個解釋,我們將使用一個簡單得多的瘦客戶端來演示 API 的核心。

好的,現(xiàn)在您已經(jīng)準備好查看 HTTP 客戶端(圖 5 )。下載客戶端腳本:

TensorRT

Torch-TensorRT

TensorFlow-TensorRT

圖 5 。客戶端工作流

構建客戶端有以下步驟。首先,在 NVIDIA Triton 推理服務器和客戶端之間建立連接。

triton_client = httpclient.InferenceServerClient(url="localhost:8000")

其次,傳遞圖像并指定模型的輸入和輸出層的名稱。這些名稱應該與您在創(chuàng)建模型存儲庫時構建的配置文件中定義的規(guī)范一致。

test_input = httpclient.InferInput("input__0", transformed_img.shape, datatype="FP32")
test_input.set_data_from_numpy(transformed_img, binary_data=True) test_output = httpclient.InferRequestedOutput("output__0", binary_data=True, class_count=1000)

最后,向 NVIDIA Triton 推理服務器發(fā)送推理請求。

results = triton_client.infer(model_name="resnet50", inputs=[test_input], outputs=[test_output])

這些代碼示例討論了 Torch- TensorRT 模型的細節(jié)。不同模型(在構建客戶端時)之間的唯一區(qū)別是輸入和輸出層名稱。我們用 Python 、 C ++、 Go 、 Java 和 JavaScript 構建了 NVIDIA Triton 客戶端。有關更多示例,請參閱 triton-inference-server/client GitHub repo 。

結(jié)論

這篇文章介紹了一個端到端的推理管道,您首先使用 TensorRT 、 Torch TensorRT 和 TensorFlow TensorRT 優(yōu)化訓練模型,以最大限度地提高推理性能。然后,通過設置和查詢 NVIDIA Triton 推理服務器,對服務進行建模。

關于作者

Tanay Varshney 是 NVIDIA 的一名深入學習的技術營銷工程師,負責廣泛的 DL 軟件產(chǎn)品。他擁有紐約大學計算機科學碩士學位,專注于計算機視覺、數(shù)據(jù)可視化和城市分析的橫斷面。

Jay Rodge 是 NVIDIA 的產(chǎn)品營銷經(jīng)理,負責深入學習和推理產(chǎn)品,推動產(chǎn)品發(fā)布和產(chǎn)品營銷計劃。杰伊在芝加哥伊利諾伊理工學院獲得計算機科學碩士學位,主攻計算機視覺和自然語言處理。在 NVIDIA 之前,杰伊是寶馬集團的人工智能研究實習生,為寶馬最大的制造廠使用計算機視覺解決問題。

Nick Comly 是 NVIDIA 深度學習推理的產(chǎn)品經(jīng)理。他致力于將 TensorRT 推理優(yōu)化的功能直接應用于 PyTorch 、 TensorFlow 、 MXNet 、 ONNX 和飛漿等框架。 Nick 在斯坦福大學獲得碩士學位,專攻深度學習和優(yōu)化。

審核編輯:郭婷

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

    關注

    14

    文章

    5076

    瀏覽量

    103750
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4779

    瀏覽量

    129370
  • 服務器
    +關注

    關注

    12

    文章

    9317

    瀏覽量

    86081
收藏 人收藏

    評論

    相關推薦

    NVIDIA宣布其AI推理平臺的重大更新

    軟件的新功能,該軟件為所有AI模型和框架提供跨平臺推理;同時也包含對NVIDIA TensorRT的更新,該軟件優(yōu)化AI
    的頭像 發(fā)表于 11-12 14:42 ?1993次閱讀

    NVIDIA Triton推理服務器幫助Teams使用認知服務優(yōu)化語音識別模型

    Microsoft Teams借助AI生成的實時字幕和轉(zhuǎn)錄功能,幫助全球?qū)W生和職場人士順利進行在線會議。用于訓練的NVIDIA AI計算技術和用于推理語音識別模型NVIDIA Triton
    的頭像 發(fā)表于 01-04 17:45 ?1766次閱讀

    Microsoft使用NVIDIA Triton加速AI Transformer模型應用

    Microsoft 的目標是,通過結(jié)合使用 Azure 與 NVIDIA GPU 和 Triton 推理軟件,率先將一系列強大的 AI Transformer 模型投入生產(chǎn)用途。
    的頭像 發(fā)表于 04-02 13:04 ?1810次閱讀

    使用NVIDIA Triton推理服務器簡化邊緣AI模型部署

      NVIDIA Triton 有助于在每個數(shù)據(jù)中心、云和嵌入式設備中實現(xiàn)標準化的可擴展生產(chǎn) AI 。它支持多個框架,在 GPU 和 DLA 等多個計算引擎上運行模型,處理不同類型的推理查詢。通過與
    的頭像 發(fā)表于 04-18 15:40 ?2835次閱讀
    使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>推理服務器簡化邊緣AI<b class='flag-5'>模型</b>部署

    NVIDIA Triton助力騰訊PCG加速在線推理

      借助NVIDIA Triton 推理框架,配合 DALI/FIL/Python 等Backend,以及 TensorRT,整體推理服務的吞吐能力最大提升 6 倍,延遲最大降低 40%。
    的頭像 發(fā)表于 05-20 15:25 ?2383次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>助力騰訊PCG加速在線推理

    基于NVIDIA Triton的AI模型高效部署實踐

    NVIDIA Triton 推理服務器(以前稱為 TensorRT 推理服務器)是一款開源軟件,可簡化深度學習模型在生產(chǎn)環(huán)境中的部署。借助 Trit
    的頭像 發(fā)表于 06-28 15:49 ?1706次閱讀

    NVIDIA 招聘 | NVIDIA 最新熱招崗位!一起迎接未來加速計算!

    / LLM - TensorRT 工作內(nèi)容: 圍繞深度學習端到端 AI 軟件全棧,包括但不限于:訓練框架、核心計算庫、推理優(yōu)化工具(比如 TensorRT)、AI 編譯器、模型壓縮等
    的頭像 發(fā)表于 06-14 18:35 ?1015次閱讀

    如何使用NVIDIA Triton 推理服務器來運行推理管道

    使用集成模型NVIDIA Triton 推理服務器上為 ML 模型管道提供服務
    的頭像 發(fā)表于 07-05 16:30 ?1470次閱讀
    如何使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b> 推理服務器來運行推理管道

    NVIDIA TensorRT與Apache Beam SDK的集成

    使用 NVIDIA TensorRT 在 Apache Beam 中簡化和加速機器學習預測
    的頭像 發(fā)表于 07-05 16:30 ?498次閱讀

    即刻報名第三屆 NVIDIA TensorRT Hackathon 生成式 AI 模型優(yōu)化

    近日,由阿里云及 NVIDIA 聯(lián)合舉辦的?“NVIDIA TensorRT Hackathon 2023 生成式 AI 模型優(yōu)化賽”已正式
    的頭像 發(fā)表于 07-17 19:45 ?623次閱讀
    即刻報名第三屆 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b> Hackathon 生成式 AI <b class='flag-5'>模型</b><b class='flag-5'>優(yōu)化</b>賽

    學習資源 | NVIDIA TensorRT 全新教程上線

    NVIDIA TensorRT ? 是一個用于高效實現(xiàn)已訓練好的深度學習模型推理過程的軟件開發(fā)工具包,內(nèi)含推理優(yōu)化器和運行環(huán)境兩部分,其目的在于讓深度學習
    的頭像 發(fā)表于 08-04 17:45 ?890次閱讀
    學習資源 | <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b> 全新教程上線

    現(xiàn)已公開發(fā)布!歡迎使用 NVIDIA TensorRT-LLM 優(yōu)化大語言模型推理

    NVIDIA 于 2023 年 10 月 19 日公開發(fā)布 TensorRT-LLM ,可在 NVIDIA GPU 上加速和優(yōu)化最新的大語言模型
    的頭像 發(fā)表于 10-27 20:05 ?1054次閱讀
    現(xiàn)已公開發(fā)布!歡迎使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b>-LLM <b class='flag-5'>優(yōu)化</b>大語言<b class='flag-5'>模型</b>推理

    NVIDIA加速微軟最新的Phi-3 Mini開源語言模型

    NVIDIA 宣布使用 NVIDIA TensorRT-LLM 加速微軟最新的 Phi-3 Mini 開源語言模型TensorRT-LLM
    的頭像 發(fā)表于 04-28 10:36 ?641次閱讀

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

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

    解鎖NVIDIA TensorRT-LLM的卓越性能

    NVIDIA TensorRT-LLM 是一個專為優(yōu)化大語言模型 (LLM) 推理而設計的庫。它提供了多種先進的
    的頭像 發(fā)表于 12-17 17:47 ?281次閱讀
    主站蜘蛛池模板: 男人的天堂视频在线 | 日本污视频| 国产99在线播放免费 | 久久久久久久久久免免费精品 | 狠狠色噜噜狠狠狠狠色综合久 | 国模大尺度酒店私拍视频拍拍 | 114毛片免费观看网站 | 网站在线观看视频 | 丁香六月激情网 | 日本xxxxx69| 欧美一级欧美一级高清 | 欧美视频小说 | 四虎永久在线精品国产 | 月夜免费观看高清在线完整 | 免费在线观看污视频 | 干中文字幕| 色图综合网| 天天草综合网 | 毛片啪啪 | 欧美一级免费在线观看 | 色就操 | 四虎永久免费影院 | 成人国产精品一级毛片了 | 精品久久天干天天天按摩 | 激情五月婷婷丁香 | 一区二区不卡视频在线观看 | 欧美性生交xxxxx久久久 | 美女大黄三级视频在线观看 | 午夜影视在线观看 | 精品国产中文一级毛片在线看 | 波多野结衣在线视频免费观看 | 欧美黄色免费网址 | 伊人亚洲综合网成人 | 精品欧美一区二区三区 | 久久99久久精品免费思思6 | 色天天天天综合男人的天堂 | www永久免费视频 | 亚洲精品视频专区 | 天天躁狠狠躁夜躁2021 | 免费观看视频在线观看 | 三级免费网站 |