ParallelRunStep 类

创建 Azure 机器学习管道步骤异步并行处理大量数据。

注意

此包 azureml-contrib-pipeline-steps 已被弃用,改为使用 azureml-pipeline-steps。

请使用新包中的 ParallelRunStep 类。

有关使用 ParallelRunStep 的示例,请参阅笔记本 https://aka.ms/batch-inference-notebooks

有关故障排除指南,请参阅 https://aka.ms/prstsg。 可在此处找到更多参考资料。

继承
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
ParallelRunStep

构造函数

ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, models=None, arguments=None, allow_reuse=True, tags=None, properties=None, add_parallel_run_step_dependencies=True)

参数

name
str
必需

步骤的名称。 对于工作区,必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,且长度在 3 到 32 个字符之间。

parallel_run_config
ParallelRunConfig
必需

用于确定所需运行属性的 ParallelRunConfig 对象。

inputs
list[DatasetConsumptionConfig]
必需

输入数据集的列表。 列表中的所有数据集应属于同一类型。

output
PipelineData, OutputPortBinding
默认值: None

输出端口绑定,可供后面的管道步骤使用。

side_inputs
list[PipelineData]
默认值: None

侧输入引用数据的列表。

models
list[Model]
默认值: None

零个或多个模型对象的列表。 此列表仅用于跟踪管道到模型版本的映射。 模型不会复制到容器。 使用 Model 类的 get_model_path 方法在 entry_script 的 init 函数中检索模型。

arguments
list[str]
默认值: None

要传递到 Python entry_script 的命令行参数的列表。

allow_reuse
bool
默认值: True

当使用相同的设置/输入运行时,该步骤是否应重用以前的结果。 如果为 false,则在管道执行过程中将始终为此步骤生成新的运行。

tags
dict[str, str]
默认值: None

此步骤的键值标记字典。

properties
bool
默认值: None

此步骤的键值属性字典。

add_parallel_run_step_dependencies
默认值: True

[已弃用] 是否添加 ParallelRunStep 的运行时依赖项。 其中包括:

  • azure-storage-queue~=2.1

  • azure-storage-common~=2.1

  • azureml-core~=1.0

  • azureml-telemetry~=1.0

  • filelock~=3.0

  • azureml-dataset-runtime[fuse,pandas]~=1.1

  • psutil

注解

ParallelRunStep 类可用于涉及大量数据且不区分时间的任何类型的处理作业,例如批量训练或批量评分。 ParallelRunStep 的工作原理是将大型作业分解为并行处理的批。 可以通过 ParallelRunConfig 类控制批处理大小和并行处理的程度。 ParallelRunStep 可以作为输入用于 TabularDatasetFileDataset

若要使用 ParallelRunStep 类,典型模式如下:

  • 创建一个 ParallelRunConfig 对象用于指定批处理的执行方式,该对象的参数可控制批大小、每个计算目标的节点数,以及对自定义 Python 脚本的引用。

  • 创建使用 ParallelRunConfig 对象的 ParallelRunStep 对象,并定义该步骤的输入和输出,以及要使用的模型列表。

  • Pipeline 中使用配置的 ParallelRunStep 对象,就像使用 steps 包中定义的管道步骤类型一样。

以下文章讨论了使用 ParallelRunStep 和 ParallelRunConfig 类进行批量推理的示例:


   from azureml.contrib.pipeline.steps import ParallelRunStep, ParallelRunConfig

   parallel_run_config = ParallelRunConfig(
       source_directory=scripts_folder,
       entry_script=script_file,
       mini_batch_size="5",
       error_threshold=10,
       output_action="append_row",
       environment=batch_env,
       compute_target=compute_target,
       node_count=2)

   parallelrun_step = ParallelRunStep(
       name="predict-digits-mnist",
       parallel_run_config=parallel_run_config,
       inputs=[ named_mnist_ds ],
       output=output_dir,
       models=[ model ],
       arguments=[ ],
       allow_reuse=True
   )

有关此示例详细信息,请参阅笔记本 https://aka.ms/batch-inference-notebooks

方法

create_module_def

创建描述步骤的模块定义对象。

此方法不能直接使用。

create_node

PythonScriptStep 创建节点并将其添加到指定的图。

此方法不能直接使用。 通过 ParallelRunStep 实例化管道时,Azure 机器学习会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图中。

create_module_def

创建描述步骤的模块定义对象。

此方法不能直接使用。

create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, arguments=None)

参数

execution_type
str
必需

模块的执行类型。

input_bindings
list
必需

步骤输入绑定。

output_bindings
list
必需

步骤输出绑定。

param_defs
list
默认值: None

步骤参数定义。

create_sequencing_ports
bool
默认值: True

如果为 true,则将为模块创建有序端口。

allow_reuse
bool
默认值: True

如果为 true,则在将来的管道中可重用该模块。

version
str
默认值: None

模块的版本。

arguments
list
默认值: None

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

返回

模块定义对象。

返回类型

create_node

PythonScriptStep 创建节点并将其添加到指定的图。

此方法不能直接使用。 通过 ParallelRunStep 实例化管道时,Azure 机器学习会自动通过此方法传递所需的参数,以便可以将步骤添加到表示工作流的管道图中。

create_node(graph, default_datastore, context)

参数

graph
Graph
必需

图对象。

default_datastore
AbstractAzureStorageDatastoreAzureDataLakeDatastore
必需

默认数据存储。

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

上下文。

返回

创建的节点。

返回类型