Pipeline 類別

表示可當做可重複使用的 Azure Machine Learning 工作流程執行的步驟集合。

使用管線來建立和管理將各種機器學習階段結合在一起的工作流程。 每個機器學習階段,例如資料準備和模型定型,都可以由管線中的一或多個步驟組成。

如需使用管線的原因和時機概觀,請參閱 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
AbstractAzureStorageDatastoreAzureDataLakeDatastore
必要

用於資料連線的預設資料存放區。

default_source_directory
str
必要

執行腳本之步驟的預設腳本目錄。

resolve_closure
bool
必要

是否要解決關閉 (自動帶入相依步驟) 。

workspace
Workspace
必要

要提交管線的工作區。

steps
list
必要

要作為管線一部分執行的步驟清單。

description
str
必要

管線的描述。

default_datastore
AbstractAzureStorageDatastoreAzureDataLakeDatastore
必要

用於資料連線的預設資料存放區。

default_source_directory
str
必要

執行腳本之步驟的預設腳本目錄。

resolve_closure
bool
必要

是否要解決關閉 (自動帶入相依步驟) 。

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

如果建立工作流程提供者,則為 。

_service_endpoint
str
必要

如果服務端點是使用工作區判斷的,則為 [無]。

kwargs
dict
必要

自訂關鍵字引數,保留供未來開發使用

備註

管線是使用步驟清單和工作區來建立。 有一些步驟類型可用於管線中。 您將根據機器學習案例選取步驟類型。

  • Azure Machine Learning Pipelines 提供常見案例的內建步驟。 衍生自 PipelineStep 的預先建置步驟是一個管線中使用的步驟。 如需範例,請參閱 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:您可以提供執行識別碼來設定此管線執行的父回合,這會反映在 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
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

要為此管線回合之父回合設定的選擇性執行識別碼,這會反映在 RunHistory 中。 父回合必須屬於與提交此管線相同的實驗。

credential_passthrough
預設值: None

選擇性,如果啟用此旗標,遠端管線作業將會使用起始作業之使用者的認證。 這項功能僅適用于私人預覽版。

傳回

提交的管線執行。

傳回類型

validate

驗證管線並識別潛在的錯誤,例如未連線的輸入。

validate()

傳回

管線中的錯誤清單。

傳回類型

備註

驗證錯誤的範例包括:

  • 遺漏或非預期的管線資料來源或步驟類型

  • 遺漏管線資料來源或步驟的參數或輸出定義

  • 未連線的輸入

  • 形成迴圈或迴圈的管線步驟

如果驗證通過 (傳回空白清單) ,且您的管線無法運作,請參閱 對機器學習管線進行偵錯和疑難排解

屬性

graph

取得與管線相關聯的圖表。 步驟和資料輸入會顯示為圖形中的節點。

傳回

圖形。

傳回類型