ParallelRunStep クラス
Azure Machine Learning パイプライン ステップを作成して、大量のデータを非同期かつ並列に処理します。
ParallelRunStep の使用例については、ノートブック https://aka.ms/batch-inference-notebooks を参照してください。
トラブルシューティング ガイドについては、https://aka.ms/prstsg を参照してください。 その他の参照情報を見つけることができます。
大量のデータを非同期的かつ並列に処理する Azure ML パイプライン ステップを作成します。
ParallelRunStep の使用例については、ノートブックリンク https://aka.ms/batch-inference-notebooksを参照してください。
- 継承
-
azureml.pipeline.core._parallel_run_step_base._ParallelRunStepBaseParallelRunStep
コンストラクター
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
パラメーター
名前 | 説明 |
---|---|
name
必須
|
ステップの名前。 ワークスペースに固有で、小文字、数字、またはダッシュのみで構成され、英字で始まり、3 文字から 32 文字の長さにする必要があります。 |
parallel_run_config
必須
|
必須の実行プロパティを決定するために使用される ParallelRunConfig オブジェクト。 |
inputs
必須
|
入力データセットのリスト。 リスト内のデータセットはすべて同じ型にする必要があります。 入力データは、並列処理のためにパーティション分割されます。 リスト内の各データセットは個別にミニバッチにパーティション分割され、各ミニバッチは並列処理で同等に処理されます。 |
output
|
後のパイプライン ステップで使用される可能性がある出力ポート バインディング。 規定値: None
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
サイド入力参照データのリスト。 サイド入力は入力データとしてパーティション分割されません。 規定値: None
|
arguments
|
Python entry_script に渡されるコマンド ライン引数のリスト。 規定値: None
|
allow_reuse
|
同じ設定/入力で実行されたときに、ステップで前の結果を再利用するかどうか。 これが false の場合は、パイプライン実行中に必ずこのステップに対して新しい実行が生成されます。 規定値: True
|
name
必須
|
ステップの名前。 ワークスペースに固有で、小文字、数字、またはダッシュのみで構成され、英字で始まり、3 文字から 32 文字の長さにする必要があります。 |
parallel_run_config
必須
|
必須の実行プロパティを決定するために使用される ParallelRunConfig オブジェクト。 |
inputs
必須
|
入力データセットのリスト。 リスト内のデータセットはすべて同じ型にする必要があります。 入力データは、並列処理のためにパーティション分割されます。 リスト内の各データセットは個別にミニバッチにパーティション分割され、各ミニバッチは並列処理で同等に処理されます。 |
output
必須
|
後のパイプライン ステップで使用される可能性がある出力ポート バインディング。 |
side_inputs
必須
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
サイド入力参照データのリスト。 サイド入力は入力データとしてパーティション分割されません。 |
arguments
必須
|
Python entry_script に渡されるコマンド ライン引数のリスト。 |
allow_reuse
必須
|
同じ設定/入力で実行されたときに、ステップで前の結果を再利用するかどうか。 これが false の場合は、パイプライン実行中に必ずこのステップに対して新しい実行が生成されます。 |
注釈
ParallelRunStep は、大量のデータの並列処理に使用できます。 一般的なユース ケースは、ML モデルのトレーニングや、観測のバッチで予測を生成するためのオフライン推論の実行などです。 ParallelRunStep の機能よって、データは並列処理されるバッチに分割されます。 バッチ サイズやノードの数、並列処理を高速化するためのその他のチューニング可能なパラメーターは、ParallelRunConfig クラスで制御できます。 ParallelRunStep は、TabularDataset または FileDataset を入力として処理できます。
ParallelRunStep を使用するには:
ParallelRunConfig オブジェクトを作成してバッチ処理の実行方法を指定し、バッチ サイズ、コンピューティング先ごとのノード数、カスタム Python スクリプトへの参照をパラメーターで制御します。
ParallelRunConfig オブジェクトを使用する ParallelRunStep オブジェクトを作成し、ステップの入力と出力を定義します。
他のパイプライン ステップの種類と同じように、構成された ParallelRunStep オブジェクトを Pipeline で使用します。
バッチ推論に ParallelRunStep および ParallelRunConfig クラスを使用する例については、次の記事で説明されています。
「チュートリアル: バッチ スコアリング用の Azure Machine Learning パイプラインを作成する」。 この記事では、これら 2 つのクラスをパイプラインで非同期バッチ スコアリングに使用する方法と、パイプラインを実行するために REST エンドポイントを有効にする方法が説明されています。
「Azure Machine Learning を使用して大規模なデータでバッチ推論を実行する」。 この記事では、大量のデータを非同期的に、そしてカスタム推論スクリプトおよび MNIST データセットの事前トレーニング済みイメージ分類モデル ベースと並列に、処理する方法が示されています。
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5",
error_threshold=10, # Optional, allowed failed count on mini batch items
allowed_failed_count=15, # Optional, allowed failed count on mini batches
allowed_failed_percent=10, # Optional, allowed failed percent on mini batches
output_action="append_row",
environment=batch_env,
compute_target=compute_target,
node_count=2)
parallelrun_step = ParallelRunStep(
name="predict-digits-mnist",
parallel_run_config=parallel_run_config,
inputs=[ named_mnist_ds ],
output=output_dir,
arguments=[ "--extra_arg", "example_value" ],
allow_reuse=True
)
この例の詳細については、ノートブック https://aka.ms/batch-inference-notebooks を参照してください。
メソッド
create_module_def |
ステップを記述するモジュール定義オブジェクトを作成します。 このメソッドは直接使用するためのものではありません。 |
create_node |
PythonScriptStep のノードを作成し、指定されたグラフに追加します。 このメソッドは直接使用するためのものではありません。 パイプラインが ParallelRunStep でインスタンス化されると、Azure Machine Learning が、ワークフローを表すパイプライン グラフにステップを追加できるように、このメソッドを介して必要なパラメーターを自動的に渡します。 |
create_module_def
ステップを記述するモジュール定義オブジェクトを作成します。
このメソッドは直接使用するためのものではありません。
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, arguments=None)
パラメーター
名前 | 説明 |
---|---|
execution_type
必須
|
モジュールの実行の種類。 |
input_bindings
必須
|
ステップの入力バインド。 |
output_bindings
必須
|
ステップの出力バインド。 |
param_defs
|
ステップ パラメーターの定義。 規定値: None
|
create_sequencing_ports
|
true の場合、モジュール用のシーケンス処理ポートが作成されます。 規定値: True
|
allow_reuse
|
true の場合、モジュールを将来のパイプラインで再利用できます。 規定値: True
|
version
|
モジュールのバージョン。 規定値: None
|
arguments
|
このモジュールの呼び出し時に使用される注釈付き引数リスト。 規定値: None
|
戻り値
型 | 説明 |
---|---|
モジュールの def オブジェクト。 |
create_node
PythonScriptStep のノードを作成し、指定されたグラフに追加します。
このメソッドは直接使用するためのものではありません。 パイプラインが ParallelRunStep でインスタンス化されると、Azure Machine Learning が、ワークフローを表すパイプライン グラフにステップを追加できるように、このメソッドを介して必要なパラメーターを自動的に渡します。
create_node(graph, default_datastore, context)
パラメーター
名前 | 説明 |
---|---|
graph
必須
|
グラフ オブジェクト。 |
default_datastore
必須
|
既定のデータストア。 |
context
必須
|
<xref:azureml.pipeline.core._GraphContext>
コンテキスト。 |
戻り値
型 | 説明 |
---|---|
作成されたノード。 |