Pipeline 類別
表示步驟集合,可當做可重複使用的 Azure Machine Learning 工作流程執行。
使用管線來建立和管理將各種機器學習階段結合在一起的工作流程。 每個機器學習階段,例如數據準備和模型定型,都可以由管線中的一或多個步驟組成。
如需使用管線的原因和時機概觀,請參閱 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)
參數
| 名稱 | 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
必要
|
如果服務端點為 None,則會使用工作區來判斷。 |
|
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 |
|---|---|
|
管線中的錯誤清單。 |
備註
驗證錯誤的範例包括:
遺漏或非預期的管線數據源或步驟類型
遺漏管線數據源或步驟的參數或輸出定義
未連接輸入
形成迴圈或迴圈的管線步驟
如果驗證通過 (傳回空白清單),且您的管線無法運作,請參閱 偵錯和疑難解答機器學習管線。