Pipeline 類別
表示可當做可重複使用的 Azure Machine Learning 工作流程執行的步驟集合。
使用管線來建立和管理將各種機器學習階段結合在一起的工作流程。 每個機器學習階段,例如資料準備和模型定型,都可以由管線中的一或多個步驟組成。
如需使用管線的原因和時機概觀,請參閱 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)
參數
名稱 | Description |
---|---|
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
必要
|
如果服務端點是使用工作區判斷的,則為 [無]。 |
kwargs
必要
|
自訂關鍵字引數,保留供未來開發使用 |
備註
管線是使用步驟清單和工作區來建立。 有一些步驟類型可用於管線中。 您將根據機器學習案例選取步驟類型。
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
要提交管線的工作區。 |
filename
必要
|
描述管線的 YAML 檔案。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流程提供者。 預設值: None
|
_service_endpoint
|
如果為 None,服務端點會使用工作區來判斷。 預設值: None
|
傳回
類型 | Description |
---|---|
建構的管線。 |
備註
如需範例 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)
參數
名稱 | Description |
---|---|
name
|
已發佈管線的名稱。 預設值: None
|
description
|
已發佈管線的描述。 預設值: None
|
version
|
已發佈管線的版本。 預設值: None
|
continue_on_step_failure
|
指出如果步驟失敗,是否繼續執行 PipelineRun 中的其他步驟;預設值為 false。 如果為 True,則只有沒有相依于失敗步驟輸出的步驟會繼續執行。 預設值: None
|
傳回
類型 | Description |
---|---|
已建立已發佈的管線。 |
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)
參數
名稱 | Description |
---|---|
experiment_name
必要
|
要提交管線的實驗名稱。 |
pipeline_parameters
|
管線執行的參數,{name: value} 的字典。 如需更多詳細資料,請參閱 PipelineParameter \(英文\)。 預設值: None
|
continue_on_step_failure
|
指出如果步驟失敗,是否繼續執行管線。 如果為 True,則只有沒有相依于失敗步驟輸出的步驟會繼續執行。 預設值: False
|
regenerate_outputs
|
指出是否強制重新產生所有步驟輸出,並不允許此執行的資料重複使用。 若為 False,則此執行可重複使用先前執行的結果,且後續執行也可重複使用此執行的結果。 預設值: False
|
parent_run_id
|
要為此管線回合之父回合設定的選擇性執行識別碼,這會反映在 RunHistory 中。 父回合必須屬於與提交此管線相同的實驗。 預設值: None
|
credential_passthrough
|
選擇性,如果啟用此旗標,遠端管線作業將會使用起始作業之使用者的認證。 這項功能僅適用于私人預覽版。 預設值: None
|
傳回
類型 | Description |
---|---|
提交的管線執行。 |
validate
驗證管線並識別潛在的錯誤,例如未連線的輸入。
validate()
傳回
類型 | Description |
---|---|
管線中的錯誤清單。 |
備註
驗證錯誤的範例包括:
遺漏或非預期的管線資料來源或步驟類型
遺漏管線資料來源或步驟的參數或輸出定義
未連線的輸入
形成迴圈或迴圈的管線步驟
如果驗證通過 (傳回空白清單) ,且您的管線無法運作,請參閱 對機器學習管線進行偵錯和疑難排解。