次の方法で共有


CLI (v2) バッチ デプロイ YAML スキーマ

適用対象: Azure CLI ML 拡張機能 v2 (現行)

ソース JSON スキーマは https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json にあります。

Note

このドキュメントで詳しく説明されている YAML 構文は、最新バージョンの ML CLI v2 拡張機能の JSON スキーマに基づいています。 この構文は、ML CLI v2 拡張機能の最新バージョンでのみ動作することが保証されています。 以前のバージョンの拡張機能のスキーマについては、https://azuremlschemasprod.azureedge.net/ でご確認いただけます。

YAML 構文

キー Type 説明 使用できる値 既定値
$schema string YAML スキーマ。 Azure Machine Learning 用 VS Code 拡張機能を使用して YAML ファイルを作成する場合は、ファイルの先頭に $schema を含めることで、スキーマとリソースの入力候補を呼び出すことができます。
name string 必須。 デプロイの名前。
description string デプロイの説明。
tags object デプロイのタグの辞書。
endpoint_name string 必須。 デプロイの作成先となるエンドポイントの名前。
type string 必須。 バス デプロイの種類。 モデルのデプロイには model を、パイプライン コンポーネントのデプロイには pipeline を使います。

バージョン 1.7 の新機能
$ model
settings object デプロイの構成。 使用できる値については、モデルとパイプライン コンポーネントの各 YAML リファレンスを参照してください。

バージョン 1.7 の新機能

ヒント

キー type は、CLI 拡張機能のバージョン 1.7 以降に導入されています。 下位互換性を完全にサポートするために、このプロパティの既定値は model です。 ただし、明示的に指定しない場合、キー settings は適用されません。モデル デプロイ設定のすべてのプロパティは、YAML 仕様のルートで示すことをお勧めします。

モデル デプロイの YAML 構文

type: model の場合、次の構文が適用されます。

キー Type 説明 使用できる値 既定値
model 文字列またはオブジェクト 必須です。 デプロイに使用するモデル。 この値は、ワークスペース内の既存のバージョン管理されたモデルへの参照またはインライン モデルの仕様のいずれかです。

既存のモデルを参照するには、azureml:<model-name>:<version> 構文を使用します。

モデルをインラインで定義するには、モデル スキーマに従います。

運用シナリオのベスト プラクティスとして、モデルを個別に作成し、ここで参照するようにしてください。
code_configuration object スコアリング コード ロジックの構成。

モデルが MLflow 形式の場合、このプロパティは必要ありません。
code_configuration.code string モデルをスコアリングするためのすべての Python ソース コードを格納するローカル ディレクトリ。
code_configuration.scoring_script 文字列 上記のディレクトリ内の Python ファイル。 このファイルには、init() 関数と run() 関数が記述されている必要があります。 init() 関数は、コストのかかる、または一般的な準備を行うときに使用します (たとえば、メモリにモデルを読み込むなど)。 init() は、プロセスの開始時に 1 回だけ呼び出されます。 各エントリをスコアリングするには、run(mini_batch) を使用します。mini_batch の値は、ファイル パスのリストです。 run() 関数からは、Pandas の DataFrame または配列が返されます。 返された要素はそれぞれ、mini_batch 内で成功した入力要素の 1 回の実行を示します。 スコアリング スクリプトを作成する方法の詳細については、「スコアリング スクリプトについて」を参照してください。
environment 文字列またはオブジェクト デプロイに使用する環境。 この値は、ワークスペース内の既存のバージョン管理された環境への参照、またはインライン環境仕様のいずれかになります。

モデルが MLflow 形式の場合、このプロパティは必要ありません。

既存の環境を参照するには、azureml:<environment-name>:<environment-version> 構文を使用します。

環境をインラインで定義するには、環境スキーマに従います。

運用シナリオのベスト プラクティスとして、環境を別途作成し、ここで参照することをお勧めします。
compute string 必須。 バッチ スコアリング ジョブを実行するコンピューティング ターゲットの名前。 この値は、azureml:<compute-name> 構文を使用する、ワークスペース内の既存のコンピューティングへの参照である必要があります。
resources.instance_count 整数 (integer) 各バッチ スコアリング ジョブに使用するノードの数。 1
settings object モデル デプロイの具体的な構成。

