CLI (v2) を使用してワークスペースの資産を管理する
Azure Machine Learning 内では、コンピューティング リソース、環境、データセットなどの資産を使用して機械学習モデルをトレーニングするのが一般的です。 Azure CLI を使用すると、それらの資産を簡単に作成および管理できます。
あなたは機械学習モデルをトレーニングして、作成したワークスペースで顧客離反を予測したいと考えています。 モデルをトレーニングするノートブックを実行するには、Azure Machine Learning ワークスペースにコンピューティング リソースと環境を作成する必要があります。 ノートブックでは CSV データセットを使用します。そのデータを参照するために、ワークスペースにもデータセットを作成します。
Azure CLI (v2) を使用して、Azure Machine Learning ワークスペースにコンピューティング リソース、環境、データセットを作成する方法について説明します。
コンピューティング リソース
Azure Machine Learning ワークスペースで Python のノートブックまたはスクリプトを実行するには、コンピューティング リソースが必要です。 モデルのトレーニングに最も一般的に使用されるコンピューティング リソースには、次の 2 種類があります。
- コンピューティング インスタンス: コンピューティング インスタンスは、開発環境として使用できるクラウドベースのワークスペースです。 ノートブックやスクリプトで共同作業を行うために、コンピューティング インスタンスで Jupyter や VS Code などのツールを使用することができます。 コンピューティング インスタンスの VM サイズを選択し、スケジュールに基づいて手動または自動で開始および停止することができます。
- コンピューティング クラスター: コンピューティング クラスターは、ジョブが送信されると自動的にスケールアップされるマネージド コンピューティング インフラストラクチャです。 選択した VM サイズに基づいて、単一または複数ノードのコンピューティング クラスターを作成できます。 コンピューティング クラスターがより一般的に使用されるのは、スケジュールされたジョブやパイプラインを実行する場合です。
コンピューティング インスタンスを作成する
データ サイエンス チームは、機械学習プロジェクトでより効果的に共同作業するために Azure Machine Learning を使用したいと言っています。 ほとんどのデータ サイエンティストは、自分のコンピューターで Jupyter を使用していました。 顧客離反プロジェクトを Azure Machine Learning に移行する最も簡単な方法は、データとノートブックを取得し、コンピューティング インスタンスでノートブックを実行することです。
CLI (v2) を使用してコンピューティング インスタンスを作成するには、az ml compute create
コマンドを使用します。 次のパラメーターを決定する必要があります。
--resource-group
: リソース グループの名前。az configure --defaults group=<name>
を使用して既定のグループを構成した場合、このパラメーターを使用する必要はありません。--workspace-name
: Azure Machine Learning ワークスペースの名前。az configure --defaults workspace=<name>
を使用して既定のワークスペースを構成した場合、このパラメーターを使用する必要はありません。--name
: コンピューティング先の名前。 この名前は 24 文字未満で、Azure リージョン内で一意である必要があります。--size
: コンピューティング インスタンスに使用する VM サイズ。 サポートされている VM シリーズとサイズの詳細を確認してください。--type
: コンピューティング先の種類。 コンピューティング インスタンスを作成するには、ComputeInstance
を使用します。
注意
すべてのコード例では、既定のリソース グループと Azure Machine Learning ワークスペースが構成されていることを想定しています。
顧客離反モデルをトレーニングするコンピューティング インスタンスを作成するには、次のコマンドを使用します。
az ml compute create --name "testdev-vm" --size STANDARD_DS11_V2 --type ComputeInstance
CLI (v2) を使用してコンピューティング リソースを作成する方法の詳細については、「az ml compute create」を参照してください。
コンピューティング クラスターを作成する
最初は、コンピューティング インスタンスでノートブックを実行して、顧客離反モデルをトレーニングする予定です。 成功したら、コンピューティング クラスターを使用してそのモデルをトレーニングします。 コンピューティング クラスターを使用してモデルをトレーニングすると、必要に応じて、モデルを再トレーニングするジョブをスケジュールできます。
CLI (v2) を使用してコンピューティング クラスターを作成するには、az ml compute create
コマンドを使用します。 コンピューティング クラスターの作成時に含めることができる追加の設定を次に示します。
--type
: コンピューティング クラスターを作成するには、AmlCompute
を使用します。--min-instances
: クラスターで使用されるノードの最小数。 既定値は 0 ノードです。--max-instances
: ノードの最大数。 既定値は 4 です。
az ml compute create --name "aml-cluster" --size STANDARD_DS11_V2 --max-instances 2 --type AmlCompute
コンピューティング クラスターを作成および管理する方法の詳細については、Azure Machine Learning コンピューティング クラスターを作成する方法に関する記事を参照してください。
環境の作成
あなたは今後、必要に応じてコンピューティング クラスターを使用してモデルを再トレーニングするつもりです。 コンピューティング インスタンスまたはコンピューティング クラスターでモデルをトレーニングするには、コードを実行するために必要なすべてのパッケージをコンピューティングにインストールする必要があります。 新しいコンピューティングを使用するたびにこれらのパッケージを手動でインストールする代わりに、環境にそれらをリストできます。
すべての Azure Machine Learning ワークスペースには、ワークスペースの作成時に選別された環境の一覧が既定で保持されます。 選別された環境には、モデルをトレーニングするための一般的な機械学習パッケージが含まれています。
選別された環境がいずれもニーズを満たさないので、独自の環境を作成する必要がある場合は、az ml environment create
コマンドを使用して作成できます。
az ml environment create --file basic-env.yml
いつでも再利用できる環境をワークスペース内に作成するには、YAML ファイルを参照する必要があります。 そのファイルでは次の項目を指定できます。
- ワークスペースで認識されている環境の名前。
- 環境のバージョン。
- ベース Docker イメージ。
- 使用するパッケージとライブラリがリストされた Conda 環境ファイルへのローカル パス。
Conda 環境ファイルは、次のような別の YAML にすることができます。
name: basic-env-ml
channels:
- conda-forge
dependencies:
- python=3.8
- pip
- pip:
- numpy
- pandas
- scikit-learn
- matplotlib
- azureml-mlflow
Conda 環境ファイルを参照する、環境を作成するための YAML ファイルは、次のようになります。
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: basic-env-scikit
version: 1
image: mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04
conda_file: file:conda-envs/basic-env-ml.yml
両方の YAML ファイルが、環境を作成するコマンドを実行するコンピューターと同じコンピューターにローカルに格納されるようにします。 CLI (v2) を使用して作成された環境の例については、Azure Machine Learning リポジトリの例を参照してください。
ワークスペース内のすべての環境の一覧を取得するには、az ml environment list
コマンドを使用します。 この一覧には、選別された環境とカスタム環境の両方が表示されます。 すべての環境は、[環境] タブの Azure Machine Learning Studio にも表示されます。
Azure ML 環境を管理するためのコマンドの詳細を確認してください。
登録されている環境はすべて Azure Machine Learning ワークスペースに保持され、モデルのトレーニングやジョブの実行を行うときにいつでも使用できます。
データセット資産を作成する
データ サイエンティストは、あなたに Python ノートブックと CSV データセットを提供します。 あなたは作成したコンピューティング インスタンスでノートブックを実行して、Azure Machine Learning ワークスペース内のモデルのトレーニングをテストしたいと考えています。 CSV データセットをコンピューティング インスタンスにアップロードすることもできますが、テストが終わったら、コンピューティング クラスターを使用してモデルをトレーニングするつもりです。 今後の利便性を高めるために、ワークスペースに接続されているデータストアに CSV をアップロードし、モデルのトレーニング時に使用する CSV を参照するデータセットを作成する必要があります。
CSV は、コンピューター上にローカル ファイルとして保持しています。 CLI (v2) を使用して、ワークスペースにデータセット資産を作成します。 その後、Azure Machine Learning によって、ワークスペースの既定のデータストアに CSV が自動的にアップロードされます。 既定のデータストアは、変更していない限り、ワークスペースと共に作成されたストレージ アカウントです。
ローカル ファイルからデータセット資産を作成するには、次の操作を行う必要があります。
- ローカル ファイルを参照する YAML 仕様ファイルを作成します。
az ml dataset create
コマンドを実行します。
YAML ファイルには次の項目を含めます。
- ワークスペースに表示されるデータセット資産の名前。
- データセット資産のバージョン。
- データ ファイルへのローカル パス。
- 必要に応じて、説明を追加できます。
YAML ファイルと CSV データセットをコンピューター上の任意の場所に格納します。
$schema: https://azuremlschemas.azureedge.net/latest/asset.schema.json
name: customer-churn-data
version: 1
local_path: customer-churn.csv
description: Dataset pointing to customer churn CSV on local computer. Data will be uploaded to default datastore.
シェル プロンプトから、YAML ファイルと CSV を含むフォルダーに移動します。 次に、次のコマンドを実行して、ワークスペースにデータセットを作成します。
az ml dataset create --file data-local-path.yml
データを既定のデータストアにアップロードすると、データのアップロードの進行状況がプロンプトに表示されます。 完了すると、Azure ML Studio を開くときに、ワークスペースの [データセット] タブにデータセットが表示されます。 または、list コマンドを使用して、ワークスペース内のすべてのデータセットを一覧表示できます。
az ml dataset list
Azure ML データセット資産を管理するためのコマンドの詳細を確認してください。
ワークスペースにアクセスできるすべてのユーザーがデータセットを使用できるようになりました。 ジョブを実行してモデルをトレーニングするときに、データセットを参照して、ジョブの入力として使用できます。
重要
CLI (v2) を使用してコンピューティング、環境、データセットなどの資産を作成するときに、YAML ファイルを使用して構成を定義できます。 資産の作成に使用される YAML ファイルの他の例については、CLI (v2) 用の Azure Machine Learning サンプル リポジトリを参照してください。