女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

在Azure機器學習上提高人工智能模型推理性能

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

掃碼添加小助手

加入工程師交流群

每個 AI 應用程序都需要強大的推理引擎。無論您是部署圖像識別服務、智能虛擬助理還是欺詐檢測應用程序,可靠的推理服務器都能提供快速、準確和可擴展的預測,具有低延遲(對單個查詢的響應時間較短)和高吞吐量(在給定時間間隔內處理大量查詢)。然而,檢查所有這些方框可能很難實現,而且成本高昂。

團隊需要考慮部署可以利用以下功能的應用程序:

具有獨立執行后端的多種框架( ONNX 運行時、 TensorFlow 、 PyTorch )

不同的推理類型(實時、批量、流式)

用于混合基礎設施( CPUGPU )的不同推理服務解決方案

可以顯著影響推理性能的不同模型配置設置(動態批處理、模型并發)

這些要求使人工智能推理成為一項極具挑戰性的任務,可以通過 NVIDIA Triton 推理服務器 。

這篇文章提供了一個逐步提高 AI 推理性能的教程 Azure 機器學習 使用 NVIDIA Triton 模型分析儀和 ONNX 運行時橄欖 ,如圖 1 所示。

pYYBAGNEy6OASFXXAAE2yB9_A1A913.png

圖 1.使用 ONNX 運行時、 OLive 、 Triton 模型分析器和 Azure 機器學習優化 PyTorch 模型的工作流

工作流優化的機器學習模型

為了提高 AI 推理性能, ONNX Runtime OLive 和 Triton 模型分析器在模型部署之前自動執行參數優化步驟。這些參數定義了底層推理引擎將如何執行。您可以使用這些工具來優化 ONNX 運行時參數 (執行提供程序、會話選項和精度參數),以及 Triton 參數 (動態批處理和模型并發參數)。

階段 1 : ONNX 運行時橄欖優化

如果 Azure 機器學習是您部署 AI 應用程序的地方,那么您可能熟悉 ONNX 運行時。 ONNX Runtime 是微軟的高性能推理引擎,用于跨平臺運行 AI 模型。它可以跨多種配置設置部署模型,目前 Triton ?聲波風廓線儀支持。微調這些配置設置需要專門的時間和領域專業知識。

OLive ( ONNX Runtime Go Live )是一個 Python 包,通過使用 ONNX 運行時自動化加速模型的工作來加速此過程。它提供了兩種功能:將模型轉換為 ONNX 格式和自動調整 ONNX 運行時參數,以最大化推理性能。運行 OLive 將隔離并推薦 ONNX 運行時配置設置,以獲得最佳核心 AI 推理結果。

您可以使用以下 ONNX 運行時參數使用 OLive 優化 ONNX Runtime BERT 小隊模型:

執行提供程序:ONNX Runtime 通過其可擴展執行提供程序( EP )框架與不同的硬件加速庫協作,以在硬件平臺上優化運行 ONNX 模型,該框架可以利用平臺的計算能力優化執行。 OLive 探索了以下執行提供程序的優化:針對 CPU 的 MLA (默認 CPU EP )、英特爾 DNNL 和 OpenVino 、針對 GPU 的 NVIDIA CUDA 和 TensorRT 。

會話選項:OLive 瀏覽 ONNX 運行時會話選項,以找到線程控制的最佳配置,包括 inter_op_num_threads、intra_op_num_threads、execution_mode和graph_optimization_level。

精度:OLive 以不同的精度級別評估性能,包括float32和float16,并返回最佳精度配置。

在運行了優化之后,您仍然可能會在應用程序級別上留下一些性能。使用 Triton 模型分析器可以進一步提高端到端吞吐量和延遲,該分析器能夠支持優化的 ONNX 運行時模型。

第 2 階段: Triton 模型分析器優化

