Pipeline クラス
再利用可能な Azure Machine Learning ワークフローとして実行できるステップのコレクションを表します。
パイプラインを使用して、機械学習のさまざまなフェーズを結び付けるワークフローを作成して管理します。 データの準備やモデルのトレーニングなどの各機械学習フェーズは、1 つのパイプライン内の 1 つ以上のステップから構成できます。
パイプラインを使用する理由と状況の概要については、https://aka.ms/pl-concept を参照してください。
パイプラインの構築に関する概要については、https://aka.ms/pl-first-pipeline を参照してください。
パイプラインを初期化します。
- 継承
-
builtins.objectPipeline
コンストラクター
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>
ワークフロー プロバイダー (None が作成されている場合)。 |
_service_endpoint
必須
|
サービス エンドポイント ([なし] の場合) は、ワークスペースを使用して決定されます。 |
kwargs
必須
|
カスタム キーワード引数。将来の開発用に予約されています |
注釈
ステップのリストとワークスペースを使用してパイプラインが作成されます。 パイプラインで使用できるステップの種類は多数あります。 ご自分の機械学習シナリオに基づいてステップの種類を選択します。
Azure Machine Learning パイプラインから、一般的なシナリオ向けに組み込みのステップが提供されます。 PipelineStep から派生した事前構築済みのステップは、1 つのパイプラインで使用されるステップです。 例については、steps パッケージと AutoMLStep クラスを参照してください。
機械学習ワークフローを使用して、異なるパイプライン間でバージョン管理して使用できるステップを作成する必要がある場合は、Module モジュールの機能を使用します。
submit を使用してパイプラインを送信します。 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 に反映されます。 親の実行は、このパイプラインが送信されるのと同じ実験に属している必要があります。
これらの設定を使用して Pipeline を送信する例を次に示します。
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
|
このパイプライン実行の親の実行に設定する、省略可能な実行 ID。RunHistory に反映されます。 親実行は、このパイプラインの送信先と同じ実験に属している必要があります。 規定値: None
|
credential_passthrough
|
省略可能。このフラグが有効になっている場合、リモート パイプライン ジョブでは、ジョブを開始したユーザーの資格情報が使用されます。 この機能は、プライベート プレビューでのみ使用できます。 規定値: None
|
戻り値
型 | 説明 |
---|---|
送信されたパイプライン実行。 |
validate
パイプラインを検証し、未接続の入力など、潜在的なエラーを特定します。
validate()
戻り値
型 | 説明 |
---|---|
パイプライン内のエラーのリスト。 |
注釈
検証エラーの例を次に示します。
パイプラインのデータソースまたはステップの種類が見つからない、または予想外
パイプラインのデータソースまたはステップのパラメーターまたは出力定義がない
未接続の入力
ループまたはサイクルを形成するパイプライン ステップ
検証に合格した (空のリストが返される) が、パイプラインが機能しない場合は、機械学習パイプラインのデバッグとトラブルシューティングに関する記事をご覧ください。