CLI (v2) コマンド コンポーネント YAML スキーマ
適用対象: Azure CLI ml 拡張機能 v2 (現行)
ソース JSON スキーマは https://azuremlschemas.azureedge.net/latest/commandComponent.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 を含めることで、スキーマとリソースの入力候補を呼び出すことができます。 |
||
type |
const | コンポーネントの種類。 | command |
command |
name |
string | 必須。 コンポーネント名。 先頭には小文字を使用する必要があります。 使用できる文字は、小文字、数字、アンダースコア (_) です。 最大文字数は 255 文字です。 | ||
version |
string | コンポーネントのバージョン。 省略した場合、Azure Machine Learning によってバージョンが自動生成されます。 | ||
display_name |
string | Studio UI でのコンポーネントの表示名。 ワークスペース内で一意ではない場合があります。 | ||
description |
string | コンポーネントの説明。 | ||
tags |
object | コンポーネントのタグの辞書。 | ||
is_deterministic |
boolean | このオプションにより、コンポーネントが同じ入力データに対して同じ出力を生成するかどうかが判別されます。 URL からのデータのインポートなど、外部ソースからデータを読み込むコンポーネントの場合は、通常、これを false に設定する必要があります。 これは、URL のデータが時間の経過と共に変化する可能性があるためです。 |
true |
|
command |
string | 必須。 実行するコマンドです。 | ||
code |
string | アップロードしてコンポーネントに使用するソース コード ディレクトリへのローカル パス。 | ||
environment |
文字列またはオブジェクト | 必須です。 コンポーネントに使用する環境。 この値は、ワークスペース内の既存のバージョン管理された環境への参照、またはインライン環境仕様のいずれかになります。 既存のカスタム環境を参照するには、 azureml:<environment-name>:<environment-version> 構文を使用します。 キュレーションされた環境を参照するには、 azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> 構文を使用します。 環境を参照する方法の詳細については、「 環境を管理する方法」を参照してください。 環境をインラインで定義するには、環境スキーマに従います。 name プロパティと version プロパティは、インライン環境ではサポートされていないため、除外します。 |
||
distribution |
object | 分散トレーニング シナリオの配布構成。 MpiConfiguration、PyTorchConfiguration、TensorFlowConfiguration のいずれか。 | ||
resources.instance_count |
整数 (integer) | ジョブに使用するノードの数。 | 1 |
|
inputs |
object | コンポーネント入力の辞書。 キーはコンポーネントのコンテキスト内の入力の名前であり、値はコンポーネントの入力定義です。 入力は、 ${{ inputs.<input_name> }} 式を使用して command で参照できます。 |
||
inputs.<input_name> |
object | コンポーネントの入力定義。 構成可能なプロパティのセットについては、コンポーネントの入力を参照してください。 | ||
outputs |
object | コンポーネント出力の辞書。 キーはコンポーネントのコンテキスト内の出力の名前であり、値はコンポーネントの出力定義です。 出力は、 ${{ outputs.<output_name> }} 式を使用して command で参照できます。 |
||
outputs.<output_name> |
object | コンポーネントの出力定義。 構成可能なプロパティのセットについては、コンポーネントの出力を参照してください。 |
配布構成
MpiConfiguration
キー | Type | 説明 | 使用できる値 |
---|---|---|---|
type |
const | 必須。 配布の種類。 | mpi |
process_count_per_instance |
整数 (integer) | 必須。 ジョブに対して起動するノードあたりのプロセスの数。 |
PyTorchConfiguration
キー | Type | 説明 | 使用できる値 | 既定値 |
---|---|---|---|---|
type |
const | 必須。 配布の種類。 | pytorch |
|
process_count_per_instance |
整数 (integer) | ジョブに対して起動するノードあたりのプロセスの数。 | 1 |
TensorFlowConfiguration
キー | Type | 説明 | 使用できる値 | 既定値 |
---|---|---|---|---|
type |
const | 必須。 配布の種類。 | tensorflow |
|
worker_count |
整数 (integer) | ジョブに対して起動するワーカーの数。 | 既定値は resources.instance_count です。 |
|
parameter_server_count |
整数 (integer) | ジョブに対して起動するパラメーター サーバーの数。 | 0 |
コンポーネント入力
キー | Type | 説明 | 使用できる値 | 既定値 |
---|---|---|---|---|
type |
string | 必須。 コンポーネント入力の種類。 データ アクセスの詳細について確認してください | number 、 integer 、 boolean 、 string 、 uri_file 、 uri_folder 、 mltable 、 mlflow_model |
|
description |
string | 入力の説明。 | ||
default |
number、integer、boolean、または string | 入力の既定値。 | ||
optional |
boolean | 入力が必須かどうか。 true に設定されている場合は、$[[]] を使用して、オプションの入力を含むコマンドを使用する必要があります。 |
false |
|
min |
integer または number | 入力に許容される最小値。 このフィールドは、type フィールドが number または integer の場合にのみ指定できます。 |
||
max |
integer または number | 入力に許容される最大値。 このフィールドは、type フィールドが number または integer の場合にのみ指定できます。 |
||
enum |
array | 入力に使用できる値のリスト。 type フィールドが string の場合のみ適用されます。 |
コンポーネント出力
キー | Type | 説明 | 使用できる値 | 既定値 |
---|---|---|---|---|
type |
string | 必須。 コンポーネント出力の種類。 | uri_file 、 uri_folder 、 mltable 、 mlflow_model |
|
description |
string | 出力の説明。 |
Remarks
az ml component
コマンドを使用して、Azure Machine Learning コンポーネントを管理できます。
例
コマンド コンポーネントの例は、GitHub リポジトリの例にあります。 以下に選択可能な例を示します。
例は、GitHub リポジトリの例にあります。 以下にいくつか示します。
YAML: Hello world コマンド コンポーネント
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command
name: hello_python_world
display_name: Hello_Python_World
version: 1
code: ./src
environment:
image: python
command: >-
python hello.py
YAML: 入力の種類が異なるコンポーネント
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_data_component_cli
display_name: train_data
description: A example train component
tags:
author: azureml-sdk-team
type: command
inputs:
training_data:
type: uri_folder
max_epocs:
type: integer
optional: true
learning_rate:
type: number
default: 0.01
optional: true
learning_rate_schedule:
type: string
default: time-based
optional: true
outputs:
model_output:
type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
command: >-
python train.py
--training_data ${{inputs.training_data}}
$[[--max_epocs ${{inputs.max_epocs}}]]
$[[--learning_rate ${{inputs.learning_rate}}]]
$[[--learning_rate_schedule ${{inputs.learning_rate_schedule}}]]
--model_output ${{outputs.model_output}}
コマンド ラインで省略可能な入力を定義する
入力が optional = true
として設定されている場合、入力を含むコマンド ラインを $[[]]
を使用して囲む必要があります。 たとえば、「 $[[--input1 ${{inputs.input1}}]
」のように指定します。 実行時のコマンド ラインでは、異なる入力がある場合があります。
- 必須の
training_data
とmodel_output
のパラメーターの指定のみを使用する場合、コマンド ラインは次のようになります。
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
実行時に値が指定されない場合、learning_rate
および learning_rate_schedule
では既定値が使用されます。
- 実行時にすべての入力/出力で値が提供される場合、コマンド ラインは次のようになります。
python train.py --training_data some_input_path --max_epocs 10 --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
一般的なエラーと推奨事項
コンポーネントを定義するときの一般的なエラーとそれに対応する推奨事項を次に示します。
キー | エラー | 推奨 |
---|---|---|
command | 1. $[[]] にはオプションの入力のみを入力できます2. コマンドでは、 \ を使用して新しい行を作成することはできません。3. 入力または出力が見つかりません。 |
1. コマンドで使用されるすべての入力または出力が、inputs および outputs セクションで定義済みであることを確認し、省略可能な入力 $[[]] または必須の入力 ${{}} に正しい形式を使用します。2. 新しい行を作成するために \ を使用することはサポートされていません。 |
環境 | 1. 環境 {envName} バージョン {envVersion} の定義が存在しません。 2. 名前 {envName} 、バージョン {envVersion} の環境は存在しません。3. ID {envAssetId} の資産は見つかりませんでした。 |
1. コンポーネント定義で参照する環境名とバージョンが存在することを確認します。 2. 登録済み環境を参照する場合は、バージョンを指定する必要があります。 |
入出力 | 1. 入力または出力名がシステム予約済みパラメーターと競合しています。 2. 入力または出力の名前が重複しています。 |
1. 入力または出力名として、予約済みパラメーター path 、ld_library_path 、user 、logname 、home 、pwd 、shell のいずれも使用しないでください。2. 入力と出力の名前が重複していないことを確認します。 |