国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-05-30 09:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

模型部署是 機器學習 生命周期的一個關鍵階段,在此階段,經過培訓的模型將集成到現有的應用程序生態系統中。這往往是最繁瑣的步驟之一,在這些步驟中,目標硬件平臺應滿足各種應用程序和生態系統約束,所有這些都不會影響模型的準確性。

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

并發模型執行 ,使同一模型的多個實例能夠在同一系統上并行執行。

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

優化模型部署時,需要做出幾個關鍵決策:

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

應將多少傳入的客戶端請求動態批處理在一起?

模型應采用哪種格式?

應以何種精度計算輸出?

這些關鍵決策導致了組合爆炸,每種型號和硬件選擇都有數百種可能的配置。通常,這會導致浪費開發時間或代價高昂的低于標準的服務決策。

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

NVIDIA Triton 型號分析儀

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

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

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

poYBAGKUIBuAEkdnAABaMGlIxwY905.png

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

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

創建模型

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

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

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 代碼下載預訓練的 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")

構建模型存儲庫

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

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

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后,按照 存儲庫布局結構 創建模型存儲庫。模型存儲庫的文件夾結構應類似于以下內容:

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

運行 NVIDIA Triton 型號分析器

建議使用 Model Analyzer 的方法是自己構建 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 .

現在已經構建了 Model Analyzer 映像,請旋轉容器:

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

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

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

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

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

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

現在創建一個名為sweep.yaml的配置文件,以分析前面準備的 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"

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

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

配置文件就緒后,您現在可以運行 Model Analyzer 了:

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

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

表 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/

這將生成一個詳細說明以下內容的報告:

運行分析的硬件

吞吐量與延遲的關系圖

GPU 內存與延遲的關系圖

CLI 中所選配置的報告

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

不同的利益相關者,不同的約束條件

在典型的生產環境中,有多個團隊應該協同工作,以便在生產中大規模部署 AI 模型。例如,可能有一個 MLOps 團隊負責為管道穩定性服務的模型,并處理應用程序強加的服務級別協議( SLA )中的更改。另外,基礎架構團隊通常負責整個 GPU / CPU 場。

假設一個產品團隊要求 MLOps 團隊在 30 毫秒的延遲預算內處理 99% 的請求,為 BERT 大型服務器提供服務。 MLOps 團隊應考慮可用硬件上的各種服務配置,以滿足該要求。使用 Model Analyzer 可以消除執行此操作時的大部分摩擦。

下面的代碼示例是一個名為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 顯示了前三種配置的測量結果,以及它們與默認配置的比較情況。

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

在大規模生產中,軟件和硬件約束會影響生產中的 SLA 。

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

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

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 現在將以下提供的服務配置作為前三個選項,并顯示它們與默認配置的比較情況。

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

總結

隨著企業發現自己在生產中提供越來越多的模型,手動或基于啟發式做出模型服務決策變得越來越困難。手動執行此操作會導致浪費開發時間或模型服務決策不足,這需要自動化工具。

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

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

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

關于作者

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

Burak Yoldeir 是 NVIDIA 的高級數據科學家,專門為消費互聯網行業生產人工智能應用程序。除了前端和后端企業軟件開發之外, Burak 還從事廣泛的 AI 應用程序開發。他擁有加拿大不列顛哥倫比亞大學電氣和計算機工程博士學位。