バージョン 1.7 で変更されました
settings.max_concurrency_per_instance 整数 (integer) インスタンスあたりの scoring_script の並列実行の最大数。 1
settings.error_threshold 整数 (integer) 無視するファイル エラーの数。 入力全体でのエラーの数がこの値を超えると、ジョブは終了します。 error_threshold は、個々のミニバッチではなく、入力全体を対象としています。 省略した場合、ジョブを終了せずに、任意の数のファイル エラーが許可されます。 -1
settings.logging_level string ログの詳細レベル。 info
settings.mini_batch_size 整数 (integer) code_configuration.scoring_script が 1 回の run() 呼び出しで処理できるファイルの数。 10
settings.retry_settings object 各ミニバッチのスコアリングの設定を再試行します。
settings.retry_settings.max_retries 整数 (integer) 失敗した、またはタイムアウトになったミニバッチの最大再試行回数。 3
settings.retry_settings.timeout 整数 (integer) 1 つのミニ バッチのスコアリングに対するタイムアウト (秒単位)。 ミニバッチのサイズが大きい場合、またはモデルの実行コストが高い場合は、より大きな値を使います。 30
settings.output_action string 出力ファイルで出力がどのように整理されるかを示します。 モデル デプロイの出力のカスタマイズに関する記事で説明されているように、出力ファイルを生成する場合は summary_only を使います。 run() 関数の return ステートメントの一部として予測を返す場合は append_row を使います。 $ append_row
settings.output_file_name string バッチ スコアリングの出力ファイルの名前。 predictions.csv
settings.environment_variables object バッチ スコアリング ジョブごとに設定される環境変数のキーと値のペアの辞書。

パイプライン コンポーネント デプロイの YAML 構文

type: pipeline の場合、次の構文が適用されます。

キー Type 説明 使用できる値 既定値
component 文字列またはオブジェクト 必須。 デプロイに使われるパイプライン コンポーネント。 この値には、ワークスペースまたはレジストリにある既存のバージョン管理されたパイプライン コンポーネントへの参照、またはインライン パイプライン仕様のいずれかを指定できます。

既存のコンポーネントを参照するには、azureml:<component-name>:<version> 構文を使用します。

パイプライン コンポーネントをインラインで定義するには、パイプライン コンポーネント スキーマに従います。

運用シナリオのベスト プラクティスとして、コンポーネントを別途作成し、ここで参照することをお勧めします。

バージョン 1.7 の新機能
settings object パイプライン ジョブの既定の設定。 構成可能なプロパティのセットについては、「settings キーの属性」を参照してください。

バージョン 1.7 の新機能

Remarks

az ml batch-deployment コマンドを使用して、Azure Machine Learning バッチ デプロイを管理できます。

例は、GitHub リポジトリの例にあります。 一部を以下に示します。

YAML: MLflow モデル デプロイ

MLflow モデルを含むモデル デプロイ。この場合、code_configuration または environment を指定する必要はありません。

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300
  error_threshold: -1
  logging_level: info

YAML: スコアリング スクリプトを含むカスタムのモデル デプロイ

使用するスコアリング スクリプトと環境を指定するモデル デプロイ:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
name: mnist-torch-dpl
description: A deployment using Torch to solve the MNIST classification dataset.
endpoint_name: mnist-batch
type: model
model:
  name: mnist-classifier-torch
  path: model
code_configuration:
  code: code
  scoring_script: batch_driver.py
environment:
  name: batch-torch-py38
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
  conda_file: environment/conda.yaml
compute: azureml:batch-cluster
resources:
  instance_count: 1
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 10
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 30
  error_threshold: -1
  logging_level: info

YAML: レガシ モデル デプロイ

属性 type が YAML で指定されていない場合は、モデル デプロイが推論されます。 ただし、キー settings は使用できません。この例で示すように、プロパティは YAML のルートに配置する必要があります。 プロパティ type を常に指定することをお勧めします

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
  max_retries: 3
  timeout: 300
error_threshold: -1
logging_level: info

YAML: パイプライン コンポーネント デプロイ

単純なパイプライン コンポーネント デプロイ:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
name: hello-batch-dpl
endpoint_name: hello-pipeline-batch
type: pipeline
component: azureml:hello_batch@latest
settings:
    default_compute: batch-cluster

次のステップ