• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    計算機視覺/視頻分析

    使用 NVIDIA TAO 工具包和 Azure 機器學習創建自定義 AI 模型

    目前,人工智能應用程序的構建和部署方式正在發生根本性轉變。人工智能應用越來越復雜,并應用于更廣泛的用例。這需要端到端的人工智能生命周期管理,從數據準備到模型開發和培訓,再到人工智能應用程序的部署和管理。這種方法可以降低前期成本,提高可擴展性,并降低客戶使用 AI 應用程序的風險。

    雖然云原生的應用程序開發方法對開發人員很有吸引力,但機器學習( ML )項目是出了名的時間密集型和成本密集型項目,因為它們需要一個擁有多種技能的團隊來構建和維護。

    這篇文章解釋了如何使用 NVIDIA TAO Toolkit 加速視覺 AI 模型開發,并將其部署到 NVIDIA Triton Inference Server 中進行推理,所有這些都在 Azure 機器學習( Azure ML )平臺上。

    NVIDIA Triton 推理服務器是一款開源推理服務軟件,幫助標準化模型部署和執行,并在生產中提供快速和可擴展的 AI 。

    Azure ML 是一種用于加速和管理機器學習項目生命周期的云服務,使開發人員能夠自動化人工智能工作流,從數據準備、模型培訓到模型部署。開發人員可以使用 Azure ML 輕松地大規模培訓、部署和管理 AI 模型。

    觀看下面的視頻,了解如何使用 NVIDIA TAO 工具包微調您的模型,并在 Azure ML 上使用 NVIDIA Triton 推理服務器部署它們進行推理的完整演練。

    視頻 1 。在 Azure 機器學習上使用 NVIDIA TAO 工具包創建和部署自定義 AI 模型

    整個工作流程包括三個主要步驟:

    • 安裝 NGC Azure ML 快速啟動工具包
    • 訓練和優化預訓練的對象檢測模型
    • 使用 NVIDIA Triton 推理服務器在 Azure ML 上部署優化模型
    Diagram of the overall workflow starting from running the quick launch toolkit, to training and deploying with NVIDIA Triton Inference Server.
    圖 1 。在 Azure ML 上運行 NVIDIA TAO Toolkit 的工作流

    本節介紹安裝 NGC 快速啟動工具包所需的步驟,該工具包配置 Azure ML 資源并上載必要的容器和模型以供培訓。所需的配置文件在 NVIDIA NGC Catalog 上的 AzureML Quick Launch – TAO 資源上提供。

    使用以下代碼創建 conda 環境以安裝 Azure ML 快速啟動工具包,以避免與計算機中的現有庫發生任何可能的沖突:

    conda create -n azureml-ngc-tools python=3.8
    conda activate azureml-ngc-tools

    使用以下代碼安裝 Azure ML 快速啟動工具包:

    pip install azureml-ngc-tools

    AzureML Quick Launch: TAO 下載資源:

    wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/tao_detectnet_aml/versions/version1/zip -O azureml_quick_launch_tao_1.zip

    文件內容

    • azure_config.json文件包含與需要更新的用戶憑據、 Azure 工作區和 GPU 計算資源有關的詳細信息。使用 Azure 訂閱 ID 、資源組和工作區名稱編輯azureml_user部分。接下來,用 GPU 集群詳細信息編輯aml_compute部分。
      • 推薦的虛擬機: NCsv3 、 NDv2 或 NC A100 v4 或 ND A100 v4 系列
      • 操作系統: Ubuntu 20.04
      • 要了解有關 Azure VM 的更多信息,請參閱 Virtual Machine series 。要了解如何啟動 Azure VM 實例,請參閱 Azure documentation
    • ngc_config.json文件包含 NGC 目錄中的內容,例如 Docker 容器和 Jupyter 筆記本,您可以將其上載到 Azure 機器學習資源中。
    • 打包了幾個腳本,將用于模型部署。
    • 使用以下代碼運行工具包:
    azureml-ngc-tools --login azure_config.json --app ngc_config.json

    這將將所有資源上載到 Azure ML 數據存儲。上傳后,會為 Jupyter 會話生成一個 URL ,使您能夠從本地 web 瀏覽器與會話交互。您可以驗證所有資源都已上載到 Azure ML 門戶中。上面的視頻中提供了檢查 Azure ML 門戶中資源的步驟。

    使用 NVIDIA TAO 工具包訓練和優化對象檢測模型

    本節介紹在 Azure ML 平臺上使用 NVIDIA TAO 工具包培訓模型的步驟。

    在開始培訓過程之前,您需要運行名為CopyData.ipynb的輔助筆記本。筆記本電腦由azureml-ngc-tools自動生成。這會將筆記本從數據存儲區復制到計算集群。

    Screenshot of the CopyData.ipynb Jupyter notebook that user executes to copy notebooks from datastore to VM.
    圖 2.CopyData.ipynb用于將筆記本從數據存儲復制到計算集群的 Jupyter 筆記本

    將創建一個名為tao的新文件夾,其中包含提供的所有附加數據。此文件夾包含 Jupyter 筆記本以及培訓所需的配置文件。導航到文件夾tao/detectnet_V2下的TAO_detectnet_v2.ipynb筆記本。DetectNet_v2是可用于培訓的眾多計算機視覺筆記本之一。

    Screenshot of TAO DetectNet_v2 notebook that is used for training the model.
    圖 3.TAO DetectNet_v2用于訓練模型的 Jupyter 筆記本

    加載筆記本后,只需執行顯示的每個單元格。有關此網絡或如何配置超參數的更多信息,請參閱 TAO Toolkit documentation 。筆記本中包含的一些主要步驟包括:

    • 設置環境變量
    • 下載和轉換培訓數據
    • 從 NGC 目錄下載模型
    • 培訓模型
    • 修剪模型以刪除不需要的圖層并減小模型大小
    • 重新修剪模型以恢復丟失的精度
    • 量化感知訓練( QAT ),將模型的精度更改為 INT8 ,在不犧牲精度的情況下減小模型大小
    • 導出模型以進行推斷

    在計算集群上生成模型后,您需要將模型上載到 Azure ML 工作區。要上傳,請運行UploadData.ipnyb筆記本將模型復制到數據存儲。此模型將用于部署。

    使用 NVIDIA Triton 推理服務器部署模型

    接下來,使用 NVIDIA Triton 推理服務器部署導出的模型。使用 NVIDIA TAO 工具包在上一步驟中訓練的模型,并將其存儲在數據存儲中。直接從數據存儲中提取模型。

    上傳模型后,將 NVIDIA Triton 容器推送到 Azure 容器注冊表( ACR ),創建推斷終點,并使用一些示例圖像對其進行測試。

    注冊模型進行推斷

    接下來的步驟需要上傳模型進行推斷。從數據存儲中上載經過訓練的模型。導航到 Azure Machine Learning Studio 以加載本地模型。

    1.登錄后,使用azureml-ngc-tool腳本轉到 Azure ML 工作區(之前創建的)。從左側菜單中選擇“型號”,然后單擊“注冊”和“從數據存儲”

    Screenshot of where to register the model for deployment from Azure ML Studio.
    圖 4 。注冊模型以進行部署 來自 Azure ML Studio

    2.選擇“ Triton ”模型類型以上載模型。

    Screenshot of options to choose for model upload from Azure ML Studio.
    圖 5 。上載模型 來自 Azure ML Studio

    3.瀏覽并選擇路徑:tao/detectnet _v2/model _repository

    Screenshot of options to choose when selecting model from datastore.
    圖 6 。數據存儲選擇

    4.將模型命名為“ DetectNet ”,并將版本設置為“ 1 ”

    Screenshot of model settings during register model phase.
    圖 7 。注冊模型

    5.模型成功上傳后,您應該能夠看到目錄
    structure.

    Screenshot of model artifacts in Azure ML model store.
    圖 8 。 Azure ML 模型存儲中的模型工件

    生成 NVIDIA Triton 映像并將其上載到 Azure 容器注冊表

    接下來,使用必要的依賴項構建 NVIDIA Triton 容器,并將圖像上載到 Azure 容器注冊表( ACR )。

    1.在本地計算機上,運行以下腳本以創建具有必要依賴項的 NVIDIA Triton 容器:

    bash scripts/build_container.sh

    2.通過執行以下操作驗證圖像是否已在本地創建:

    docker image ls

    如果成功,您應該看到名為nvcr.io/nvidia/tao/triton-apps的回購。

    3.使用以下腳本將 Docker 圖像推送到 ACR :

    bash scripts/push_container_to_ACR.sh <registryname>

    registryname參數是提供的 Azure ML 工作區默認容器注冊表的名稱。導航到工作區基本屬性儀表板,在 Azure 門戶中找到它。該腳本將 Docker 圖像推送到 ACR ,并將其標記為${registryname}.azurecr.io/tao:latest

    Screenshot to get the Container Registry name. This is where the container will be uploaded.
    圖 9 。獲取將上載容器的容器注冊表名稱

    腳本完成后,導航到 ACR 以查看tao存儲庫中的容器。

    創建 Azure ML 端點和部署

    在本地計算機上,運行以下腳本以創建 Azure ML Endpoint ,然后進行部署:

    bash scripts/create_endpoint _and_deployment.sh <registryname>

    該腳本將使用endpoint_aml.yml文件中提供的端點名稱創建 Azure ML 端點。然后,它使用deployment_aml.yml文件在 Azure 上部署 NVIDIA Triton 服務。

    在此文件中,您可以指定 VM 大小。在本例中,使用Standard_NC6s_v3 VM 。scripts/auxiliary_files中提供了這些文件。

    腳本執行完成后,您應該能夠在 Azure 門戶上看到部署信息、 REST 端點和身份驗證密鑰。通過單擊端點并導航到部署日志選項卡,可以找到部署信息。

    Screenshot of the Triton deployment endpoint with deployment name, REST endpoints and authentication key.
    圖 10 。 NVIDIA Triton 部署端點

    驗證終結點

    您可以使用 REST 端點 URL 和在 Azure 門戶的“端點”選項卡下找到的主鍵來驗證端點。若要從用戶本地計算機查詢 Azure ML 端點,請運行以下腳本:

    bash scripts/infer.sh <REST API endpoint> <Primary key> <input image> <output path>

    該腳本在第一步中從 AzureML Quick Launch : TAO 獲取的 zip 文件中提供。

    接下來,從 NVIDIA Triton 部署端點提供 REST 端點 URL 。使用<input_image>選項提供的測試圖像查詢端點。帶有邊界框的輸出圖像存儲在<output path>中。

    總結

    這篇文章展示了使用 NVIDIA TAO 工具包微調模型以及使用 NVIDIA Triton 推理服務器部署經過訓練的對象檢測模型的端到端工作流,所有這些都在 Azure 機器學習上。這些工具消除了人工智能框架的復雜性,使您能夠在生產中構建和部署人工智能應用程序,而無需人工智能專業知識。

    ?

    ?

    0

    標簽

    人人超碰97caoporen国产