Azure 機器學習 的運作方式:資源和資產

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

本文適用於第二版的 Azure 機器學習 CLI 和 Python SDK(v2)。 如需第一版 (v1),請參閱 Azure 機器學習 的運作方式:架構和概念 (v1)

Azure 機器學習 包含數個資源和資產,可讓您執行機器學習工作。 執行任何作業需要這些資源和資產。

  • 資源:設定或基礎結構資源,以執行機器學習工作流程。 資源包括:
  • 資產:使用 Azure 機器學習 命令建立,或作為定型/評分執行的一部分。 資產已建立版本,且可在 Azure 機器學習 工作區中註冊。 其中包括:

本檔提供這些資源和資產的快速概觀。

必要條件

若要使用本文中的 Python SDK 程式代碼範例:

  1. 安裝 Python SDK v2

  2. 建立 Azure 機器學習 訂用帳戶的連線。 範例全都依賴 ml_client。 若要建立工作區,連線不需要工作區名稱,因為您可能還沒有工作區名稱。 本文中所有其他範例都需要將工作區名稱包含在連線中。

    # import required libraries
    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription (use this if you haven't created a workspace yet)
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
    
    # all other examples in this article require the connection to include workspace name
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

工作區

工作區是 Azure Machine Learning 的最上層資源,其提供一個集中位置來處理您在使用 Azure Machine Learning 時建立的所有成品。 工作區會保留所有作業的歷程記錄,包括記錄、計量、輸出,以及腳本的快照集。 工作區會儲存數據存放區和計算等資源的參考。 它也會保存所有資產,例如模型、環境、元件和數據資產。

建立工作區

若要使用 Python SDK v2 建立工作區,您可以使用下列程式代碼:

適用於Python SDK azure-ai-ml v2 (目前)

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    tags=dict(purpose="demo"),
)

ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace

Jupyter Notebook 顯示更多使用 SDK v2 建立 Azure 機器學習 工作區的方法。

計算

計算是您執行作業或裝載端點的指定計算資源。 Azure 機器學習 支援下列類型的計算:

  • 計算實例 - 雲端中完全設定和管理的開發環境。 您可以使用 實體作為開發和測試的定型或推斷計算。 這類似於雲端上的虛擬機。
  • 計算叢集 - 受控計算基礎結構,可讓您輕鬆地在雲端中建立 CPU 或 GPU 計算節點的叢集。
  • 無伺服器計算 - 您即時存取的計算叢集。 當您使用無伺服器計算時,不需要建立自己的叢集。 所有計算生命週期管理都會卸除至 Azure 機器學習。
  • 推斷叢集 - 用來將定型機器學習模型部署至 Azure Kubernetes Service。 您可以從 Azure 機器學習 工作區建立 Azure Kubernetes Service (AKS) 叢集,或鏈接現有的 AKS 叢集。
  • 附加計算 - 您可以將自己的計算資源附加至工作區,並使用它們進行定型和推斷。

建立計算

若要使用 Python SDK v2 建立計算叢集,您可以使用下列程序代碼:

適用於Python SDK azure-ai-ml v2 (目前)

cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)

Jupyter Notebook 顯示更多使用 SDK v2 建立計算的方式。

Datastore

Azure Machine Learning 資料存放區安全保留 Azure 資料儲存體的連線資訊,因此您不需要寫在指令碼中。 您可以註冊並建立數據存放區,以輕鬆地連線到記憶體帳戶,以及存取基礎記憶體服務中的數據。 CLI v2 和 SDK v2 支援下列類型的雲端式記憶體服務:

  • Azure Blob 容器
  • Azure 檔案共用
  • Azure Data Lake
  • Azure Data Lake Gen2

建立資料存放區

若要使用 Python SDK v2 建立資料存放區,您可以使用下列程式代碼:

適用於Python SDK azure-ai-ml v2 (目前)

import AzureBlobDatastore

blob_datastore1 = AzureBlobDatastore(
    name="blob_example",
    description="Datastore pointing to a blob container.",
    account_name="mytestblobstore",
    container_name="data-container",
    credentials={
        "account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
    },
)
ml_client.create_or_update(blob_datastore1)

Jupyter Notebook 顯示更多使用 SDK v2 建立數據存放區的方式。

若要深入瞭解如何使用數據存放區,請參閱 建立和管理數據資產

模型

Azure 機器學習 模型是由二進位檔所組成,代表機器學習模型和任何對應的元數據。 您可以從本機或遠端檔案或目錄建立模型。 針對遠端位置 httpswasbs 支援和 azureml 位置。 建立的模型將會在工作區的指定名稱和版本下追蹤。 Azure 機器學習 支援三種類型的模型記憶體格式:

  • custom_model
  • mlflow_model
  • triton_model

在模型登錄中建立模型

模型註冊可讓您在工作區的 Azure 雲端中儲存模型並建立模型版本。 模型登錄可協助您組織和追蹤已定型的模型。

如需如何在登錄中建立模型的詳細資訊,請參閱在 Azure 機器學習 中使用模型。

Environment

Azure 機器學習 環境是機器學習工作發生所在環境的封裝。 它們會指定定型和評分腳本周圍的軟體套件、環境變數和軟體設定。 這些環境是 機器學習 工作區內的受控和版本設定實體。 環境可在各種計算中啟用可重現、可稽核和可攜式機器學習工作流程。

環境類型

Azure 機器學習 支援兩種類型的環境:策劃和自定義。

策展環境是由 Azure 機器學習 提供,且預設可在您的工作區中使用。 其目的是要依原樣使用,其中包含 Python 套件和設定的集合,可協助您開始使用各種機器學習架構。 這些預先建立的環境也允許更快的部署時間。 如需完整清單,請參閱 策展環境一文

在自定義環境中,您必須負責設定您的環境,以及安裝套件,或定型或評分腳本在計算上所需的任何其他相依性。 Azure 機器學習 可讓您使用 建立自己的環境

  • Docker 映像
  • 具有 conda YAML 的基底 Docker 映射,可進一步自定義
  • Docker 建置內容

建立 Azure 機器學習 自定義環境

若要使用 Python SDK v2 建立環境,請參閱 建立環境

Jupyter Notebook 顯示更多使用 SDK v2 建立自定義環境的方式。

資料

Azure 機器學習 可讓您使用不同類型的數據:

  • URI (本機/雲端記憶體中的位置)
    • uri_folder
    • uri_file
  • 資料表(表格式資料抽象)
    • mltable
    • string
    • boolean
    • number

在大部分情況下,您將使用 URI (uri_folderuri_file) - 記憶體中的位置,可藉由掛接或下載記憶體到節點,輕鬆地對應至作業中計算節點的文件系統。

mltable 是表格式數據的抽象概念,用於 AutoML 作業、平行作業,以及一些進階案例。 如果您剛開始使用 Azure 機器學習 且未使用 AutoML,強烈建議您開始使用 URI。

元件

Azure 機器學習元件是一個獨立程式代碼段,會在機器學習管線中執行一個步驟。 元件是進階機器學習管線的建置組塊。 元件可以執行數據處理、模型定型、模型評分等工作。 元件類似於函式 - 它有名稱、參數、預期輸入,並傳回輸出。

下一步