次の方法で共有


Azure Machine Learning のしくみ: リソースとアセット

適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)

この記事は、 Azure Machine Learning CLI と Python SDK v2 の 2 番目のバージョンに適用されます。 バージョン 1 (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
    from azure.ai.ml.entities import AmlCompute
    
    # 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 that the connection include a 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"),
)
# Use MLClient to connect to the subscription and resource group and create the workspace.
ml_client.workspaces.begin_create(ws) 

SDK v2 を使用して Azure Machine Learning ワークスペースを作成するその他の方法については、この Jupyter ノートブックを参照してください。

ワークスペースの作成について詳しくは、「ポータルまたは Python SDK (v2) を使用して Azure Machine Learning ワークスペースを管理する」をご覧ください。

Compute

コンピューティングは、ジョブを実行するか、エンドポイントをホストする、指定されたコンピューティング リソースです。 Azure Machine Learning は、次の種類のコンピューティングをサポートしています。

  • コンピューティング インスタンス。 クラウドで完全に構成され、管理された開発環境。 このインスタンスは、トレーニングまたは推論コンピューティングとして、開発やテストに使用できます。 これは、クラウド内の仮想マシンに似ています。
  • コンピューティング クラスター。 クラウドに CPU または GPU コンピューティング ノードのクラスターを簡単に作成できるマネージド コンピューティング インフラストラクチャ。
  • サーバーレス コンピューティング。 その場でアクセスするコンピューティング クラスター。 サーバーレス コンピューティングを使うと、独自のクラスターを作成する必要がありません。 すべてのコンピューティング ライフサイクル管理は、Azure Machine Learning にオフロードされます。
  • 推論クラスター。 トレーニング済みの機械学習モデルを Azure Kubernetes Service (AKS) にデプロイするために使用されます。 Azure Machine Learning ワークスペースから Azure Kubernetes Service クラスターを作成することも、既存の AKS クラスターをアタッチすることもできます。
  • 接続されたコンピュート。 独自のコンピューティング リソースをワークスペースにアタッチし、トレーニングと推論に使用できます。

コンピューティング リソースを作成する

Python SDK v2 を使用してコンピューティング クラスターを作成するには、次のコードを使用できます。

適用対象: Python SDK azure-ai-ml v2 (現行)

from azure.ai.ml.entities import AmlCompute
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)

SDK v2 を使用してコンピューティングを作成するその他の方法については、 この Jupyter ノートブックを参照してください。

コンピューティングの作成について詳しくは、以下をご覧ください。

データストア

Azure Machine Learning データストアは、Azure 上のデータ ストレージの接続情報を安全に保持するため、スクリプトでコードを記述する必要はありません。 データストアを登録および作成すると、ストレージ アカウントに簡単に接続し、基になるストレージ サービスのデータにアクセスできます。 CLI v2 と SDK v2 では、次の種類のクラウドベースのストレージ サービスがサポートされています。

  • Azure BLOB コンテナー
  • Azure ファイル共有
  • Azure Data Lake Storage
  • Azure Data Lake Storage 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)

SDK v2 を使用してデータストアを作成するその他の方法については、 この Jupyter Notebook を参照してください。

データストアの使用の詳細については、「データ資産の作成と管理」を参照してください。

モデル

Azure Machine Learning モデルは、機械学習モデルと対応するメタデータを表す 1 つ以上のバイナリ ファイルで構成されます。 モデルは、ローカルまたはリモートのファイルやディレクトリから作成できます。 リモートの場所としては、httpswasbs、およびazureml がサポートされています。 作成されたモデルは、指定された名前とバージョンでワークスペース内で追跡されます。 Azure Machine Learning では、モデルに対して次の 3 種類のストレージ形式がサポートされています。

  • custom_model
  • mlflow_model
  • triton_model

モデル レジストリでのモデルの作成

モデルの登録によって、モデルを Azure クラウドに格納し、ワークスペースでバージョン管理できます。 モデルのレジストリは、トレーニングしたモデルの整理と追跡に役立ちます。

レジストリでモデルを作成する方法の詳細については、「Azure Machine Learning でモデルを操作する」をご覧ください。

環境

Azure Machine Learning 環境は、機械学習タスクが発生する環境をカプセル化したものです。 トレーニング スクリプトとスコアリング スクリプトのソフトウェア パッケージ、環境変数、およびソフトウェア設定を指定します。 環境は、Machine Learning ワークスペース内で管理およびバージョン管理されたエンティティです。 環境を使用することで、さまざまなコンピューティング先で再現、監査、移植できる機械学習ワークフローを実現できます。

環境の種類

Azure Machine Learning では、キュレーション環境とカスタム環境の 2 種類がサポートされています。

キュレートされた環境は Azure Machine Learning から提供され、既定でお使いのワークスペースで利用できます。 これらには、現状のまま使用する目的で、Python のパッケージと設定のコレクションが含まれていて、さまざまな機械学習フレームワークの使用を開始する助けとなります。 これらの事前に作成された環境により、デプロイ時間も短縮されます。 完全な一覧については、キュレーションされた環境に関する記事を参照してください。

カスタム環境では、ユーザーが環境を設定し、トレーニング スクリプトやスコアリング スクリプトに必要なパッケージとその他すべての依存関係をコンピューティングにインストールする必要があります。 Azure Machine Learning では、次を使用して独自の環境を作成できます。

  • Docker イメージ。
  • さらにカスタマイズするための Conda YAML ファイルを含む基本 Docker イメージ。
  • Docker ビルド コンテキスト。

Azure Machine Learning カスタム環境を作成する

Python SDK v2 を使用した環境の作成については、「 環境の作成」を参照してください。

SDK v2 を使用してカスタム環境を作成するその他の方法については、 この Jupyter ノートブックを参照してください。

環境の詳細については、「 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 コンポーネント は、機械学習パイプラインの 1 つのステップを完了する自己完結型のコードです。 コンポーネントは、高度な機械学習パイプラインの構成要素です。 コンポーネントは、データ処理、モデル トレーニング、モデル スコアリングなどのタスクを実行できます。 コンポーネントは関数に似ています。名前とパラメーターを持ち、入力を受け取り、出力を返します。