Pipeline 类

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

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

有关使用管道的原因和时间的概述,请参阅 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)

参数

名称 说明
workspace
必需

要提交管道的工作区。

steps
必需

要作为管道一部分执行的步骤列表。

description
必需
str

管道的说明。

default_datastore
必需

用于数据连接的默认数据存储。

default_source_directory
必需
str

执行脚本的步骤的默认脚本目录。

resolve_closure
必需

是否解决关闭问题(自动引入依赖步骤)。

workspace
必需

要提交管道的工作区。

steps
必需

要作为管道一部分执行的步骤列表。

description
必需
str

管道的说明。

default_datastore
必需

用于数据连接的默认数据存储。

default_source_directory
必需
str

执行脚本的步骤的默认脚本目录。

resolve_closure
必需

是否解决关闭问题(自动引入依赖步骤)。

_workflow_provider
必需
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

工作流提供程序(如果未创建任何工作流提供程序)。

_service_endpoint
必需
str

服务终结点(如果“无”)使用工作区确定。

kwargs
必需

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

注解

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

  • Azure 机器学习管道为常见方案提供内置步骤。 从 PipelineStep 派生的预生成步骤是一个管道中使用的步骤。 有关示例,请参阅 steps 包和 AutoMLStep 类。

  • 如果使用机器学习工作流调用创建可跨不同管道进行版本控制和使用的步骤,请使用模块中的 Module 功能。

使用 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
必需
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

指示在步骤失败时是否继续执行 PipelineRun 中的其他步骤;默认值为 false。 如果为 True,则只有不依赖于失败步骤输出的步骤将继续执行。

默认值: None

返回

类型 说明

已创建已发布管道。

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

管道执行的参数,{name: value} 的字典。 有关详细信息,请参阅 PipelineParameter

默认值: None
continue_on_step_failure

指示在步骤失败时是否继续执行管道。 如果为 True,则只有不依赖于失败步骤输出的步骤将继续执行。

默认值: False
regenerate_outputs

指示是否强制重新生成所有步骤输出,并禁止对此运行重复使用数据。 如果为 False,则此运行可能会重用先前运行的结果,后续运行可能会重复使用此运行的结果。

默认值: False
parent_run_id
str

要为此管道运行的父运行设置的可选运行 ID,该 ID 反映在 RunHistory 中。 父运行必须属于与提交此管道相同的试验。

默认值: None
credential_passthrough

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

默认值: None

返回

类型 说明

提交的管道运行。

validate

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

validate()

返回

类型 说明

管道中的错误列表。

注解

验证错误的示例包括:

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

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

  • 未连接的输入

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

如果验证通过(返回空列表),并且管道不起作用,请参阅 “调试”并排查机器学习管道问题

属性

graph

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

返回

类型 说明

图形。