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

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

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

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

使用NVIDIA Triton模型分析器確定最佳AI模型服務(wù)配置

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-05-30 09:38 ? 次閱讀

模型部署是 機器學(xué)習(xí) 生命周期的一個關(guān)鍵階段,在此階段,經(jīng)過培訓(xùn)的模型將集成到現(xiàn)有的應(yīng)用程序生態(tài)系統(tǒng)中。這往往是最繁瑣的步驟之一,在這些步驟中,目標(biāo)硬件平臺應(yīng)滿足各種應(yīng)用程序和生態(tài)系統(tǒng)約束,所有這些都不會影響模型的準(zhǔn)確性。

NVIDIA Triton 推理服務(wù)器 是一個開源的模型服務(wù)工具,它簡化了推理,并具有多個功能以最大限度地提高硬件利用率和推理性能。這包括以下功能:

并發(fā)模型執(zhí)行 ,使同一模型的多個實例能夠在同一系統(tǒng)上并行執(zhí)行。

Dynamic batching ,其中客戶端請求在服務(wù)器上分組,以形成更大的批。

優(yōu)化模型部署時,需要做出幾個關(guān)鍵決策:

為了最大限度地提高利用率, NVIDIA Triton 應(yīng)在同一 CPU / GPU 上同時運行多少個模型實例?

應(yīng)將多少傳入的客戶端請求動態(tài)批處理在一起?

模型應(yīng)采用哪種格式?

應(yīng)以何種精度計算輸出?

這些關(guān)鍵決策導(dǎo)致了組合爆炸,每種型號和硬件選擇都有數(shù)百種可能的配置。通常,這會導(dǎo)致浪費開發(fā)時間或代價高昂的低于標(biāo)準(zhǔn)的服務(wù)決策。

在本文中,我們將探討 NVIDIA Triton 型號分析儀 可以自動瀏覽目標(biāo)硬件平臺的各種服務(wù)配置,并根據(jù)應(yīng)用程序的需要找到最佳型號配置。這可以提高開發(fā)人員的生產(chǎn)率,同時提高服務(wù)硬件的利用率。

NVIDIA Triton 型號分析儀

NVIDIA Triton Model Analyzer 是一個多功能 CLI 工具,有助于更好地了解通過 NVIDIA Triton 推理服務(wù)器提供服務(wù)的模型的計算和內(nèi)存需求。這使您能夠描述不同配置之間的權(quán)衡,并為您的用例選擇最佳配置。

NVIDIA Triton 模型分析器可用于 NVIDIA Triton 推理服務(wù)器支持的所有模型格式: TensorRT 、 TensorFlow 、 PyTorch 、 ONNX 、 OpenVINO 和其他。

您可以指定應(yīng)用程序約束(延遲、吞吐量或內(nèi)存),以找到滿足這些約束的服務(wù)配置。例如,虛擬助理應(yīng)用程序可能有一定的延遲預(yù)算,以便最終用戶能夠?qū)崟r感受到交互。脫機處理工作流應(yīng)針對吞吐量進行優(yōu)化,以減少所需硬件的數(shù)量,并盡可能降低成本。模型服務(wù)硬件中的可用內(nèi)存可能受到限制,并且需要針對內(nèi)存優(yōu)化服務(wù)配置。

poYBAGKUIBuAEkdnAABaMGlIxwY905.png

圖 1 :NVIDIA Triton 型號分析器概述。

我們以一個預(yù)訓(xùn)練模型為例,展示了如何使用 NVIDIA Triton 模型分析器,并在 Google 云平臺上的 VM 實例上優(yōu)化該模型的服務(wù)。然而,這里顯示的步驟可以在任何公共云上使用,也可以在具有 NVIDIA Triton 推理服務(wù)器支持的任何模型類型的前提下使用。

創(chuàng)建模型

在這篇文章中,我們使用預(yù)訓(xùn)練 BERT Hugging Face 的大型模型,采用 PyTorch 格式。 NVIDIA Triton 推理服務(wù)器可以使用其LibTorch后端為TorchScript模型提供服務(wù),也可以使用其 Python 后端為純 PyTorch 模型提供服務(wù)。為了獲得最佳性能,我們建議將 PyTorch 模型轉(zhuǎn)換為TorchScript格式。為此,請使用PyTorch的跟蹤功能。

