Pipeline 类

表示可以作为可重用 Azure 机器学习工作流执行的步骤集合。

使用管道创建和管理将各个机器学习阶段拼接在一起的工作流。 每个机器学习阶段(例如数据准备和模型训练)可以由管道中的一个或多个步骤组成。

有关为何以及何时使用管道的概述,请参阅 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
必需

服务终结点,如果为 None,则使用工作区确定。

kwargs
dict
必需

自定义关键字参数,保留供将来开发

注解

管道是使用步骤列表和工作区创建的。 在管道中可以使用许多步骤类型。 将基于机器学习方案选择步骤类型。

  • 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
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

为此管道运行的父运行设置的可选运行 ID,该 ID 将在 RunHistory 中反映出来。 父运行必须属于此管道所要提交到的同一试验。

credential_passthrough
默认值: None

可选,如果启用此标志,则远程管道作业将使用启动了该作业的用户的凭据。 此功能仅在个人预览版中可用。

返回

已提交的管道运行。

返回类型

validate

验证管道并识别潜在的错误,例如未连接的输入。

validate()

返回

管道中的错误列表。

返回类型

注解

验证错误的示例包括:

  • 缺少或意外的管道数据源或步骤类型

  • 管道数据源或步骤缺少参数或输出定义

  • 未连接的输入

  • 形成循环或周期的管道步骤

如果验证通过(返回空列表)并且管道不起作用,请参阅调试机器学习管道并对其进行故障排除

属性

graph

获取与管道关联的图。 步骤和数据输入在图中显示为节点。

返回

图形。

返回类型