分享方式:


Azure Machine Learning 的運作方式:資源和資產

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

本文適用於第二版的 Azure Machine Learning CLI 和 Python SDK (v2)。 如需第一版 (v1),請參閱 Azure Machine Learning 運作方式:結構與概念 (v1)

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

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

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

必要條件

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

  1. 安裝 Python SDK v2

  2. 建立 Azure Machine Learning 訂用帳戶的連線。 這些範例全都依賴 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 Machine Learning 工作區的方式。

如需建立工作區的詳細資訊,請參閱在入口網站中或使用 Python SDK (v2) 來管理 Azure Machine Learning 工作區

計算

計算是您可以用來執行工作或是裝載端點的指定計算資源。 Azure Machine Learning 支援下列計算類型:

  • 計算執行個體 - 已完整設定和完全受控的雲端開發環境。 您可以使用執行個體作為開發和測試的定型或推斷計算。 它類似於雲端的虛擬機器。
  • 計算叢集 - 受控計算基礎結構,可讓您輕鬆地在雲端中建立 CPU 或 GPU 計算節點的叢集。
  • 無伺服器計算 - 可即時存取的計算叢集。 當您使用無伺服器計算時,不需要建立自己的叢集。 所有計算生命週期管理都會卸載至 Azure Machine Learning。
  • 推斷叢集 - 可用於將定型的機器學習模型部署到 Azure Kubernetes Service。 您可以從 Azure Machine Learning 工作區建立 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 建立資料存放區的方式。

若要深入了解如何使用資料存放區,請參閱建立及管理資料資產

Model

Azure Machine Learning 模型包含二進位檔案,這些檔案代表機器學習模型和任何對應的中繼資料。 您可以從本機或遠端的檔案或目錄建立模型。 針對遠端位置 https,支援 wasbsazureml 位置。 建立的模型將會在工作區中以指定的名稱和版本被追蹤。 Azure Machine Learning 支援三種類型的模型儲存體格式:

  • custom_model
  • mlflow_model
  • triton_model

在模型登錄中建立模型

模型註冊可讓您在 Azure 雲端中您自己的工作區內儲存模型,以及設定模型的版本。 模型登錄可協助您組織和追蹤已定型模型。

如需如何在登錄中建立模型的詳細資訊,請參閱在 Azure Machine Learning 中使用模型

Environment

Azure Machine Learning 環境是您機器學習工作執行環境的封裝。 這些環境會針對您的定型和評分指令碼指定軟體套件、環境變數和軟體設定。 這些環境是您的機器學習工作區中受控且已建立版本的實體。 環境讓您在各種計算中執行可重現、可稽核和可攜式機器學習工作流程。

環境類型

Azure Machine Learning 支援兩種類型的環境:策展和自訂。

策展環境由 Azure Machine Learning 提供,依預設在工作區中可用。 主要是依原樣使用,含有 Python 封裝和設定的集合,協助您開始使用各種機器學習架構。 這些預先建立的環境也能加快部署時間。 如需完整清單,請參閱策展環境文章

在自訂環境中,您必須負責設定環境,以及安裝計算上定型或評分指令碼所需的套件或任何其他相依性。 Azure Machine Learning 可讓您用以下方式建立自己的環境

  • Docker 映像
  • 具有 conda YAML 基礎的 Docker 映像,以進一步自訂
  • Docker 建置內容

建立 Azure Machine Learning 自訂環境

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

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

如需環境的詳細資訊,請參閱在 Azure Machine Learning 中建立和管理環境

資料

Azure Machine Learning 可讓您使用不同類型的資料:

  • URI (本機/雲端儲存體中的位置)
    • uri_folder
    • uri_file
  • 資料表 (表格式資料抽象概念)
    • mltable
  • 基本型別
    • string
    • boolean
    • number

在大部分情況下,您將使用 URI (uri_folderuri_file) - 儲存體中的位置,它可藉由裝載或下載儲存體至節點,輕鬆地對應至作業中計算節點的檔案系統。

mltable 是表格式資料的抽象概念,用於 AutoML 作業、平行作業和一些進階案例。 如果您剛開始使用 Azure Machine Learning 且未使用 AutoML,我們強烈建議您開始使用 URI。

元件

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