次の方法で共有


PipelineStep クラス

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

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

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

パイプラインと PipelineSteps の関係の概要については、「 ML パイプラインとは」を参照してください。

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

この手順の前に実行するパイプライン ステップ。

注釈

手順 1 と手順 2 の両方が完了した後にステップ 3 を実行する場合は、次のコマンドを使用できます。


   step3.run_after(step1)
   step3.run_after(step2)

validate_arguments

引数で指定されたステップの入力と出力が入力と出力の一覧にあることを検証します。

static validate_arguments(arguments, inputs, outputs)

パラメーター

名前 説明
arguments
必須

ステップ引数の一覧。

inputs
必須

ステップ入力の一覧。

outputs
必須

ステップ出力の一覧。