NVIDIA Triton 推理服務器 是一款開源推理服務軟件,有助于標準化模型部署和執行,并在生產中提供快速、可擴展的人工智能推理。圖 2 顯示了 Triton 推理服務器在與客戶端應用程序和多個 AI 模型集成時如何管理客戶端請求。

poYBAGNEy6WAEZ8dAAI2mW4HXaE682.png

圖 2. Triton 推理服務器如何管理客戶端請求

這篇文章將著重于使用 Triton 模型分析器優化兩個主要的 Parabricks 特性:

動態配料:Triton 允許服務器組合推理請求,以便動態創建批處理。這導致在固定延遲預算內增加吞吐量。

并發模型:Triton 允許同一模型的多個模型或實例在同一系統上并行執行。這導致吞吐量增加。

當以最佳級別部署時,這些功能非常強大。當以次優配置部署時,性能會受到影響,使終端應用程序容易受到當前苛刻的服務質量標準(延遲、吞吐量和內存要求)的影響。

因此,基于預期用戶流量優化批量大小和模型并發級別對于充分挖掘 Triton 的潛力至關重要。這些優化 模型配置設置 將在嚴格的延遲約束下提高吞吐量,在部署應用程序時提高 GPU 利用率。該過程可以使用 Triton 模型分析儀實現自動化。

給定一組約束,包括延遲、吞吐量目標或內存占用, Triton 模型分析器根據批量大小、模型并發性或其他[ZGK22]模型配置設置的不同級別,搜索并選擇最大化推理性能的最佳模型配置。部署和優化這些功能后,您將看到令人難以置信的結果。

教程:開始優化推理性能

在 Azure 機器學習上使用 ONNX Runtime OLive 和 Triton 模型分析器部署優化的機器學習模型需要四個步驟:

發射 Azure 虛擬機 使用 NVIDIA GPU 優化的虛擬機映像( VMI )

在模型上執行 ONNX 、 Runtime 、 OLive 和 Triton 模型分析器參數優化

分析和自定義結果

將優化的 Triton ONNX 運行時模型部署到 Azure 機器學習端點上

要完成本教程,請確保您有一個 Azure 帳戶,可以訪問 NVIDIA GPU 支持的虛擬機。例如,使用 Azure ND A100 v4 系列 虛擬機 NVIDIA A100 GPU , NCasT4 v3 系列 對于 NVIDIA T4 GPU 或 NCv3 系列 適用于 NVIDIA V100 GPU 。雖然建議使用 ND A100 v4 系列以獲得最大規模的性能,但本教程使用標準的 NC6s _ v3 虛擬機,使用單個 NVIDIA V100 GPU 。

步驟 1 :使用 NVIDIA 的 GPU 優化 VMI 啟動 Azure 虛擬機

本教程使用 NVIDIA GPU 優化 VMI 在 Azure 市場上可用。它預先配置了 NVIDIA GPU 驅動程序、 CUDA 、 Docker 工具包、運行時和其他依賴項。此外,它還為開發人員構建 AI 應用程序提供了一個標準化堆棧。

為了最大限度地提高性能, NVIDIA 每季度對該 VMI 進行驗證和更新,并提供最新的驅動程序、安全補丁和對最新 GPU 的支持。

有關如何在 Azure VM 上啟動和連接 NVIDIA GPU 優化 VMI 的詳細信息,請參閱 Azure 虛擬機上的 NGC 文檔 。

第 2 步:執行 ONNX Runtime OLive 和 Triton 模型分析器優化

使用 SSH 連接到 Azure 虛擬機并加載 NVIDIA GPU 優化的 VMI 后,即可開始執行 ONNX Runtime OLive 和 Triton 模型分析器優化。

首先,克隆 GitHub 存儲庫并通過運行以下命令導航到內容根目錄:git clone https://github.com/microsoft/OLive.git

接下來,加載Triton 服務器容器請注意,本教程使用版本號 22.06 。

