CLI (v2) マネージド オンライン デプロイ YAML スキーマ
適用対象: Azure CLI ml 拡張機能 v2 (現行)
ソース JSON スキーマは https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.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 | 必須。 デプロイの作成先となるエンドポイントの名前。 | ||
model |
文字列またはオブジェクト | デプロイに使用するモデル。 この値は、ワークスペース内の既存のバージョン管理されたモデルへの参照またはインライン モデルの仕様のいずれかです。 既存のモデルを参照するには、 azureml:<model-name>:<model-version> 構文を使用します。 モデルをインラインで定義するには、モデル スキーマに従います。 運用シナリオのベスト プラクティスとして、モデルを個別に作成し、ここで参照します。 カスタム コンテナーのデプロイ シナリオでは、このフィールドは省略可能です。 |
||
model_mount_path |
string | カスタム コンテナーにモデルをマウントするためのパス。 カスタム コンテナーのデプロイ シナリオにのみ適用されます。 model フィールドが指定されている場合は、コンテナー内のこのパスにマウントされます。 |
||
code_configuration |
object | スコアリング コード ロジックの構成。 カスタム コンテナーのデプロイ シナリオでは、このフィールドは省略可能です。 |
||
code_configuration.code |
string | モデルのスコアリングに使用するソース コード ディレクトリへのローカル パス。 | ||
code_configuration.scoring_script |
string | ソース コード ディレクトリ内のスコアリング ファイルへの相対パス。 | ||
environment_variables |
object | デプロイ コンテナーで設定する環境変数のキーと値のペアの辞書。 これらの環境変数には、スコアリング スクリプトからアクセスできます。 | ||
environment |
文字列またはオブジェクト | 必須です。 デプロイに使用する環境。 この値は、ワークスペース内の既存のバージョン管理された環境への参照、またはインライン環境仕様のいずれかになります。 既存の環境を参照するには、 azureml:<environment-name>:<environment-version> 構文を使用します。 環境をインラインで定義するには、環境スキーマに従います。 運用シナリオのベスト プラクティスとして、環境を別途作成し、ここで参照することをお勧めします。 |
||
instance_type |
string | 必須。 デプロイに使用する VM サイズ。 サポートされているサイズの一覧については、マネージド オンライン エンドポイント SKU の一覧に関するページを参照してください。 | ||
instance_count |
整数 (integer) | 必須です。 デプロイに使用するインスタンスの数。 予想されるワークロードに基づいて値を指定します。 高可用性を確保するために、Microsoft では 3 以上に設定することを推奨しています。 instance_count は、az ml online-deployment update コマンドを使用して、デプロイの作成後に更新できます。 アップグレードを実行するために 20% 余分に予約されています。 詳細については、「デプロイ 仮想マシン クォータの割り当てを参照してください。 |
||
app_insights_enabled |
boolean | ワークスペースに関連付けられた Azure Application Insights インスタンスとの統合を有効にするかどうかを指定します。 | false |
|
scale_settings |
object | デプロイのスケール設定です。 現在サポートされているスケールの種類は default のみであるため、このプロパティを指定する必要はありません。 この default のスケールの種類を使用すると、デプロイの作成後に instance_count プロパティを更新してインスタンス数を手動でスケーリングするか、自動スケーリング ポリシーを作成するかのいずれかを行うことができます。 |
||
scale_settings.type |
string | スケールの種類。 | default |
default |
data_collector |
object | デプロイのデータ収集設定。 構成可能なプロパティのセットについては、「DataCollector」を参照してください。 | ||
request_settings |
object | デプロイのスコアリング要求の設定。 構成可能なプロパティのセットについては、RequestSettings を参照してください。 | ||
liveness_probe |
object | コンテナーの正常性を定期的に監視するための liveness probe の設定。 構成可能なプロパティのセットについては、ProbeSettings を参照してください。 | ||
readiness_probe |
object | コンテナーがトラフィックを処理する準備ができているかどうかを検証する readiness probe 設定。 構成可能なプロパティのセットについては、ProbeSettings を参照してください。 | ||
egress_public_network_access |
string | 注: このキーは、従来のネットワークの分離方法を使用して、デプロイ用の送信通信をセキュリティで保護するときに適用されます。 代わりにワークスペース マネージド VNet を使用して、デプロイ用の送信通信をセキュリティで保護することを強くお勧めします。 このフラグにより、デプロイとデプロイで使用される Azure リソースとの間の通信を制限することで、デプロイがセキュリティで保護されます。 disabled に設定することで、デプロイで必要なモデル、コード、イメージのダウンロードがプライベート エンドポイントによってセキュリティ保護されるようにします。 このフラグは、マネージド オンライン エンドポイントにのみ適用されます。 |
enabled , disabled |
enabled |
RequestSettings
キー | Type | 説明 | 既定値 |
---|---|---|---|
request_timeout_ms |
整数 (integer) | スコアリングのタイムアウト (ミリ秒)。 許容される最大値は 180000 ミリ秒であることに注意してください。 詳細については、オンライン エンドポイントの 制限 を参照してください。 |
5000 |
max_concurrent_requests_per_instance |
integer | デプロイで許可されるインスタンスあたりの最大同時要求数。 注:Azure Machine Learning 推論サーバーまたは Azure Machine Learning 推論用イメージを使用している場合は、同時要求を処理するようにモデルを構成する必要があります。 そのためには、 WORKER_COUNT: <int> を環境変数として渡します。 WORKER_COUNT の詳細については、Azure Machine Learning 推論サーバーのパラメーターに関するページを参照してください 注: モデルが 1 つのノードで同時に処理できる要求の数に設定してください。 この値をモデルの実際のコンカレンシーよりも大きく設定すると、遅延が大きくなることがあります。 この値を低く設定すると、使用率の低いノードが発生する可能性があります。 低すぎると、システムが高速に失敗することを選択するため、要求が 429 HTTP 状態コードで拒否される可能性もあります。 詳細については、「オンライン エンドポイントのトラブルシューティング: HTTP 状態コード」を参照してください。 |
1 |
max_queue_wait_ms |
integer | (非推奨)要求がキューに残る最大時間 (ミリ秒単位)。 (ネットワーク/キューの遅延を考慮して request_timeout_ms を増やします) |
500 |
ProbeSettings
キー | Type | 説明 | 既定値 |
---|---|---|---|
initial_delay |
整数 (integer) | コンテナーの起動後、プローブが開始されるまでの秒数。 最小値は 1 です。 |
10 |
period |
整数 (integer) | プローブを実行する頻度 (秒単位)。 | 10 |
timeout |
整数 (integer) | プローブがタイムアウトするまでの秒数。最小値は 1 です。 |
2 |
success_threshold |
整数 (integer) | 失敗した後、プローブが成功と見なされるために必要な最小連続成功数。 readiness probe 用の最小値は 1 です。 liveness probe 用の値は 1 で固定されています。 |
1 |
failure_threshold |
整数 (integer) | プローブが失敗した場合、システムは failure_threshold 回の試行を行った後、中断されます。 liveness probe の場合に中断されると、コンテナーが再起動されます。 readiness probe の場合は、コンテナーは Unready (準備が未完了) とマークされます。 最小値は 1 です。 |
30 |
DataCollector
キー | Type | 説明 | 既定値 |
---|---|---|---|
sampling_rate |
float | 収集するデータの割合 (10 進数の割合として表されます)。 たとえば、値 1.0 は、データを 100% 収集することを表します。 | 1.0 |
rolling_rate |
string | ストレージ内のデータをパーティション分割する速度。 使用可能な値: Minute、Hour、Day、Month、Year。 | Hour |
collections |
object | 個々の collection_name と、このデプロイ用のそれぞれの設定のセット。 |
|
collections.<collection_name> |
object | 収集する運用推論データの論理的なグループ化 (例: model_inputs )。 予約名は request と response の 2 つがあり、それぞれ HTTP 要求と応答ペイロードのデータ収集に対応しています。 他のすべての名前は任意であり、ユーザーが定義できます。 注: 各 collection_name は、運用推論データを収集するために、デプロイ score.py で使用される Collector オブジェクトの名前と対応している必要があります。 提供されている Python SDK を使用したペイロード データ収集とデータ収集の詳細については、「運用環境のモデルからデータを収集する」を参照してください。 |
|
collections.<collection_name>.enabled |
boolean | 指定した collection_name に対してデータ収集を有効にするかどうか。 |
'False'' |
collections.<collection_name>.data.name |
string | 収集されたデータと共に登録するデータ資産の名前。 | <endpoint>-<deployment>-<collection_name> |
collections.<collection_name>.data.path |
string | 収集されたデータをデータ資産として登録する必要がある Azure Machine Learning データストアの完全パス。 | azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name> |
collections.<collection_name>.data.version |
整数 | 収集されたデータと共に BLOB ストレージに登録されるデータ資産のバージョン。 | 1 |
注釈
az ml online-deployment
コマンドは、Azure Machine Learning マネージド オンライン デプロイメントを管理するために使用できます。
例
例は、GitHub リポジトリの例にあります。 以下にいくつか示します。
YAML: basic
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
path: ../../model-2/model/
code_configuration:
code: ../../model-2/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-2/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
YAML: システム割り当て ID
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
YAML: ユーザー割り当て ID
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
UAI_CLIENT_ID: "uai_client_id_place_holder"
YAML: data_collector
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
request:
enabled: 'True'
data:
name: my_request_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request
version: 1
response:
enabled: 'True'
data:
name: my_response_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
version: 1
model_inputs:
enabled: 'True'
data:
name: my_model_inputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
version: 1
model_outputs:
enabled: 'True'
data:
name: my_model_outputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
version: 1