首先從 NGC 中拉出 PyTorch 容器,然后在容器中安裝transformers包。如果這是您第一次使用 NGC ,請創(chuàng)建一個帳戶。在本文中,我們使用了 22.04 版本的相關(guān)工具,這是撰寫本文時的最新版本。 NVIDIA ( NVIDIA ) Triton 每月發(fā)布一次 cadence ,并在每個月底發(fā)布新版本。

docker pull nvcr.io/nvidia/pytorch:22.04-py3
docker run --rm -it -v $(pwd):/workspace nvcr.io/nvidia/pytorch:22.04-py3 /bin/bash
pip install transformers

安裝transformers包后,運行以下 Python 代碼下載預(yù)訓(xùn)練的 BERT 大型模型,并將其跟蹤為 TorchScript 格式。

from transformers import BertModel, BertTokenizer
import torch
model_name = "bert-large-uncased"
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name, torchscript=True) max_seq_len = 512
sample = "This is a sample input text"
tokenized = tokenizer(sample, return_tensors="pt", max_length=max_seq_len, padding="max_length", truncation=True) inputs = (tokenized.data['input_ids'], tokenized.data['attention_mask'], tokenized.data['token_type_ids'])
traced_model = torch.jit.trace(model, inputs)
traced_model.save("model.pt")

構(gòu)建模型存儲庫

使用 NVIDIA Triton 推理服務(wù)器為您的模型提供服務(wù)的第一步是創(chuàng)建模型存儲庫。在此存儲庫中,您將包括一個模型配置文件,該文件提供有關(guān)模型的信息。模型配置文件至少必須指定后端、模型的最大批大小以及輸入/輸出結(jié)構(gòu)。

對于這個模型,下面的代碼示例是模型配置文件。

platform: "pytorch_libtorch"
max_batch_size: 64
input [ { name: "INPUT__0" data_type: TYPE_INT64 dims: [ 512 ] }, { name: "INPUT__1" data_type: TYPE_INT64 dims: [ 512 ] }, { name: "INPUT__2" data_type: TYPE_INT64 dims: [ 512 ] }
]
output [ { name: "OUTPUT__0" data_type: TYPE_FP32 dims: [ -1, 1024 ] }, { name: "OUTPUT__1" data_type: TYPE_FP32 dims: [ 1024 ] }
]

將模型配置文件命名為config.pbtxt后,按照 存儲庫布局結(jié)構(gòu) 創(chuàng)建模型存儲庫。模型存儲庫的文件夾結(jié)構(gòu)應(yīng)類似于以下內(nèi)容:

.
└── bert-large ├── 1 │ └── model.pt └── config.pbtxt

運行 NVIDIA Triton 型號分析器

建議使用 Model Analyzer 的方法是自己構(gòu)建 Docker 映像:

git clone https://github.com/triton-inference-server/model_analyzer.git
cd ./model_analyzer
git checkout r22.04
docker build --pull -t model-analyzer .

現(xiàn)在已經(jīng)構(gòu)建了 Model Analyzer 映像,請旋轉(zhuǎn)容器:

docker run -it --rm --gpus all \ -v /var/run/docker.sock:/var/run/docker.sock \ -v :/models \ -v :/output \ -v :/config \ --net=host model-analyzer

不同的硬件配置可能會導(dǎo)致不同的最佳服務(wù)配置。因此,在最終提供模型的目標(biāo)硬件平臺上運行模型分析器非常重要。

為了重現(xiàn)我們在這篇文章中給出的結(jié)果,我們在公共云中進行了實驗。具體來說,我們在 Google 云平臺上使用了一個 a2-highgpu-1g 實例,并使用了一個 NVIDIA A100 GPU 。

A100 GPU 支持多實例 GPU ( MIG ),它可以通過將單個 A100 GPU 拆分為七個分區(qū)來最大限度地提高 GPU 利用率,這些分區(qū)具有硬件級隔離,可以獨立運行 NVIDIA Triton 服務(wù)器。為了簡單起見,我們在這篇文章中沒有使用 MIG 。

Model Analyzer 支持 NVIDIA Triton 型號的自動和手動掃描不同配置。自動配置搜索是默認(rèn)行為,并為所有配置啟用 dynamic batching 。在這種模式下,模型分析器將掃描不同的批大小和可以同時處理傳入請求的模型實例數(shù)。

掃掠的默認(rèn)范圍是最多五個模型實例和最多 128 個批次大小。這些 可以更改默認(rèn)值 。