docker run --gpus=1 --rm -it -v “$(pwd)”:/models nvcr.io/nvidia/tritonserver:22.06-py3 /bin/bash

加載后,導航到安裝 GitHub 材料的/models文件夾:

cd /models 

下載 OLive 和 ONNX 運行時包,以及要優化的模型。然后,通過設置以下環境變量,指定要優化的模型的位置:

導出模型_位置= https://olivewheels.blob.core.windows.net/models/bert-base-cased-squad.pth

導出模型_文件名= bert-base-cased-squad.pth

您可以使用您選擇的模型調整上面提供的位置和文件名。為了獲得最佳性能,請直接從 NGC 目錄 這些模型被訓練到高精度,并且具有高級證書和代碼樣本。

接下來,運行以下腳本:

bash download.sh $model_location $export model_filename

腳本將下載三個文件到您的機器上:

  • 橄欖包裝:onnxruntime_olive-0.3.0-py3-none-any.whl
  • ONNX 運行時包:onnxruntime_gpu_tensorrt-1.9.0-cp38-cp38-linux_x86_64.whl
  • PyTorch Model:bert-base-cased-squad.pth

在運行圖 1 中的管道之前,首先通過設置環境變量指定其輸入參數:

  • 出口model_name=bertsquad
  • 出口model_type=pytorch
  • 出口in_names=input_names,input_mask,segment_ids
  • 出口in_shapes=[[-1,256],[-1,256],[-1,256]]
  • 出口in_types=int64,int64,int64
  • 出口out_names=start,end

參數in_namesin_shapesin_types指模型預期輸入的名稱、形狀和類型。在這種情況下,輸入是長度為 256 的序列,但它們被指定為[-1256],以允許對輸入進行批處理。您可以更改與模型及其預期輸入和輸出相對應的參數值。

現在,您可以通過執行以下命令來運行管道:

bash optimize.sh $model_filename $model_name $model_type  $in_names $in_shapes $in_types $out_names

該命令首先安裝所有必要的庫和依賴項,并調用 OLive 將原始模型轉換為 ONNX 格式。

接下來,調用 Triton 模型分析器,自動生成帶有模型元數據的模型配置文件。然后將配置文件傳遞回 OLive ,以通過前面討論的 ONNX 運行時參數(執行提供程序、會話選項和精度)進行優化。

為了進一步提高吞吐量和延遲,然后將 ONNX 運行時優化的模型配置文件傳遞到 Triton 模型庫中,供 Parabricks 模型分析器工具使用。 Triton 模型分析器然后運行profile命令,它設置優化搜索空間,并使用.yaml配置文件指定 Triton 模型存儲庫的位置(見圖 3 )。

pYYBAGNEy6aAPLgwAAOzttjqeE4000.png

圖 3.概要配置文件概述了 Triton 模型分析器搜索空間,以優化推理性能

上述配置文件可用于以多種方式自定義 Triton 模型分析器的搜索空間。該文件需要模型存儲庫的位置、要優化的參數及其范圍,以創建 Triton 模型分析器用于查找最佳配置設置的搜索空間。

第 1-5 行指定了重要的路徑,例如優化模型所在的輸出模型存儲庫的位置。

第 10 行指定了參數 concurrency ,該參數指定了要由性能分析器,它模擬用戶流量。

第 15 行指定了bert_default 模型,其對應于從 PyTorch 到 ONNX 轉換獲得的默認模型。該模型是基線模型,因此使用了動態批處理(第 17 行)和模型并發(第 20 行)的非優化值

第 19 行和第 32 行顯示了在優化過程中必須滿足的 30ms 延遲約束。

第 28 行指定了bertsquad 模型,其對應于橄欖優化模型。此模型與bert_default模型不同,因為此處的動態批處理參數搜索空間設置為 1 、 2 、 4 、 8 和 16 ,模型并發參數搜索空間設為 1 、 3 、 4 和 5 。