審核編輯:郭婷

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

    關注

    5

    文章

    1807

    瀏覽量

    60532
  • NVIDIA
    +關注

    關注

    14

    文章

    5594

    瀏覽量

    109778
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90071
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    NVIDIA推出代理式AI藍圖與電信推理模型

    借助全新開源大型電信模型NVIDIA Blueprint,電信運營商能夠利用自有數據訓練 AI 智能體,構建自主網絡。
    的頭像 發表于 03-06 17:37 ?2783次閱讀

    模型 ai coding 比較

    序 我主要用途是 ai coding,從各種渠道獲取到了很多 不同的大模型排序 最多的是 opus 4.6 > k2.5 > glm5 >
    發表于 02-19 13:43

    NVIDIA推動面向數字與物理AI的開源模型發展

    NVIDIA 發布一系列涵蓋語音、安全與輔助駕駛領域的全新 AI 工具,其中包括面向移動出行領域的行業級開源視覺-語言-動作推理模型(Reasoning VLA) NVIDIA DRI
    的頭像 發表于 12-13 09:50 ?1342次閱讀

    利用NVIDIA Cosmos開放世界基礎模型加速物理AI開發

    NVIDIA 最近發布了 NVIDIA Cosmos 開放世界基礎模型(WFM)的更新,旨在加速物理 AI 模型的測試與驗證數據生成。借助
    的頭像 發表于 12-01 09:25 ?1142次閱讀

    AI模型配置AI模型該怎么做?

    STM32可以跑AI,這個AI模型怎么搞,知識盲區
    發表于 10-14 07:14

    什么是AI模型的推理能力

    NVIDIA 的數據工廠團隊為 NVIDIA Cosmos Reason 等 AI 模型奠定了基礎,該模型近日在 Hugging Face
    的頭像 發表于 09-23 15:19 ?1279次閱讀

    NVIDIA通過全新 Omniverse庫、Cosmos物理AI模型AI計算基礎設施,為機器人領域開啟新篇章

    Gaussian Splatting(3DGS)庫支持大規模世界重建 ·?全新 NVIDIA Cosmos 模型支持世界生成與空間推理 ·?全新 NVIDIA RTX PRO Blackwell
    的頭像 發表于 08-12 11:29 ?1788次閱讀
    <b class='flag-5'>NVIDIA</b>通過全新 Omniverse庫、Cosmos物理<b class='flag-5'>AI</b><b class='flag-5'>模型</b>及<b class='flag-5'>AI</b>計算基礎設施,為機器人領域開啟新篇章

    如何本地部署NVIDIA Cosmos Reason-1-7B模型

    下一步行動。本文將一步步帶你在本地服務器上完成該模型的部署,并搭建一個直觀的 Web 交互界面,親身體驗前沿 AI 的“思考”過程。
    的頭像 發表于 07-09 10:17 ?823次閱讀

    歐洲借助NVIDIA Nemotron優化主權大語言模型

    NVIDIA 正攜手歐洲和中東的模型構建商與云提供商,共同優化主權大語言模型 (LLM),加速該地區各行業采用企業級 AI
    的頭像 發表于 06-12 15:42 ?1193次閱讀

    使用NVIDIA Triton和TensorRT-LLM部署TTS應用的最佳實踐

    針對基于 Diffusion 和 LLM 類別的 TTS 模型NVIDIA Triton 和 TensorRT-LLM 方案能顯著提升推理速度。在單張 NVIDIA Ada Love
    的頭像 發表于 06-12 15:37 ?1891次閱讀
    使用<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Triton</b>和TensorRT-LLM部署TTS應用的<b class='flag-5'>最佳</b>實踐

    首創開源架構,天璣AI開發套件讓端側AI模型接入得心應手

    PIX GP模型的整合,并且針對模型進行全鏈路微秒級分析,以確保最佳的端到端性能表現。在雙方的整個合作流程中,開發效率提升了30%。 天璣AI
    發表于 04-13 19:52

    如何在RAKsmart服務器上實現企業AI模型部署

    AI模型的訓練與部署需要強大的算力支持、穩定的網絡環境和專業的技術管理。RAKsmart作為全球領先的服務器托管與云計算服務提供商,已成為企業部署A
    的頭像 發表于 03-27 09:46 ?942次閱讀

    英偉達GTC2025亮點 NVIDIA推出Cosmos世界基礎模型和物理AI數據工具的重大更新

    、Figure AI、Skild AI 是最早采用該技術的公司。 NVIDIA 宣布推出全新 NVIDIA Cosmos 世界基礎模型 (W
    的頭像 發表于 03-20 19:01 ?1347次閱讀

    英偉達GTC25亮點:NVIDIA Dynamo開源庫加速并擴展AI推理模型

    Triton 推理服務器的后續產品,NVIDIA Dynamo 是一款全新的 AI 推理服務軟件,旨在為部署推理
    的頭像 發表于 03-20 15:03 ?1240次閱讀

    利用RAKsmart服務器托管AI模型訓練的優勢

    AI模型訓練需要強大的計算資源、高效的存儲和穩定的網絡支持,這對服務器的性能提出了較高要求。而RAKsmart服務器憑借其核心優勢,成為托管AI
    的頭像 發表于 03-18 10:08 ?701次閱讀