現(xiàn)在創(chuàng)建一個名為sweep.yaml的配置文件,以分析前面準(zhǔn)備的 BERT 大型模型,并自動掃描可能的配置。

model_repository: /models
checkpoint_directory: /output/checkpoints/
output-model-repository-path: /output/bert-large
profile_models: bert-large
perf_analyzer_flags: input-data: "zero"

使用前面的配置,您可以分別獲得模型吞吐量和延遲的頂行號和底行號。

分析時,模型分析器還將收集的測量值寫入檢查點文件。它們位于指定的檢查點目錄中。您可以使用分析的檢查點創(chuàng)建數(shù)據(jù)表、摘要和結(jié)果的詳細報告。

配置文件就緒后,您現(xiàn)在可以運行 Model Analyzer 了:

model-analyzer profile -f /config/sweep.yaml

作為示例,表 1 顯示了結(jié)果中的幾行。每一行對應(yīng)于在假設(shè)的客戶端負載下在模型配置上運行的實驗。

表 1 :。自動掃描的樣本輸出

要獲得測試的每個模型配置的更詳細報告,請使用model-analyzer report命令:

model-analyzer report --report-model-configs bert-large_config_default,bert-large_config_1,bert-large_config_2 --export-path /output --config-file /config/sweep.yaml --checkpoint-directory /output/checkpoints/

這將生成一個詳細說明以下內(nèi)容的報告:

運行分析的硬件

吞吐量與延遲的關(guān)系圖

GPU 內(nèi)存與延遲的關(guān)系圖

CLI 中所選配置的報告

對于任何 MLOps 團隊來說,在將模型投入生產(chǎn)之前開始分析都是一個很好的開始。

不同的利益相關(guān)者,不同的約束條件

在典型的生產(chǎn)環(huán)境中,有多個團隊?wèi)?yīng)該協(xié)同工作,以便在生產(chǎn)中大規(guī)模部署 AI 模型。例如,可能有一個 MLOps 團隊負責(zé)為管道穩(wěn)定性服務(wù)的模型,并處理應(yīng)用程序強加的服務(wù)級別協(xié)議( SLA )中的更改。另外,基礎(chǔ)架構(gòu)團隊通常負責(zé)整個 GPU / CPU 場。

假設(shè)一個產(chǎn)品團隊要求 MLOps 團隊在 30 毫秒的延遲預(yù)算內(nèi)處理 99% 的請求,為 BERT 大型服務(wù)器提供服務(wù)。 MLOps 團隊?wèi)?yīng)考慮可用硬件上的各種服務(wù)配置,以滿足該要求。使用 Model Analyzer 可以消除執(zhí)行此操作時的大部分摩擦。

下面的代碼示例是一個名為latency_constraint.yaml的配置文件的示例,其中我們在測得的延遲值的 99% 上添加了一個約束,以滿足給定的 SLA 。

model_repository: /models
checkpoint_directory: /output/checkpoints/
analysis_models: bert-large: constraints: perf_latency_p99: max: 30
perf_analyzer_flags: input-data: "zero"

因為您有上一次掃描中的檢查點,所以可以將它們重新用于 SLA 分析。運行以下命令可以提供滿足延遲約束的前三種配置:

model-analyzer analyze -f latency_constraint.yaml

表 2 顯示了前三種配置的測量結(jié)果,以及它們與默認(rèn)配置的比較情況。

表 2 :。每個配置如何滿足指定的延遲約束

在大規(guī)模生產(chǎn)中,軟件和硬件約束會影響生產(chǎn)中的 SLA 。

假設(shè)應(yīng)用程序的約束已更改。該團隊現(xiàn)在希望滿足同一型號的 p99 延遲為 50 ms ,吞吐量為每秒 30 多個推斷。還假設(shè)基礎(chǔ)設(shè)施團隊能夠為其使用留出 5000 MB 的 GPU 內(nèi)存。隨著約束數(shù)量的增加,手動查找服務(wù)配置以滿足涉眾變得越來越困難。這就是對模型分析器這樣的解決方案的需求變得更加明顯的地方,因為您現(xiàn)在可以在單個配置文件中同時指定所有約束。

以下名為multiple_constraint.yaml的示例配置文件結(jié)合了吞吐量、延遲和 GPU 內(nèi)存約束:

model_repository: /models
checkpoint_directory: /output/checkpoints/
analysis_models: bert-large-pytorch: constraints: perf_throughput: min: 50 perf_latency_p99: max: 30 gpu_used_memory: max: 5000
perf_analyzer_flags: input-data: "zero"

使用此更新的約束,運行以下命令:

model-analyzer analyze -f multiple_constraint.yaml

Model Analyzer 現(xiàn)在將以下提供的服務(wù)配置作為前三個選項,并顯示它們與默認(rèn)配置的比較情況。

表 3 :。每個配置如何滿足指定的所有三個約束。

總結(jié)

隨著企業(yè)發(fā)現(xiàn)自己在生產(chǎn)中提供越來越多的模型,手動或基于啟發(fā)式做出模型服務(wù)決策變得越來越困難。手動執(zhí)行此操作會導(dǎo)致浪費開發(fā)時間或模型服務(wù)決策不足,這需要自動化工具。

在本文中,我們探討了 NVIDIA Triton 模型分析器如何能夠找到滿足應(yīng)用程序 SLA 和各種涉眾需求的模型服務(wù)配置。我們展示了如何使用模型分析器掃描各種配置,以及如何使用它來滿足指定的服務(wù)約束。

盡管我們在這篇文章中只關(guān)注一個模型,但仍有計劃讓模型分析器同時對多個模型執(zhí)行相同的分析。例如,您可以在相同的 GPU 上運行的不同模型上定義約束,并對每個約束進行優(yōu)化。

我們希望您能分享我們對 Model Analyzer 將節(jié)省多少開發(fā)時間的興奮,并使您的 MLOps 團隊能夠做出明智的決策。

關(guān)于作者

Arun Raman 是 NVIDIA 的高級解決方案架構(gòu)師,專門從事消費互聯(lián)網(wǎng)行業(yè)的 edge 、 cloud 和 on-prem 人工智能應(yīng)用。在目前的職位上,他致力于端到端 AI 管道,包括預(yù)處理、培訓(xùn)和推理。除了從事人工智能工作外,他還研究了一系列產(chǎn)品,包括網(wǎng)絡(luò)路由器和交換機、多云基礎(chǔ)設(shè)施和服務(wù)。他擁有達拉斯德克薩斯大學(xué)電氣工程碩士學(xué)位。

Burak Yoldeir 是 NVIDIA 的高級數(shù)據(jù)科學(xué)家,專門為消費互聯(lián)網(wǎng)行業(yè)生產(chǎn)人工智能應(yīng)用程序。除了前端和后端企業(yè)軟件開發(fā)之外, Burak 還從事廣泛的 AI 應(yīng)用程序開發(fā)。他擁有加拿大不列顛哥倫比亞大學(xué)電氣和計算機工程博士學(xué)位。

