次の方法で共有


PipelineStep クラス

Azure Machine Learning パイプラインの実行ステップを表します。

パイプラインは、パイプライン内の個別のコンピューティング単位である複数のパイプライン ステップから構成されます。 各ステップは個別に実行でき、分離されたコンピューティング リソースを使用できます。 各ステップには通常、独自の名前付き入力、出力、パラメーターがあります。

PipelineStep クラスは、一般的なシナリオ用に設計された他の組み込みのステップ クラス (PythonScriptStepDataTransferStepHyperDriveStep など) が継承する基底クラスです。

Pipelines と PipelineSteps の関係の概要については、ML パイプラインに関する記事をご覧ください。

PipelineStep を初期化します。

継承
builtins.object
PipelineStep

コンストラクター

PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)

パラメーター

名前 説明
name
必須
str

パイプライン ステップの名前。

inputs
必須

ステップ入力のリスト。

outputs
必須

ステップ出力のリスト。

arguments

ステップで使用されるスクリプトに渡す引数の省略可能なリスト。

規定値: None
fix_port_name_collisions

名前の競合を修正するかどうかを指定します。 True の場合、入力と出力の名前が同じであれば、入力の先頭に "INPUT" が付きます。 既定値は False です。

規定値: False
resource_inputs

リソースとして使用される入力の省略可能なリスト。 リソースはスクリプト フォルダーにダウンロードされ、実行時にスクリプトの動作を変更する方法を提供します。

規定値: None
name
必須
str

パイプライン ステップの名前。

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
必須
str

モジュールの実行の種類。

input_bindings
必須

ステップの入力バインド。

output_bindings
必須

ステップの出力バインド。

param_defs

ステップ パラメーターの定義。

規定値: None
create_sequencing_ports

シーケンス処理ポートをモジュール用に作成するかどうかを指定します。

規定値: True
allow_reuse

モジュールを将来のパイプラインで再利用できるかどうかを指定します。

規定値: True
version
str

モジュールのバージョン。

規定値: None
module_type
str

作成するモジュール作成サービスのモジュールの種類。 現在は、'None' と 'BatchInferencing' の 2 種類のみがサポートされています。 module_type は、このモジュールの実行に使用するバックエンド サービスの種類を指定する execution_type とは異なります。

規定値: None
arguments

このモジュールを呼び出す際に使用する注釈付き引数リスト

規定値: None
runconfig
str

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
必須
str

ステップのソース ディレクトリ。

script_name
必須
str

ステップのスクリプト名。

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)

validate_arguments

引数に指定されたステップの入力と出力が入力と出力のリストに含まれることを検証します。

static validate_arguments(arguments, inputs, outputs)

パラメーター

名前 説明
arguments
必須

ステップ引数のリスト。

inputs
必須

ステップ入力のリスト。

outputs
必須

ステップ出力のリスト。