CLI (v2) Azure Arc 対応 Kubernetes オンライン デプロイ YAML スキーマ

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

ソース JSON スキーマは https://azuremlschemas.azureedge.net/latest/kubernetesOnlineDeployment.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 推論ワークロードを配置するために使用されるインスタンスの種類。 省略した場合、推論ワークロードは、エンドポイントの compute フィールドで指定された Kubernetes クラスターの既定のインスタンスの種類に配置されます。 指定した場合、その選択したインスタンスの種類に推論ワークロードが配置されます。

Kubernetes クラスターのインスタンスの種類のセットは Kubernetes クラスター カスタム リソース定義 (CRD) を使用して構成されるため、Kubernetes コンピューティングをアタッチするための Azure Machine Learning YAML スキーマには含められません。詳細については、「Kubernetes インスタンスの種類を作成して選択する」を参照してください。
instance_count 整数 デプロイに使用するインスタンスの数。 予想されるワークロードに基づいて値を指定します。 このフィールドは、スケールの種類 default (scale_settings.type: default) を使用している場合にのみ必要です。

instance_count は、az ml online-deployment update コマンドを使用して、デプロイの作成後に更新できます。
app_insights_enabled boolean ワークスペースに関連付けられた Azure Application Insights インスタンスとの統合を有効にするかどうかを指定します。 false
scale_settings object デプロイのスケール設定です。 サポートされるスケール設定には、default スケールの種類と target_utilization スケールの種類の 2 種類があります。

default スケールの種類 (scale_settings.type: default) を使用すると、デプロイの作成後に instance_count プロパティを更新してインスタンス数を手動で増減させることができます。

スケールの種類 target_utilization (scale_settings.type: target_utilization) を構成するには、構成可能なプロパティのセットについて「TargetUtilizationScaleSettings」を参照してください。
scale_settings.type string スケールの種類。 $ target_utilization
data_collector object デプロイのデータ収集設定。 構成可能なプロパティのセットについては、「DataCollector」を参照してください。
request_settings object デプロイのスコアリング要求の設定。 構成可能なプロパティのセットについては、RequestSettings を参照してください。
liveness_probe object コンテナーの正常性を定期的に監視するための liveness probe の設定。 構成可能なプロパティのセットについては、ProbeSettings を参照してください。
readiness_probe object コンテナーがトラフィックを処理する準備ができているかどうかを検証する readiness probe 設定。 構成可能なプロパティのセットについては、ProbeSettings を参照してください。
resources object コンテナー リソースの要件。
resources.requests object コンテナーに対するリソース要求。 構成可能なプロパティのセットについては、「ContainerResourceRequests」を参照してください。
resources.limits object コンテナーのリソース制限。 構成可能なプロパティのセットについては、「ContainerResourceLimits」を参照してください。

RequestSettings

キー Type 説明 既定値
request_timeout_ms 整数 (integer) スコアリングのタイムアウト (ミリ秒)。 5000
max_concurrent_requests_per_instance 整数 (integer) デプロイで許可されるインスタンスあたりの最大同時要求数。

この設定は、Microsoft テクニカル サポートまたは Azure Machine Learning チームのメンバーの指示がない限り、既定値から変更しないでください。
1
max_queue_wait_ms 整数 (integer) 要求がキューに残るミリ秒単位の最大時間。 500

ProbeSettings

キー Type 説明 既定値
period 整数 (integer) プローブを実行する頻度 (秒単位)。 10
initial_delay 整数 (integer) コンテナーの起動後、プローブが開始されるまでの秒数。 最小値は 1 です。 10
timeout 整数 (integer) プローブがタイムアウトするまでの秒数。最小値は 1 です。 2
success_threshold 整数 (integer) 失敗した後、プローブが成功と見なされるために必要な最小連続成功数。 最小値は 1 です。 1
failure_threshold 整数 (integer) プローブが失敗した場合、システムは failure_threshold 回の試行を行った後、中断されます。 liveness probe の場合に中断されると、コンテナーが再起動されます。 readiness probe の場合は、コンテナーは Unready (準備が未完了) とマークされます。 最小値は 1 です。 30

TargetUtilizationScaleSettings

キー Type 説明 既定値
type const スケールの種類 target_utilization
min_instances 整数 使用するインスタンスの最小数。 1
max_instances 整数 スケーリングするインスタンスの最大数。 1
target_utilization_percentage 整数 自動スケーラーのターゲット CPU 使用率。 70
polling_interval 整数 自動スケーラーがデプロイのスケーリングを試行する頻度 (秒単位)。 1

ContainerResourceRequests

キー Type 説明
cpu string コンテナーに要求されている CPU コアの数。
memory string コンテナーに要求されているメモリ サイズ
nvidia.com/gpu string コンテナーに要求されている Nvidia GPU カードの数

ContainerResourceLimits

キー Type 説明
cpu string コンテナーの CPU コア数の制限。
memory string コンテナーのメモリ サイズの制限。
nvidia.com/gpu string コンテナーの Nvidia GPU カード数の制限

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)。 予約名は requestresponse の 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 Kubernetes オンライン デプロイを管理するために使用できます。

例は、GitHub リポジトリの例にあります。

次の手順