profile命令記錄每個并發推理請求級別的結果,并且對于每個并行推理請求級別,記錄 25 個不同參數的結果,因為動態批處理和模型并發參數的搜索空間分別具有五個唯一值,總計等于 25 個不同的參數。請注意,運行此操作所需的時間將隨著圖 3 中概要文件配置文件中搜索空間中提供的配置數量的增加而增加。

腳本然后運行Triton 模型分析儀分析命令使用圖 4 所示的附加配置文件來處理結果。該文件指定了輸出模型存儲庫的位置,其中通過profile命令生成結果,以及將記錄性能結果的 CSV 文件的名稱。

poYBAGNEy6iAOQKTAAMRxzYOlAE914.png

圖 4.分析用于運行analyze命令的配置文件,并處理profile命令的結果

雖然profile和analyze命令可能需要幾個小時才能運行,但優化的模型配置設置將確保部署的模型具有強大的長期推理性能。對于較短的運行時間,調整模型配置文件(圖 3 ),在希望優化的參數上使用較小的搜索空間。

演示運行完成后,將生成兩個文件: optim _ Results 。 png ,如圖 5 所示,以及 Optimal _ ConfigFile _ Location 。 txt ,表示要部署在 Azure 機器學習上的最佳配置文件的位置。建立非優化基線(藍線)。通過 OLive 優化實現的性能提升如圖所示(淺綠線),以及 OLive + Triton 模型分析器優化(深綠線)。

步驟 3 :分析性能結果

pYYBAGNEy6mAfeZfAAJ1kqBNxcI981.png

圖 5.在使用單個 V100 NVIDIA GPU 的 Azure 虛擬機( Standard _ NC6s _ v3 )上應用 OLive plus Triton Model Analyzer 優化配置設置時,推理吞吐量提高了 10 倍。(注意:這不是官方基準。)

基線對應于具有非優化 ONNX 運行時參數( CUDA 后端,具有全精度)和非優化 Triton 參數(無動態批處理和模型并發)的模型。隨著基線的建立,很明顯,從 OLive 和 Triton 模型分析器在各種推理請求并發級別( x 軸)上的優化中獲得的推理吞吐量性能( y 軸)有了很大提升,仿真結果如下:Triton 性能分析儀,一種通過生成推理請求來模擬用戶流量的工具。

OLive 優化通過以混合精度將執行提供程序調整為 TensorRT 以及其他 ONNX 運行時參數,提高了模型性能(淺綠線)。然而,這顯示了沒有 Triton 動態批處理或模型并發的性能。因此,可以使用 Triton 模型分析器進一步優化該模型。

Triton 模型分析器在優化模型并發性和動態批處理后,進一步將推理性能提高了 20% (深綠線)。 Triton 模型分析器選擇的最終最佳值是兩個模型并發性(兩個 BERT 模型副本將保存在 GPU 上)和 16 個最大動態批處理級別(一次最多 16 個推理請求將一起批處理)。

總體而言,使用優化參數的推理性能增益超過 10 倍。

此外,如果您希望應用程序具有特定級別的推理請求,則可以通過配置Triton perf_analyzer.您還可以調整模型配置文件,以包括:要優化的其他參數例如延遲分批。

您現在可以使用 Azure 機器學習部署優化模型了。

步驟 4 :將優化模型部署到 Azure 機器學習端點

部署優化的人工智能模型,以便在使用 Triton 的 Azure 機器學習涉及使用托管在線端點和Azure 機器學習工作室沒有代碼接口。

托管在線端點幫助您以交鑰匙方式部署 ML 模型。它負責服務、擴展、保護和監控您的模型,將您從設置和管理底層基礎設施的開銷中解放出來。

要繼續,請確保已下載Azure CLI,并且手頭有圖 6 所示的 YAML 文件。

poYBAGNEy6qAFNHuAADPaW8kTbY982.png

