Azure Machine Learning ジョブを作成する

完了

機械学習モデルを運用化するための最初の手順は、Azure Machine Learning ジョブとして実行することです。 個々のスクリプトをコマンド ジョブとして実行することも、スクリプトのグループをパイプライン ジョブとして実行することもできます。

データ サイエンス チームから、データの読み込み、変換、トレーニングが行われる Jupyter Notebook で作業するように言われました。 運用環境用にコードとモデルを準備するには、次のことを行う必要があります。

  • Notebook をスクリプトにリファクタリングする。
  • ジョブ定義のスクリプトを参照する。
  • モデルをトレーニングするためのジョブをトリガーする。

コードをスクリプトにリファクタリングする

運用環境用に機械学習モデルを準備するには、まず運用環境用にコードを準備する必要があります。 運用コードに変換する必要がある Jupyter Notebook がある場合は、次のことを行う必要があります。

  • 不要なコードを消去する。
  • コードを Python スクリプトにエクスポートする。
  • スクリプトで関数を使用する。

スクリプトで関数を使用すると、コード品質をテストしやすくなります。 実行するスクリプトがある場合は、Azure Machine Learning ジョブを使用してコードを実行できます。

Azure Machine Learning ジョブを定義する

Azure Machine Learning でジョブを定義するために、YAML ファイルを作成できます。 1 つのスクリプトをコマンド ジョブとして実行するか、複数のスクリプトをパイプラインとして順番に実行したいと考えています。 コマンドとパイプライン ジョブの両方で、次の詳細を示す YAML ファイルを作成する必要があります。

  • 実行するスクリプト。
  • 各スクリプトの入力と出力。
  • スクリプトの実行に使用されるコンピューティング。
  • スクリプトを実行するためにコンピューティングにインストールする必要がある環境。

main.py スクリプトの実行時に登録済みデータ資産を入力として使用するコマンド ジョブの例を次の YAML に示します。

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python main.py 
  --diabetes-csv ${{inputs.diabetes}}
inputs:
  diabetes:
    path: azureml:diabetes-data:1
    mode: ro_mount
environment: azureml:basic-env-scikit@latest
compute: azureml:aml-instance
experiment_name: diabetes-data-example
description: Train a classification model on diabetes data using a registered dataset as input.

YAML ファイルには、含める必要がある必要な詳細があります。

  • code は、実行するスクリプトを格納するローカル フォルダーを指します。 command キーでは、main.py パラメーターの src の値を使用して、inputs.diabetes フォルダー内の diabetes-csv スクリプトを実行する必要があることを指定します。
  • Azure Machine Learning ワークスペースの登録済みデータ資産 diabetes-data のバージョン 1 は、スクリプトの入力として使用されるコンピューティングにマウントされます。
  • コンピューティング インスタンス aml-instance は、スクリプトの実行に使用されます。
  • スクリプトを実行する前に、登録済みのカスタム basic-env-scikit 環境の最新バージョンがコンピューティング インスタンスにインストールされます。

ジョブの YAML 定義をテストするために、CLI v2 を使用してトリガーできます。

Azure Machine Learning ジョブをトリガーする

Azure Machine Learning ジョブを実行する場合は常に、CLI v2 を使用できます。 CLI v2 をローカル デバイスにインストールすることも、Azure Cloud Shell を使用することもできます。

ローカル デバイスから実行をトリガーする場合でも、Azure Cloud Shell を使用する場合でも、最初に Azure Machine Learning 拡張機能をインストールする必要があります。

Windows にインストールするには、次のコマンドを使用します。

az extension add -n ml -y

CLI 用の Azure Machine Learning 拡張機能をインストールし、使用する Azure サブスクリプションにアクセスできたら、次のコマンドを使って Azure Machine Learning ジョブを送信できます。

az ml job create --file job.yml

注意

CLI (v2) を使用して Azure Machine Learning ジョブを管理する方法の詳細については、az ml ジョブ リファレンス ドキュメントを参照してください。