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 ワークスペースに登録できます。 具体的な内容を次に示します。
このドキュメントでは、これらのリソースとアセットの概要を簡単に説明します。
ワークスペース
ワークスペースは、Azure Machine Learning の最上位のリソースで、Azure Machine Learning を使用するときに作成するすべての成果物を操作するための一元的な場所を提供します。 ワークスペースには、スクリプトのログ、メトリック、出力、スナップショットなど、すべてのジョブの履歴が保持されます。 ワークスペースには、データストアやコンピューティングなどのリソースへの参照が格納されます。 また、モデル、環境、コンポーネント、データ アセットなど、すべてのアセットも保持されます。
ワークスペースの作成
CLI v2 を使用してワークスペースを作成するには、次のコマンドを使用します。
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml workspace create --file my_workspace.yml
詳細については、「ワークスペース YAML スキーマ」を参照してください。
コンピューティング
コンピューティングとは、ジョブを実行したり、エンドポイントをホストしたりする、指定されたコンピューティング リソースのことです。 Azure Machine Learning は、次の種類のコンピューティングをサポートしています。
コンピューティング クラスター - クラウド上に CPU または GPU コンピューティング ノードのクラスターを簡単に作成できる、マネージド コンピューティング インフラストラクチャ。
Note
コンピューティング クラスターを作成する代わりに、サーバーレス コンピューティングを使って、コンピューティングのライフサイクル管理を Azure Machine Learning にオフロードします。
コンピューティング インスタンス - 完全に構成および管理される、クラウド上の開発環境。 このインスタンスは、トレーニングまたは推論コンピューティングとして、開発やテストに使用できます。 これは、クラウド上の仮想マシンのようなものです。
推論クラスター - トレーニング済みの機械学習モデルを Azure Kubernetes Service にデプロイするために使用されます。 Azure Machine Learning ワークスペースから Azure Kubernetes Service (AKS) クラスターを作成するか、既存の AKS クラスターをアタッチすることができます。
アタッチ型コンピューティング - 独自のコンピューティング リソースをワークスペースにアタッチし、トレーニングと推論に使用できます。
CLI v2 を使用してコンピューティングを作成するには、次のコマンドを使用します。
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml compute --file my_compute.yml
詳細については、コンピューティング YAML スキーマに関するページを参照してください。
データストア
Azure Machine Learning データストアでは、Azure のデータ ストレージへの接続情報が安全に保持されるため、ご自身のスクリプトでそのコードを書く必要はありません。 データストアを登録および作成すると、ストレージ アカウントに簡単に接続し、基になるストレージ サービスのデータにアクセスできます。 CLI v2 と SDK v2 では、次の種類のクラウドベース ストレージ サービスがサポートされています。
- Azure BLOB コンテナー
- Azure ファイル共有
- Azure Data Lake
- Azure Data Lake Gen2
CLI v2 を使用してデータストアを作成するには、次のコマンドを使用します。
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml datastore create --file my_datastore.yml
詳細については、データストア YAML スキーマに関するページを参照してください。
モデル
Azure 機械学習モデルは、機械学習モデルと対応するメタデータを表すバイナリ ファイルで構成されます。 モデルは、ローカルまたはリモートのファイルやディレクトリから作成できます。 リモートの場所としては、https
、wasbs
、およびazureml
がサポートされています。 作成されたモデルは、指定された名前とバージョンでワークスペース内で追跡されます。 Azure Machine Learning では、モデルのストレージ形式として次の 3 種類がサポートされています。
custom_model
mlflow_model
triton_model
モデルの作成
CLI v2 を使用してモデルを作成するには、次のコマンドを使用します。
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml model create --file my_model.yml
詳細については、「モデル YAML スキーマ」を参照してください。
環境
Azure Machine Learning 環境は、機械学習タスクが行われる環境をカプセル化したものです。 そこでは、トレーニングとスコアリングのスクリプトに関連する、ソフトウェア パッケージ、環境変数、およびソフトウェア設定を指定します。 環境は、Machine Learning ワークスペース内で管理およびバージョン管理されるエンティティです。 環境を使用することで、さまざまなコンピューティング先で再現、監査、移植できる機械学習ワークフローを実現できます。
環境の種類
Azure Machine Learning では、キュレーション環境とカスタム環境の 2 種類がサポートされています。
キュレートされた環境は Azure Machine Learning から提供され、既定でお使いのワークスペースで利用できます。 これらには、現状のまま使用する目的で、Python のパッケージと設定のコレクションが含まれていて、さまざまな機械学習フレームワークの使用を開始する助けとなります。 これらの事前に作成された環境を利用すると、デプロイ時間の短縮も可能です。 完全な一覧については、キュレーションされた環境に関する記事を参照してください。
カスタム環境では、ユーザーが環境を設定し、トレーニング スクリプトやスコアリング スクリプトに必要なパッケージとその他すべての依存関係をコンピューティングにインストールする必要があります。 Azure Machine Learning では以下のものを使用して独自の環境を作成できます
- Docker イメージ
- さらにカスタマイズするための conda YAML を含んだ基本 Docker イメージ
- Docker ビルドのコンテキスト
Azure Machine Learning カスタム環境を作成する
CLI v2 を使用して環境を作成するには、次のコマンドを使用します。
適用対象: Azure CLI ML 拡張機能 v2 (現行)
az ml environment create --file my_environment.yml
詳細については、「環境 YAML スキーマ」を参照してください。
データ
Azure Machine Learning では、さまざまな種類のデータを利用できます。
- URI (ローカル/クラウド ストレージ内の場所)
uri_folder
uri_file
- テーブル (表形式データの抽象化)
mltable
- プリミティブ
string
boolean
number
ほとんどのシナリオでは、URI (uri_folder
および uri_file
) を使用します。これは、ストレージをマウントするか、ノードにダウンロードすることで、ジョブ内のコンピューティング ノードのファイルシステムに簡単にマップできるストレージ内の場所です。
mltable
は、AutoML ジョブ、並列ジョブ、およびいくつかの高度なシナリオで使用される表形式データの抽象化です。 Azure Machine Learning を使用し始めたばかりで、AutoML を使用していない場合は、URI から始めることを強くお勧めします。
コンポーネント
Azure Machine Learning コンポーネントは、機械学習パイプラインで 1 つのステップを実行する自己格納型のコードです。 コンポーネントは、高度な機械学習パイプラインの構成要素です。 コンポーネントは、データ処理、モデル トレーニング、モデル スコアリングなどのタスクを実行できます。 コンポーネントは関数に類似しており、名前とパラメーターを持ち、入力を予想し、出力を返します。