圖 6.優化 BERT 模型的 YAML 文件

第一注冊您的模型使用上述 YAML 文件以 Triton 格式。您注冊的模型應該類似于圖 7 ,如模型所示 Azure 機器學習工作室的頁面。

poYBAGNEy6yAGLSaAAKW2BSDK4A745.png

圖 7.Azure 機器學習工作室注冊的優化模型

接下來,選擇 Triton 模型,選擇“部署”,然后選擇“部署到實時端點”繼續通過向導將 ONNX 運行時和 Triton 優化模型部署到端點。請注意,將 Triton 模型部署到 Azure 機器學習管理端點時,不需要評分腳本。

祝賀現在,您已經在 Azure 機器學習上部署了一個 BERT 小隊模型,該模型使用 ONNX 運行時和 Triton 參數優化了推理性能。通過優化這些參數,相對于未優化的基線 BERT 小隊模型,您的性能提高了 10 倍。

關于作者

Manuel J.Reyes Gomez 是一位經驗豐富的數據科學和機器學習實踐者。他還是微軟公司的 NVIDIA 開發者關系經理,負責監督兩家公司之間的協作 AI 和 ML 項目。

Emma Ning 是微軟人工智能框架團隊的主要項目經理,專注于人工智能模型的操作和加速,以及開放和可互操作人工智能的 ONNX / ONNX 運行時。她在利用機器學習技術的搜索引擎領域擁有超過五年的產品經驗,并花了六年多的時間探索人工智能在各種企業中的應用。她熱衷于引入人工智能解決方案來解決業務問題,并提高產品體驗。

Lei Qiao 是微軟人工智能框架團隊的軟件工程師,專注于深度學習模型推理加速。她在將這些加速技術集成到不同的機器學習平臺方面也很有經驗。

Rohil Bhargava 是 NVIDIA 的產品營銷經理,專注于在特定 CSP 平臺上部署 NVIDIA 應用程序框架和 SDK 。在加入 NVIDIA 之前,羅希爾曾擔任金融服務行業的顧問和產品經理。他的工作加速了人工智能在銀行遺留決策過程中的采用和分析工作流。他目前在卡內基梅隆大學攻讀技術戰略 MBA ,并擁有西北大學工業工程和經濟學學士學位。

