PipelineStep 類別
代表 Azure Machine Learning 管線中的執行步驟。
管線是由多個管線步驟所建構,這些步驟是管線中不同的計算單位。 每個步驟都可以獨立執行,並使用隔離的計算資源。 每個步驟通常都有自己的具名輸入、輸出和參數。
PipelineStep 類別是基類,其他專為常見案例所設計之內建步驟類別繼承的基類,例如 PythonScriptStep 、 DataTransferStep 和 HyperDriveStep 。
如需管線和 PipelineSteps 相關概觀,請參閱 什麼是 ML 管線。
初始化 PipelineStep。
- 繼承
-
builtins.objectPipelineStep
建構函式
PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)
參數
名稱 | Description |
---|---|
name
必要
|
管線步驟的名稱。 |
inputs
必要
|
步驟輸入的清單。 |
outputs
必要
|
步驟輸出的清單。 |
arguments
|
要傳遞至步驟中所用腳本的選擇性引數清單。 預設值: None
|
fix_port_name_collisions
|
指定是否要修正名稱衝突。 如果 True 和輸入和輸出具有相同的名稱,則輸入前面會加上 「INPUT」。 預設值是 False。 預設值: False
|
resource_inputs
|
要做為資源的選擇性輸入清單。 資源會下載到腳本資料夾,並提供在執行時間變更腳本行為的方法。 預設值: None
|
name
必要
|
管線步驟的名稱。 |
inputs
必要
|
步驟輸入的清單。 |
outputs
必要
|
步驟輸出的清單。 |
arguments
必要
|
要傳遞至步驟中所用腳本的選擇性引數清單。 |
fix_port_name_collisions
必要
|
指定是否要修正名稱衝突。 如果 True 和輸入和輸出具有相同的名稱,則輸入前面會加上 「INPUT」。 預設值是 False。 |
resource_inputs
必要
|
要做為資源的選擇性輸入清單。 資源會下載到腳本資料夾,並提供在執行時間變更腳本行為的方法。 |
備註
PipelineStep 是執行單位,通常需要執行目標 (計算目標) 、使用選擇性腳本引數和輸入執行的腳本,而且可以產生輸出。 此步驟也可以採取一些步驟特定的其他參數。
管線步驟可以一起設定為建構 Pipeline ,其代表可共用且可重複使用的 Azure Machine Learning 工作流程。 如果步驟內容 (腳本/相依性) ,以及輸入和參數保持不變,管線的每個步驟都可以設定為允許重複使用其先前的執行結果。 重複使用步驟時,不會提交要計算的作業,則會立即讓任何後續步驟使用上一次執行的結果。
Azure Machine Learning Pipelines 提供常見案例的內建步驟。 如需範例,請參閱 steps 封裝和 AutoMLStep 類別。 如需根據預先建置步驟建構管線的概觀,請參閱 https://aka.ms/pl-first-pipeline 。
衍生自 PipelineStep 的預先建置步驟是一個管線中使用的步驟。 如果您使用機器學習工作流程來建立可跨不同管線進行版本設定及使用的步驟,請使用 類別 Module 。
使用管線步驟、輸入/輸出資料和步驟重複使用時,請記住下列事項。
建議您針對個別步驟使用不同的source_directory位置。 如果管線步驟中的所有腳本都位於單一目錄中,則每次對一個腳本進行變更時,該目錄的雜湊都會變更,強制所有步驟重新執行。 如需針對不同步驟使用個別目錄的範例,請參閱 https://aka.ms/pl-get-started 。
針對每個步驟維護腳本和相依檔案的不同資料夾,有助於減少針對每個步驟建立的快照集大小,因為只會快照集特定資料夾。 由於步驟source_directory中的任何檔案變更都會觸發快照集的重新上傳,因此維護每個步驟的個別資料夾,有助於在管線中重複使用步驟,因為如果步驟的source_directory中沒有任何變更,則會重複使用步驟的上一次執行。
如果步驟中使用的資料位於資料存放區中,且allow_reuse為 True,則不會偵測到資料變更的變更。 如果資料上傳為步驟source_directory) 下快照集 (的一部分,但不建議這麼做,則雜湊將會變更,並觸發重新執行。
方法
create_input_output_bindings |
從步驟輸入和輸出建立輸入和輸出系結。 |
create_module_def |
建立描述步驟的模組定義物件。 |
create_node |
根據此步驟建立管線圖形的節點。 |
get_source_directory |
取得步驟的來原始目錄,並檢查腳本是否存在。 |
resolve_input_arguments |
比對引數的輸入和輸出,以產生引數字串。 |
run_after |
在指定的步驟之後執行此步驟。 |
validate_arguments |
驗證引數中所提供的步驟輸入和輸出是否位於輸入和輸出清單中。 |
create_input_output_bindings
從步驟輸入和輸出建立輸入和輸出系結。
create_input_output_bindings(inputs, outputs, default_datastore, resource_inputs=None)
參數
名稱 | Description |
---|---|
inputs
必要
|
步驟輸入的清單。 |
outputs
必要
|
步驟輸出的清單。 |
default_datastore
必要
|
預設資料存放區。 |
resource_inputs
|
要作為資源的輸入清單。 資源會下載到腳本資料夾,並提供在執行時間變更腳本行為的方法。 預設值: None
|
傳回
類型 | Description |
---|---|
輸入系結和輸出系結的 Tuple。 |
create_module_def
建立描述步驟的模組定義物件。
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, arguments=None, runconfig=None, cloud_settings=None)
參數
名稱 | Description |
---|---|
execution_type
必要
|
模組的執行類型。 |
input_bindings
必要
|
步驟輸入系結。 |
output_bindings
必要
|
步驟輸出系結。 |
param_defs
|
步驟參數定義。 預設值: None
|
create_sequencing_ports
|
指定是否要為模組建立排序埠。 預設值: True
|
allow_reuse
|
指定模組是否可以在未來管線中重複使用。 預設值: True
|
version
|
模組的版本。 預設值: None
|
module_type
|
要建立之模組服務的模組類型。 目前僅支援兩種類型:'None' 和 'BatchInferencing'。
預設值: None
|
arguments
|
呼叫此模組時要使用的批註引數清單 預設值: None
|
runconfig
|
將用於python_script_step的 Runconfig 預設值: None
|
cloud_settings
|
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
將用於雲端的設定 預設值: None
|
傳回
類型 | Description |
---|---|
模組定義物件。 |
create_node
根據此步驟建立管線圖形的節點。
abstract create_node(graph, default_datastore, context)
參數
名稱 | Description |
---|---|
graph
必要
|
要加入節點的圖表。 |
default_datastore
必要
|
要用於此步驟的預設資料存放區。 |
context
必要
|
<xref:azureml.pipeline.core._GraphContext>
圖形內容物件。 |
傳回
類型 | Description |
---|---|
已建立的節點。 |
get_source_directory
取得步驟的來原始目錄,並檢查腳本是否存在。
get_source_directory(context, source_directory, script_name)
參數
名稱 | Description |
---|---|
context
必要
|
<xref:azureml.pipeline.core._GraphContext>
圖形內容物件。 |
source_directory
必要
|
步驟的來原始目錄。 |
script_name
必要
|
步驟的腳本名稱。 |
hash_paths
必要
|
決定模組指紋時要使用的雜湊路徑。 |
傳回
類型 | Description |
---|---|
來原始目錄和雜湊路徑。 |
resolve_input_arguments
比對引數的輸入和輸出,以產生引數字串。
static resolve_input_arguments(arguments, inputs, outputs, params)
參數
名稱 | Description |
---|---|
arguments
必要
|
步驟引數的清單。 |
inputs
必要
|
步驟輸入的清單。 |
outputs
必要
|
步驟輸出的清單。 |
params
必要
|
步驟參數的清單。 |
傳回
類型 | Description |
---|---|
傳回兩個專案的元組。 第一個是已解析引數的專案一般清單。 第二個是結構化引數的清單 (_InputArgument、_OutputArgument、_ParameterArgument和_StringArgument) |
run_after
在指定的步驟之後執行此步驟。
run_after(step)
參數
名稱 | Description |
---|---|
step
必要
|
在此步驟之前執行的管線步驟。 |
備註
如果您想要執行步驟,例如步驟 1 和步驟 2 完成後的步驟 3,您可以使用:
step3.run_after(step1)
step3.run_after(step2)