PipelineStep クラス
Azure Machine Learning パイプラインの実行ステップを表します。
パイプラインは、パイプライン内の個別の計算単位である複数のパイプライン ステップから構築されます。 各ステップは個別に実行でき、分離されたコンピューティング リソースを使用できます。 各ステップには、通常、独自の名前付き入力、出力、およびパラメーターがあります。
PipelineStep クラスは、一般的なシナリオ用に設計された他の組み込みステップ クラス ( PythonScriptStep、 DataTransferStep、 HyperDriveStepなど) を継承する基本クラスです。
パイプラインと PipelineSteps の関係の概要については、「 ML パイプラインとは」を参照してください。
PipelineStep を初期化します。
コンストラクター
PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)
パラメーター
名前 | 説明 |
---|---|
name
必須
|
パイプライン ステップの名前。 |
inputs
必須
|
ステップ入力の一覧。 |
outputs
必須
|
ステップ出力の一覧。 |
arguments
|
ステップで使用するスクリプトに渡す引数の省略可能なリスト。 規定値: None
|
fix_port_name_collisions
|
名前の競合を修正するかどうかを指定します。 True と入力と出力の名前が同じ場合、入力の先頭に "INPUT" が付きます。 既定値は False です。 規定値: False
|
resource_inputs
|
リソースとして使用する入力の省略可能なリスト。 リソースはスクリプト フォルダーにダウンロードされ、実行時にスクリプトの動作を変更する方法が提供されます。 規定値: None
|
name
必須
|
パイプライン ステップの名前。 |
inputs
必須
|
ステップ入力の一覧。 |
outputs
必須
|
ステップ出力の一覧。 |
arguments
必須
|
ステップで使用するスクリプトに渡す引数の省略可能なリスト。 |
fix_port_name_collisions
必須
|
名前の競合を修正するかどうかを指定します。 True と入力と出力の名前が同じ場合、入力の先頭に "INPUT" が付きます。 既定値は False です。 |
resource_inputs
必須
|
リソースとして使用する入力の省略可能なリスト。 リソースはスクリプト フォルダーにダウンロードされ、実行時にスクリプトの動作を変更する方法が提供されます。 |
注釈
PipelineStep は、通常、実行のターゲット (コンピューティング ターゲット)、オプションのスクリプト引数と入力を使用して実行するスクリプトを必要とし、出力を生成できる実行の単位です。 この手順では、そのステップに固有の他のパラメーターも多数取ることができます。
パイプラインステップを一緒に構成して、共有可能で再利用可能な Azure Machine Learning ワークフローを表す Pipelineを構築できます。 パイプラインの各ステップは、ステップの内容 (スクリプト/依存関係) と入力とパラメーターが変更されていない場合に、前の実行結果を再利用できるように構成できます。 ステップを再利用すると、ジョブをコンピューティングに送信する代わりに、前の実行の結果が後続のステップですぐに使用できるようになります。
Azure Machine Learning Pipelines には、一般的なシナリオ用の組み込み手順が用意されています。 例については、 steps パッケージと AutoMLStep クラスを参照してください。 事前構築済みの手順に基づくパイプラインの構築の概要については、 https://aka.ms/pl-first-pipelineを参照してください。
PipelineStep から派生した事前構築済みステップは、1 つのパイプラインで使用されるステップです。 異なるパイプライン間でバージョン管理および使用できるステップを作成するために機械学習ワークフロー呼び出しを使用する場合は、 Module クラスを使用します。
パイプライン ステップ、入力/出力データ、ステップの再利用を使用する場合は、次の点に注意してください。
別の手順では、別のsource_directoryの場所を使用することをお勧めします。 パイプライン ステップ内のすべてのスクリプトが 1 つのディレクトリにある場合、1 つのスクリプトに変更を加えるたびに、そのディレクトリのハッシュが変更され、すべてのステップが強制的に再実行されます。 異なる手順で個別のディレクトリを使用する例については、 https://aka.ms/pl-get-startedを参照してください。
スクリプトと各ステップの依存ファイルに個別のフォルダーを保持すると、特定のフォルダーのみがスナップショットされるため、各ステップで作成されるスナップショットのサイズを小さくするのに役立ちます。 ステップのsource_directoryのファイルの変更によってスナップショットの再アップロードがトリガーされるため、各ステップで個別のフォルダーを維持すると、ステップのsource_directoryに変更がない場合は、ステップの前の実行が再利用されるため、パイプライン内のステップの過剰な再利用に役立ちます。
ステップで使用されるデータがデータストア内にあり、allow_reuseが True の場合、データ変更の変更は検出されません。 (ステップのsource_directoryの下で) スナップショットの一部としてデータがアップロードされた場合、これは推奨されませんが、ハッシュが変更され、再実行がトリガーされます。
メソッド
create_input_output_bindings |
ステップの入力と出力から入力バインドと出力バインドを作成します。 |
create_module_def |
手順を説明するモジュール定義オブジェクトを作成します。 |
create_node |
この手順に基づいて、パイプライン グラフのノードを作成します。 |
get_source_directory |
手順のソース ディレクトリを取得し、スクリプトが存在することを確認します。 |
resolve_input_arguments |
入力と出力を引数に一致させ、引数文字列を生成します。 |
run_after |
指定した手順の後に、この手順を実行します。 |
validate_arguments |
引数で指定されたステップの入力と出力が入力と出力の一覧にあることを検証します。 |
create_input_output_bindings
ステップの入力と出力から入力バインドと出力バインドを作成します。
create_input_output_bindings(inputs, outputs, default_datastore, resource_inputs=None)
パラメーター
名前 | 説明 |
---|---|
inputs
必須
|
ステップ入力の一覧。 |
outputs
必須
|
ステップ出力の一覧。 |
default_datastore
必須
|
既定のデータストア。 |
resource_inputs
|
リソースとして使用する入力の一覧。 リソースはスクリプト フォルダーにダウンロードされ、実行時にスクリプトの動作を変更する方法が提供されます。 規定値: None
|
戻り値
型 | 説明 |
---|---|
入力バインドと出力バインドのタプル。 |
create_module_def
手順を説明するモジュール定義オブジェクトを作成します。
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, arguments=None, runconfig=None, cloud_settings=None)
パラメーター
名前 | 説明 |
---|---|
execution_type
必須
|
モジュールの実行の種類。 |
input_bindings
必須
|
ステップ入力バインド。 |
output_bindings
必須
|
ステップ出力バインド。 |
param_defs
|
ステップ パラメーターの定義。 規定値: None
|
create_sequencing_ports
|
シーケンス ポートをモジュール用に作成するかどうかを指定します。 規定値: True
|
allow_reuse
|
モジュールを将来のパイプラインで再利用できるかどうかを指定します。 規定値: True
|
version
|
モジュールのバージョン。 規定値: None
|
module_type
|
作成するモジュール作成サービスのモジュールの種類。 現在サポートされている型は、'None' と 'BatchInferencing' の 2 つだけです。
規定値: None
|
arguments
|
このモジュールを呼び出すときに使用する注釈付き引数リスト 規定値: None
|
runconfig
|
python_script_stepに使用される Runconfig 規定値: None
|
cloud_settings
|
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
クラウドに使用される設定 規定値: None
|
戻り値
型 | 説明 |
---|---|
モジュール定義オブジェクト。 |
create_node
この手順に基づいて、パイプライン グラフのノードを作成します。
abstract create_node(graph, default_datastore, context)
パラメーター
名前 | 説明 |
---|---|
graph
必須
|
ノードを追加するグラフ。 |
default_datastore
必須
|
この手順で使用する既定のデータストア。 |
context
必須
|
<xref:azureml.pipeline.core._GraphContext>
グラフ コンテキスト オブジェクト。 |
戻り値
型 | 説明 |
---|---|
作成されたノード。 |
get_source_directory
手順のソース ディレクトリを取得し、スクリプトが存在することを確認します。
get_source_directory(context, source_directory, script_name)
パラメーター
名前 | 説明 |
---|---|
context
必須
|
<xref:azureml.pipeline.core._GraphContext>
グラフ コンテキスト オブジェクト。 |
source_directory
必須
|
ステップのソース ディレクトリ。 |
script_name
必須
|
ステップのスクリプト名。 |
hash_paths
必須
|
モジュールのフィンガープリントを決定するときに使用するハッシュ パス。 |
戻り値
型 | 説明 |
---|---|
ソース ディレクトリとハッシュ パス。 |
resolve_input_arguments
入力と出力を引数に一致させ、引数文字列を生成します。
static resolve_input_arguments(arguments, inputs, outputs, params)
パラメーター
名前 | 説明 |
---|---|
arguments
必須
|
ステップ引数の一覧。 |
inputs
必須
|
ステップ入力の一覧。 |
outputs
必須
|
ステップ出力の一覧。 |
params
必須
|
ステップ パラメーターの一覧。 |
戻り値
型 | 説明 |
---|---|
2 つの項目のタプルを返します。 1 つ目は、解決された引数の項目のフラット リストです。 2 つ目は、構造化された引数 (_InputArgument、_OutputArgument、_ParameterArgument、および_StringArgument) の一覧です。 |
run_after
指定した手順の後に、この手順を実行します。
run_after(step)
パラメーター
名前 | 説明 |
---|---|
step
必須
|
この手順の前に実行するパイプライン ステップ。 |
注釈
手順 1 と手順 2 の両方が完了した後にステップ 3 を実行する場合は、次のコマンドを使用できます。
step3.run_after(step1)
step3.run_after(step2)