PipelineStep 类

表示 Azure 机器学习管道中的执行步骤。

管道是通过多个管道步骤构造的,这些步骤是管道中的不同计算单元。 每个步骤都可以独立运行,并使用独立的计算资源。 每个步骤通常都有自己的命名输入、输出和参数。

PipelineStep 是一种基类,其他为常见场景设计的内置步骤类继承自该基类(如 PythonScriptStepDataTransferStepHyperDriveStep)。

有关管道和 PipelineSteps 之间关系的概述,请参阅什么是 ML 管道

初始化 PipelineStep。

继承
builtins.object
PipelineStep

构造函数

PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)

参数

name
str
必需

管道步骤的名称。

inputs
list
必需

步骤输入的列表。

outputs
list
必需

步骤输出的列表。

arguments
list
默认值: None

要传递给步骤中使用的脚本的可选参数列表。

fix_port_name_collisions
bool
默认值: False

指定是否修复名称冲突。 如果 True 和输入与输出具有相同的名称,则输入的前缀为“INPUT”。 默认值为 False。

resource_inputs
list
默认值: None

要用作资源的可选输入列表。 资源会下载到脚本文件夹,并提供一种在运行时更改脚本行为的方法。

name
str
必需

管道步骤的名称。

inputs
list
必需

步骤输入的列表。

outputs
list
必需

步骤输出的列表。

arguments
list
必需

要传递给步骤中使用的脚本的可选参数列表。

fix_port_name_collisions
bool
必需

指定是否修复名称冲突。 如果 True 和输入与输出具有相同的名称,则输入的前缀为“INPUT”。 默认值为 False。

resource_inputs
list
必需

要用作资源的可选输入列表。 资源会下载到脚本文件夹,并提供一种在运行时更改脚本行为的方法。

注解

PipelineStep 是一个执行单元,通常需要执行目标(计算目标),一个可以使用可选的脚本参数和输入来执行的脚本,并可以生成输出。 该步骤还可以执行特定于该步骤的一些其他参数。

管道步骤可以一起配置为构造一个 Pipeline,它表示可共享且可重用的 Azure 机器学习工作流。 管道的每个步骤都可以配置为在步骤内容(脚本/依赖项)以及输入和参数保持不变的情况下允许重用其以前的运行结果。 重用该步骤时,不是将作业提交到计算,而是使前一运行的结果立即可供后续步骤使用。

Azure 机器学习管道为常见方案提供内置步骤。 有关示例,请参阅 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)

参数

inputs
list
必需

步骤输入的列表。

outputs
list
必需

步骤输出的列表。

default_datastore
AbstractAzureStorageDatastoreAzureDataLakeDatastore
必需

默认数据存储。

resource_inputs
list
默认值: None

要用作资源的输入列表。 资源会下载到脚本文件夹,并提供一种在运行时更改脚本行为的方法。

返回

输入绑定和输出绑定的元组。

返回类型

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)

参数

execution_type
str
必需

模块的执行类型。

input_bindings
list
必需

步骤输入绑定。

output_bindings
list
必需

步骤输出绑定。

param_defs
list
默认值: None

步骤参数定义。

create_sequencing_ports
bool
默认值: True

指定是否为模块创建排序端口。

allow_reuse
bool
默认值: True

指定是否可在将来的管道中重复使用该模块。

version
str
默认值: None

模块的版本。

module_type
str
默认值: None

要创建的模块创建服务的模块类型。 目前仅支持两种类型:“None”和“BatchInferencing”。 module_type 不同于 execution_type,它指定要用于运行此模块的后端服务类型。

arguments
list
默认值: None

调用此模块时要使用的批注参数列表

runconfig
str
默认值: None

将用于 python_script_step 的 runconfig

cloud_settings
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
默认值: None

将用于云的设置

返回

模块定义对象。

返回类型

create_node

基于此步骤为管道图创建节点。

abstract create_node(graph, default_datastore, context)

参数

graph
Graph
必需

要添加节点的图形。

default_datastore
AbstractAzureStorageDatastoreAzureDataLakeDatastore
必需

要用于此步骤的默认数据存储。

context
<xref:azureml.pipeline.core._GraphContext>
必需

图形上下文对象。

返回

创建的节点。

返回类型

get_source_directory

获取步骤的源目录,并检查脚本是否存在。

get_source_directory(context, source_directory, script_name)

参数

context
<xref:azureml.pipeline.core._GraphContext>
必需

图形上下文对象。

source_directory
str
必需

步骤的源目录。

script_name
str
必需

步骤的脚本名称。

hash_paths
list
必需

确定模块指纹时使用的哈希路径。

返回

源目录和哈希路径。

返回类型

resolve_input_arguments

将输入和输出与参数匹配以生成参数字符串。

static resolve_input_arguments(arguments, inputs, outputs, params)

参数

arguments
list
必需

步骤参数的列表。

inputs
list
必需

步骤输入的列表。

outputs
list
必需

步骤输出的列表。

params
list
必需

步骤参数的列表。

返回

返回两个项的元组。 第一个是已解析参数的项的平面列表。 第二个参数是结构化参数的列表 (_InputArgument、_OutputArgument_ParameterArgument 和 _StringArgument)

返回类型

run_after

在指定的步骤之后运行此步骤。

run_after(step)

参数

step
PipelineStep
必需

在此步骤之前运行的管道步骤。

注解

如果要在步骤 1 和步骤 2 完成后运行步骤 3,可以使用:


   step3.run_after(step1)
   step3.run_after(step2)

validate_arguments

验证参数中提供的步骤输入和输出是否位于输入和输出列表中。

static validate_arguments(arguments, inputs, outputs)

参数

arguments
list
必需

步骤参数的列表。

inputs
list
必需

步骤输入的列表。

outputs
list
必需

步骤输出的列表。