Pipeline クラス
再利用可能な Azure Machine Learning ワークフローとして実行できるステップのコレクションを表します。
パイプラインを使用して、さまざまな機械学習フェーズを結合するワークフローを作成および管理します。 データ準備やモデル トレーニングなどの各機械学習フェーズは、パイプライン内の 1 つ以上のステップで構成できます。
パイプラインを使用する理由とタイミングの概要については、「 https://aka.ms/pl-concept」を参照してください。
パイプラインの構築の概要については、「 https://aka.ms/pl-first-pipeline」を参照してください。
パイプラインを初期化します。
コンストラクター
Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
パイプラインを送信するワークスペース。 |
steps
必須
|
パイプラインの一部として実行する手順の一覧。 |
description
必須
|
パイプラインの説明。 |
default_datastore
必須
|
データ接続に使用する既定のデータストア。 |
default_source_directory
必須
|
スクリプトを実行する手順の既定のスクリプト ディレクトリ。 |
resolve_closure
必須
|
クロージャを解決するかどうか (依存ステップが自動的に取り込まれます)。 |
workspace
必須
|
パイプラインを送信するワークスペース。 |
steps
必須
|
パイプラインの一部として実行する手順の一覧。 |
description
必須
|
パイプラインの説明。 |
default_datastore
必須
|
データ接続に使用する既定のデータストア。 |
default_source_directory
必須
|
スクリプトを実行する手順の既定のスクリプト ディレクトリ。 |
resolve_closure
必須
|
終了を解決するかどうか (依存ステップが自動的に取り込まれます)。 |
_workflow_provider
必須
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー (作成されていない場合)。 |
_service_endpoint
必須
|
サービス エンドポイント (None の場合)、ワークスペースを使用して決定されます。 |
kwargs
必須
|
カスタム キーワード引数(将来の開発用に予約済み) |
注釈
パイプラインは、ステップとワークスペースの一覧で作成されます。 パイプラインで使用できるステップの種類は多数あります。 機械学習のシナリオに基づいて、ステップの種類を選択します。
Azure Machine Learning Pipelines には、一般的なシナリオ用の組み込み手順が用意されています。 PipelineStep から派生した事前構築済みステップは、1 つのパイプラインで使用されるステップです。 例については、 steps パッケージと AutoMLStep クラスを参照してください。
異なるパイプライン間でバージョン管理および使用できるステップを作成するために機械学習ワークフロー呼び出しを使用する場合は、 Module モジュールの機能を使用します。
submitを使用してパイプラインを送信します。 送信が呼び出されると、 PipelineRun が作成され、ワークフロー内の各ステップ StepRun オブジェクトが作成されます。 これらのオブジェクトを使用して、実行の実行を監視します。
パイプラインを送信する例を次に示します。
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=steps)
pipeline_run = experiment.submit(pipeline)
パイプラインには、 submitの送信時に指定できるオプションの設定がいくつかあります。
continue_on_step_failure: ステップが失敗した場合にパイプラインの実行を続行するかどうか。既定値は False です。 True の場合、失敗したステップの出力に依存しないステップのみが実行を続行します。
regenerate_outputs: すべてのステップ出力を強制的に再生成し、この実行でデータの再利用を禁止するかどうかを指定します。既定値は False です。
pipeline_parameters: パイプライン実行のパラメーター、{name: value} のディクショナリ。 詳細については、PipelineParameter を参照してください。
parent_run_id: 実行 ID を指定して、このパイプライン実行の親実行を設定できます。これは RunHistory に反映されます。 親の実行は、このパイプラインが送信されるのと同じ実験に属している必要があります。
これらの設定を使用してパイプラインを送信する例を次に示します。
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=steps)
pipeline_run = experiment.submit(pipeline,
continue_on_step_failure=True,
regenerate_outputs=True,
pipeline_parameters={"param1": "value1"},
parent_run_id="<run_id>")
メソッド
load_yaml |
指定した YAML ファイルからパイプラインを読み込みます。 YAML ファイルを使用して、ModuleSteps で構成されるパイプラインを記述できます。 |
publish |
パイプラインを発行し、再実行できるようにします。 パイプラインが発行されると、パイプラインを構築した Python コードなしで送信できます。 作成された PublishedPipelineを返します。 |
service_endpoint |
パイプラインに関連付けられているサービス エンドポイントを取得します。 |
submit |
パイプラインの実行を送信します。 これは、 submitの使用と同じです。 送信された PipelineRunを返します。 このオブジェクトを使用して、実行の詳細を監視および表示します。 |
validate |
パイプラインを検証し、接続されていない入力などの潜在的なエラーを特定します。 |
load_yaml
指定した YAML ファイルからパイプラインを読み込みます。
YAML ファイルを使用して、ModuleSteps で構成されるパイプラインを記述できます。
static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
パイプラインを送信するワークスペース。 |
filename
必須
|
パイプラインを記述する YAML ファイル。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
ワークフロー プロバイダー。 規定値: None
|
_service_endpoint
|
サービス エンドポイント (None の場合) は、ワークスペースを使用して決定されます。 規定値: None
|
戻り値
型 | 説明 |
---|---|
構築されたパイプライン。 |
注釈
YAML ファイルの例については、以下を参照してください。 YAML には、パイプラインの名前、default_compute、パラメーター、データ参照、およびステップの一覧が含まれています。 各ステップでは、モジュール、コンピューティングとパラメーター、入力、出力のバインドを指定する必要があります。 さらに、必要に応じて、ステップ runconfig と引数を指定できます。
サンプル Yaml ファイル:
pipeline:
description: SamplePipelineFromYaml
parameters:
NumIterationsParameter:
type: int
default: 40
DataPathParameter:
type: datapath
default:
datastore: workspaceblobstore
path_on_datastore: sample2.txt
NodeCountParameter:
type: int
default: 4
data_references:
DataReference:
datastore: workspaceblobstore
path_on_datastore: testfolder/sample.txt
Dataset:
dataset_name: 'titanic'
default_compute: aml-compute
steps:
PrepareStep:
type: ModuleStep
name: "TestModule"
compute: aml-compute2
runconfig: 'D:\.azureml\default_runconfig.yml'
arguments:
-'--input1'
-input:in1
-'--input2'
-input:in2
-'--input3'
-input:in3
-'--output'
-output:output_data
-'--param'
-parameter:NUM_ITERATIONS
parameters:
NUM_ITERATIONS:
source: NumIterationsParameter
inputs:
in1:
source: Dataset
bind_mode: mount
in2:
source: DataReference
in3:
source: DataPathParameter
outputs:
output_data:
destination: Output1
datastore: workspaceblobstore
bind_mode: mount
TrainStep:
type: ModuleStep
name: "TestModule2"
version: "2"
runconfig: 'D:\.azureml\default_runconfig.yml'
arguments:
-'--input'
-input:train_input
-'--output'
-output:result
-'--param'
-parameter:NUM_ITERATIONS
parameters:
NUM_ITERATIONS: 10
runconfig_parameters:
NodeCount:
source: NodeCountParameter
inputs:
train_input:
source: Output1
bind_mode: mount
outputs:
result:
destination: Output2
datastore: workspaceblobstore
bind_mode: mount
publish
パイプラインを発行し、再実行できるようにします。
パイプラインが発行されると、パイプラインを構築した Python コードなしで送信できます。 作成された PublishedPipelineを返します。
publish(name=None, description=None, version=None, continue_on_step_failure=None)
パラメーター
名前 | 説明 |
---|---|
name
|
発行されたパイプラインの名前。 規定値: None
|
description
|
発行されたパイプラインの説明。 規定値: None
|
version
|
発行されたパイプラインのバージョン。 規定値: None
|
continue_on_step_failure
|
ステップが失敗した場合に PipelineRun の他のステップの実行を続行するかどうかを示します。既定値は false です。 True の場合、失敗したステップの出力に依存しないステップのみが実行を続行します。 規定値: None
|
戻り値
型 | 説明 |
---|---|
発行されたパイプラインを作成しました。 |
service_endpoint
submit
パイプラインの実行を送信します。 これは、 submitの使用と同じです。
送信された PipelineRunを返します。 このオブジェクトを使用して、実行の詳細を監視および表示します。
submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)
パラメーター
名前 | 説明 |
---|---|
experiment_name
必須
|
パイプラインを送信する実験の名前。 |
pipeline_parameters
|
パイプライン実行のパラメーター、{name: value} のディクショナリ。 詳細については、PipelineParameter を参照してください。 規定値: None
|
continue_on_step_failure
|
ステップが失敗した場合にパイプラインの実行を続行するかどうかを示します。 True の場合、失敗したステップの出力に依存しないステップのみが実行を続行します。 規定値: False
|
regenerate_outputs
|
すべてのステップ出力を強制的に再生成し、この実行のデータ再利用を禁止するかどうかを示します。 False の場合、この実行は以前の実行の結果を再利用でき、それ以降の実行ではこの実行の結果が再利用される可能性があります。 規定値: False
|
parent_run_id
|
RunHistory に反映される、このパイプライン実行の親実行に設定するオプションの実行 ID。 親の実行は、このパイプラインが送信されるのと同じ実験に属している必要があります。 規定値: None
|
credential_passthrough
|
オプション。このフラグが有効になっている場合、リモート パイプライン ジョブはジョブを開始したユーザーの資格情報を使用します。 この機能はプライベート プレビューでのみ使用できます。 規定値: None
|
戻り値
型 | 説明 |
---|---|
送信されたパイプラインの実行。 |
validate
パイプラインを検証し、接続されていない入力などの潜在的なエラーを特定します。
validate()
戻り値
型 | 説明 |
---|---|
パイプライン内のエラーの一覧。 |
注釈
検証エラーの例を次に示します。
パイプライン データソースまたはステップの種類が見つからないか、予期しない
パイプライン データソースまたはステップのパラメーターまたは出力定義が見つからない
接続されていない入力
ループまたはサイクルを形成するパイプライン ステップ
検証に合格し (空のリストが返される)、パイプラインが機能しない場合は、 機械学習パイプラインのデバッグとトラブルシューティングに関するページを参照してください。