審核編輯:郭婷

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

    關注

    13

    文章

    9795

    瀏覽量

    87973
  • 人工智能
    +關注

    關注

    1806

    文章

    49014

    瀏覽量

    249431
  • 機器學習
    +關注

    關注

    66

    文章

    8503

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    最新人工智能硬件培訓AI 基礎入門學習課程參考2025版(大模型篇)

    人工智能模型重塑教育與社會發展的當下,無論是探索未來職業方向,還是更新技術儲備,掌握大模型知識都已成為新時代的必修課。從職場上輔助工作的智能
    發表于 07-04 11:10

    模型推理顯存和計算量估計方法研究

    隨著人工智能技術的飛速發展,深度學習模型各個領域得到了廣泛應用。然而,大模型推理過程對顯存
    發表于 07-03 19:43

    C#集成OpenVINO?:簡化AI模型部署

    什么是OpenVINO 工具套件? OpenVINO 工具套件是一個用于優化和部署人工智能(AI)模型,提升AI推理性能的開源工具集合,不僅支持以卷積神經網
    的頭像 發表于 02-17 10:03 ?1987次閱讀
    C#集成OpenVINO?:簡化AI<b class='flag-5'>模型</b>部署

    使用NVIDIA推理平臺提高AI推理性能

    NVIDIA推理平臺提高了 AI 推理性能,為零售、電信等行業節省了數百萬美元。
    的頭像 發表于 02-08 09:59 ?714次閱讀
    使用NVIDIA<b class='flag-5'>推理</b>平臺<b class='flag-5'>提高</b>AI<b class='flag-5'>推理性能</b>

    【「具身智能機器人系統」閱讀體驗】2.具身智能機器人大模型

    近年來,人工智能領域的大模型技術多個方向上取得了突破性的進展,特別是機器人控制領域展現出了巨大的潛力。
    發表于 12-29 23:04

    《具身智能機器人系統》第7-9章閱讀心得之具身智能機器人與大模型

    共同挑戰:如何從高維噪聲數據中提取有效特征?如何平衡模型復雜度和計算效率?如何保證系統真實環境中的穩定性?書中提出的技術方案對我的工作很有啟發。多模態融合策略可用于處理異構數據源,元學習思想可指導增量
    發表于 12-24 15:03

    【「具身智能機器人系統」閱讀體驗】+數據具身人工智能中的價值

    嵌入式人工智能(EAI)將人工智能集成到機器人等物理實體中,使它們能夠感知、學習環境并與之動態交互。這種能力使此類機器人能夠
    發表于 12-24 00:33

    Arm KleidiAI助力提升PyTorchLLM推理性能

    生成式人工智能 (AI) 正在科技領域發揮關鍵作用,許多企業已經開始將大語言模型 (LLM) 集成到云端和邊緣側的應用中。生成式 AI 的引入也使得許多框架和庫得以發展。其中,PyTorch 作為
    的頭像 發表于 12-03 17:05 ?1487次閱讀
    Arm KleidiAI助力提升PyTorch<b class='flag-5'>上</b>LLM<b class='flag-5'>推理性能</b>

    Arm成功將Arm KleidiAI軟件庫集成到騰訊自研的Angel 機器學習框架

    KleidiAI 技術融入騰訊混元自研的 Angel 機器學習框架。這一合作旨在提高移動端人工智能 (AI) 服務的推理性能和效率,為用戶
    的頭像 發表于 11-24 15:33 ?1281次閱讀

    嵌入式和人工智能究竟是什么關系?

    領域,如工業控制、智能家居、醫療設備等。 人工智能是計算機科學的一個分支,它研究如何使計算機具備像人類一樣思考、學習推理和決策的能力。人工智能
    發表于 11-14 16:39

    《AI for Science:人工智能驅動科學創新》第二章AI for Science的技術支撐學習心得

    人工智能在科學研究中的核心技術,包括機器學習、深度學習、神經網絡等。這些技術構成了AI for Science的基石,使得AI能夠處理和分析復雜的數據集,從而發現隱藏在數據中的模式和規
    發表于 10-14 09:16

    《AI for Science:人工智能驅動科學創新》第一章人工智能驅動的科學創新學習心得

    人工智能:科學研究的加速器 第一章清晰地闡述了人工智能作為科學研究工具的強大功能。通過機器學習、深度學習等先進技術,AI能夠處理和分析海量
    發表于 10-14 09:12

    risc-v人工智能圖像處理應用前景分析

    人工智能推薦系統中強大的圖形處理器(GPU)一爭高下。其獨特的設計使得該處理器功耗受限的條件下仍能實現高性能的圖像處理任務。 Ceremorphic公司 :該公司開發的分層學習處理
    發表于 09-28 11:00

    開箱即用,AISBench測試展示英特爾至強處理器的卓越推理性能

    。 中國電子技術標準化研究院賽西實驗室依據國家標準《人工智能服務器系統性能測試規范》(征求意見稿)相關要求,使用AISBench?2.0測試工具,完成了第五代英特爾至強可擴展處理器的AI大模型
    的頭像 發表于 09-06 15:33 ?822次閱讀
    開箱即用,AISBench測試展示英特爾至強處理器的卓越<b class='flag-5'>推理性能</b>

    FPGA人工智能中的應用有哪些?

    FPGA(現場可編程門陣列)人工智能領域的應用非常廣泛,主要體現在以下幾個方面: 一、深度學習加速 訓練和推理過程加速:FPGA可以用來加速深度
    發表于 07-29 17:05