PipelineStep クラス
Azure Machine Learning パイプラインの実行ステップを表します。
パイプラインは、パイプライン内の個別のコンピューティング単位である複数のパイプライン ステップから構成されます。 各ステップは個別に実行でき、分離されたコンピューティング リソースを使用できます。 各ステップには通常、独自の名前付き入力、出力、パラメーターがあります。
PipelineStep クラスは、一般的なシナリオ用に設計された他の組み込みのステップ クラス (PythonScriptStep、DataTransferStep、HyperDriveStep など) が継承する基底クラスです。
Pipelines と PipelineSteps の関係の概要については、ML パイプラインに関する記事をご覧ください。
PipelineStep を初期化します。
- 継承
-
builtins.objectPipelineStep
コンストラクター
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 パイプラインから、一般的なシナリオ向けに組み込みのステップが提供されます。 例については、steps パッケージと AutoMLStep クラスを参照してください。 事前構築済みのステップに基づいてパイプラインを構築する方法の概要については、https://aka.ms/pl-first-pipeline を参照してください。
PipelineStep から派生した事前構築済みのステップは、1 つのパイプラインで使用されるステップです。 機械学習ワークフローを使用して、異なるパイプライン間でバージョン管理して使用できるステップを作成する必要がある場合は、Module クラスを使用します。
パイプラインのステップ、入力/出力データ、およびステップの再利用を操作する場合は、次の点に留意します。
個別のステップに個別の source_directory の場所を使用することをお勧めします。 パイプライン ステップ内のすべてのスクリプトが単一のディレクトリにあると、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
必須
|
このステップの前に実行するパイプライン ステップ。 |
注釈
step1 と step2 の両方が完了した後に、step3 など、ステップを実行する場合は、次のコマンドを使用できます。
step3.run_after(step1)
step3.run_after(step2)