Pipeline クラス

再利用可能な Azure Machine Learning ワークフローとして実行できるステップのコレクションを表します。

パイプラインを使用して、機械学習のさまざまなフェーズを結び付けるワークフローを作成して管理します。 データの準備やモデルのトレーニングなどの各機械学習フェーズは、1 つのパイプライン内の 1 つ以上のステップから構成できます。

パイプラインを使用する理由と状況の概要については、https://aka.ms/pl-concept を参照してください。

パイプラインの構築に関する概要については、https://aka.ms/pl-first-pipeline を参照してください。

パイプラインを初期化します。

継承
builtins.object
Pipeline

コンストラクター

Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)

パラメーター

workspace
Workspace
必須

パイプラインを送信するワークスペース。

steps
list
必須

パイプラインの一部として実行するステップのリスト。

description
str
必須

パイプラインの説明。

default_datastore
AbstractAzureStorageDatastore または AzureDataLakeDatastore
必須

データ接続に使用する既定のデータストア。

default_source_directory
str
必須

スクリプトを実行するステップの既定のスクリプト ディレクトリ。

resolve_closure
bool
必須

クロージャを解決するかどうか (依存するステップを自動的に取り込む)。

workspace
Workspace
必須

パイプラインを送信するワークスペース。

steps
list
必須

パイプラインの一部として実行するステップのリスト。

description
str
必須

パイプラインの説明。

default_datastore
AbstractAzureStorageDatastore または AzureDataLakeDatastore
必須

データ接続に使用する既定のデータストア。

default_source_directory
str
必須

スクリプトを実行するステップの既定のスクリプト ディレクトリ。

resolve_closure
bool
必須

解決クロージャかどうか (依存ステップを自動的に取り込む)。

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
必須

ワークフロー プロバイダー (None が作成されている場合)。

_service_endpoint
str
必須

サービス エンドポイント ([なし] の場合) は、ワークスペースを使用して決定されます。

kwargs
dict
必須

カスタム キーワード引数。将来の開発用に予約されています

注釈

ステップのリストとワークスペースを使用してパイプラインが作成されます。 パイプラインで使用できるステップの種類は多数あります。 ご自分の機械学習シナリオに基づいてステップの種類を選択します。

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

パイプラインを送信するワークスペース。

filename
str
必須

パイプラインを説明する YAML ファイル。

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
既定値: None

ワークフロー プロバイダー。

_service_endpoint
str
既定値: 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
str
既定値: None

発行されたパイプラインの名前。

description
str
既定値: None

発行されたパイプラインの説明。

version
str
既定値: None

発行されたパイプラインのバージョン。

continue_on_step_failure
bool
既定値: None

あるステップが失敗した場合に PipelineRun 内の他のステップの実行を続行するかどうかを示します。既定値は false です。 True の場合は、失敗したステップの出力に依存しないステップだけが実行を続行します。

戻り値

作成され、発行されたパイプライン。

の戻り値の型 :

service_endpoint

パイプラインに関連付けられているサービス エンドポイントを取得します。

service_endpoint()

戻り値

サービス エンドポイント。

の戻り値の型 :

str

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

パイプラインを送信する実験の名前。

pipeline_parameters
dict
既定値: None

パイプライン実行のパラメーター。{name: value} の辞書。 詳細については、 PipelineParameter をご覧ください。

continue_on_step_failure
bool
既定値: False

ステップが失敗した場合に、パイプラインの実行を続行するかどうかを示します。 True の場合は、失敗したステップの出力に依存しないステップだけが実行を続行します。

regenerate_outputs
bool
既定値: False

この実行で、すべてのステップ出力の再生を強制し、データの再利用を禁止するかどうかを示します。 False の場合、この実行で、前回の実行の結果を再利用でき、その後の実行で、この実行の結果を再利用できます。

parent_run_id
str
既定値: None

このパイプライン実行の親の実行に設定する、省略可能な実行 ID。RunHistory に反映されます。 親実行は、このパイプラインの送信先と同じ実験に属している必要があります。

credential_passthrough
既定値: None

省略可能。このフラグが有効になっている場合、リモート パイプライン ジョブでは、ジョブを開始したユーザーの資格情報が使用されます。 この機能は、プライベート プレビューでのみ使用できます。

戻り値

送信されたパイプライン実行。

の戻り値の型 :

validate

パイプラインを検証し、未接続の入力など、潜在的なエラーを特定します。

validate()

戻り値

パイプライン内のエラーのリスト。

の戻り値の型 :

注釈

検証エラーの例を次に示します。

  • パイプラインのデータソースまたはステップの種類が見つからない、または予想外

  • パイプラインのデータソースまたはステップのパラメーターまたは出力定義がない

  • 未接続の入力

  • ループまたはサイクルを形成するパイプライン ステップ

検証に合格した (空のリストが返される) が、パイプラインが機能しない場合は、機械学習パイプラインのデバッグとトラブルシューティングに関する記事をご覧ください。

属性

graph

パイプラインに関連付けられているグラフを取得します。 ステップおよびデータ入力は、グラフにノードとして表示されます。

戻り値

グラフ。

の戻り値の型 :