Pipeline 类
表示可以作为可重用 Azure 机器学习工作流执行的步骤集合。
使用管道创建和管理将各个机器学习阶段拼接在一起的工作流。 每个机器学习阶段(例如数据准备和模型训练)可以由管道中的一个或多个步骤组成。
有关为何以及何时使用管道的概述,请参阅 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)
参数
名称 | 说明 |
---|---|
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 机器学习管道为常见方案提供内置步骤。 派生自 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:可以提供运行 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
必需
|
要提交管道的工作区。 |
filename
必需
|
描述管道的 YAML 文件。 |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
工作流提供程序。 默认值: None
|
_service_endpoint
|
服务终结点(如果为 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
|
已发布管道的名称。 默认值: None
|
description
|
已发布管道的说明。 默认值: None
|
version
|
所发布管道的版本。 默认值: None
|
continue_on_step_failure
|
是否在步骤失败时继续执行 PipelineRun 中的其他步骤;默认值为 false。 如果为 True,则仅对失败步骤的输出具有依赖关系的步骤将继续执行。 默认值: None
|
返回
类型 | 说明 |
---|---|
已创建发布的管道。 |
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)
参数
名称 | 说明 |
---|---|
experiment_name
必需
|
要提交管道的试验的名称。 |
pipeline_parameters
|
管道执行的参数,{name: value} 的字典。 有关详细信息,请参阅 PipelineParameter 。 默认值: None
|
continue_on_step_failure
|
指示在步骤失败时是否继续管道执行。 如果为 True,则仅对失败步骤的输出具有依赖关系的步骤将继续执行。 默认值: False
|
regenerate_outputs
|
指示是否强制重新生成所有步骤输出,并禁止对此运行重用数据。 如果为 False,则此运行可能会重用以前运行的结果,后续运行可能会重用此运行的结果。 默认值: False
|
parent_run_id
|
为此管道运行的父运行设置的可选运行 ID,该 ID 将在 RunHistory 中反映出来。 父运行必须属于此管道所要提交到的同一试验。 默认值: None
|
credential_passthrough
|
可选,如果启用此标志,则远程管道作业将使用启动了该作业的用户的凭据。 此功能仅在个人预览版中可用。 默认值: None
|
返回
类型 | 说明 |
---|---|
已提交的管道运行。 |
validate
验证管道并识别潜在的错误,例如未连接的输入。
validate()
返回
类型 | 说明 |
---|---|
管道中的错误列表。 |
注解
验证错误的示例包括:
缺少或意外的管道数据源或步骤类型
管道数据源或步骤缺少参数或输出定义
未连接的输入
形成循环或周期的管道步骤
如果验证通过(返回空列表)并且管道不起作用,请参阅调试机器学习管道并对其进行故障排除。