審核編輯:郭婷

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

    關(guān)注

    5

    文章

    1772

    瀏覽量

    57809
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5076

    瀏覽量

    103734
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85042
收藏 人收藏

    評論

    相關(guān)推薦

    NVIDIA推出面向RTX AI PC的AI基礎(chǔ)模型

    NVIDIA 今日發(fā)布能在 NVIDIA RTX AI PC 本地運行的基礎(chǔ)模型,為數(shù)字人、內(nèi)容創(chuàng)作、生產(chǎn)力和開發(fā)提供強大助力。
    的頭像 發(fā)表于 01-08 11:01 ?246次閱讀

    NVIDIA推出多個生成式AI模型和藍圖

    NVIDIA 宣布推出多個生成式 AI 模型和藍圖,將 NVIDIA Omniverse 一體化進一步擴展至物理 AI 應(yīng)用,如機器人、自動
    的頭像 發(fā)表于 01-08 10:48 ?163次閱讀

    Triton編譯的優(yōu)勢與劣勢分析

    據(jù)流分析技術(shù),能夠自動識別并優(yōu)化深度學(xué)習(xí)模型中的計算瓶頸,從而提高模型的整體性能。 它支持多種硬件平臺的優(yōu)化,包括CPU、GPU、FPGA等,為深度學(xué)習(xí)模型的部署提供了更廣泛的選擇。
    的頭像 發(fā)表于 12-25 09:07 ?396次閱讀

    Triton編譯在機器學(xué)習(xí)中的應(yīng)用

    1. Triton編譯概述 Triton編譯NVIDIA Triton推理
    的頭像 發(fā)表于 12-24 18:13 ?520次閱讀

    NVIDIA推出全新生成式AI模型Fugatto

    NVIDIA 開發(fā)了一個全新的生成式 AI 模型。利用輸入的文本和音頻,該模型可以創(chuàng)作出包含任意的音樂、人聲和聲音組合的作品。
    的頭像 發(fā)表于 11-27 11:29 ?431次閱讀

    AI模型托管原理分析

    AI模型托管是指將訓(xùn)練好的AI模型部署在云端或邊緣服務(wù)器上,由第三方平臺提供模型運行、管理和優(yōu)化
    的頭像 發(fā)表于 11-07 09:33 ?248次閱讀

    AI模型市場分析

    隨著人工智能技術(shù)的快速發(fā)展,AI模型已成為全球科技競爭的新高地、未來產(chǎn)業(yè)的新賽道以及經(jīng)濟發(fā)展的新引擎。下面,AI部落小編分析了當(dāng)前AI
    的頭像 發(fā)表于 11-01 09:51 ?222次閱讀

    使用AI模型進行數(shù)據(jù)分析的技巧

    以及后續(xù)的分析步驟。 確定需要分析的數(shù)據(jù)類型、規(guī)模和復(fù)雜度,以便選擇合適的AI模型。 二、高質(zhì)量數(shù)據(jù)收集與處理 數(shù)據(jù)來源 :從可靠的來源收
    的頭像 發(fā)表于 10-23 15:14 ?1116次閱讀

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

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

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

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

    NVIDIA AI Foundry 為全球企業(yè)打造自定義 Llama 3.1 生成式 AI 模型

    Foundry 提供從數(shù)據(jù)策管、合成數(shù)據(jù)生成、微調(diào)、檢索、防護到評估的全方位生成式 AI 模型服務(wù),以便部署自定義 Llama 3.1 NVIDIA NIM 微
    發(fā)表于 07-24 09:39 ?744次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>AI</b> Foundry 為全球企業(yè)打造自定義 Llama 3.1 生成式 <b class='flag-5'>AI</b> <b class='flag-5'>模型</b>

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

    英偉達近日宣布推出一項革命性的AI模型推理服務(wù)——NVIDIA NIM。這項服務(wù)將極大地簡化AI
    的頭像 發(fā)表于 06-04 09:15 ?732次閱讀

    STM CUBE AI錯誤導(dǎo)入onnx模型報錯的原因?

    使用cube-AI分析模型時報錯,該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32
    發(fā)表于 05-27 07:15

    使用cube-AI分析模型時報錯的原因有哪些?

    使用cube-AI分析模型時報錯,該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32
    發(fā)表于 03-14 07:09

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

    這家云計算巨頭的計算機視覺和數(shù)據(jù)科學(xué)服務(wù)使用 NVIDIA Triton 推理服務(wù)器來加速 AI 預(yù)測。
    的頭像 發(fā)表于 02-29 14:04 ?634次閱讀
    主站蜘蛛池模板: 久色国产 | 特黄特色网站 | 国产成人精品高清免费 | 日本免费一区二区在线观看 | 欧美亚洲综合另类成人 | 国产精品久久久久久久免费大片 | 国产视频每日更新 | 亚洲男人的天堂在线播放 | 91md天美精东蜜桃传媒在线 | 欧洲另类一二三四区 | 一级黄色片a | 丁香六月婷婷综合 | 日本免费不卡视频一区二区三区 | 亚洲午夜网未来影院 | 91久久人澡人人添人人爽 | 神马午夜第九 | 亚洲午夜小视频 | 美女网站一区二区三区 | 国产婷婷| 国产免费一区二区三区在线 | 丁香六月激情 | 国产乱淫a∨片免费视频 | 天天插天天操 | 久久综合偷偷噜噜噜色 | 欧美精品久久天天躁 | 久久福利免费视频 | 日本黄色录像视频 | 精品国产亚洲人成在线 | 久久国产精品岛国搬运工 | 久久久久久夜精品精品免费啦 | 九九天天影视 | 深夜视频在线播放视频在线观看免费观看 | 九九免费久久这里有精品23 | 一级毛片在线看在线播放 | yy4080午夜理论一级毛片 | 在线你懂得 | 日本黄色美女视频 | 午夜影院在线观看免费 | 亚洲免费mv | 九色视频网 | 天天操夜夜干 |