ParallelRunStep 类
创建 Azure 机器学习管道步骤,以异步和并行处理大量数据。
有关使用 ParallelRunStep 的示例,请参阅笔记本 https://aka.ms/batch-inference-notebooks。
有关故障排除指南,请参阅 https://aka.ms/prstsg。 你可以在此处找到更多引用。
创建 Azure ML Pipeline 步骤以异步和并行方式处理大量数据。
有关使用 ParallelRunStep 的示例,请参阅笔记本链接 https://aka.ms/batch-inference-notebooks。
构造函数
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
参数
名称 | 说明 |
---|---|
name
必需
|
步骤的名称。 工作区必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,长度介于 3 到 32 个字符之间。 |
parallel_run_config
必需
|
用于确定所需运行属性的 ParallelRunConfig 对象。 |
inputs
必需
|
输入数据集的列表。 列表中的所有数据集都应是同一类型。 将分区输入数据进行并行处理。 列表中的每个数据集单独分区为微型批处理,并且每个微型批处理在并行处理中同样处理。 |
output
|
输出端口绑定可由后续管道步骤使用。 默认值: None
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
侧输入引用数据的列表。 侧输入不会作为输入数据进行分区。 默认值: None
|
arguments
|
要传递给 Python entry_script的命令行参数列表。 默认值: None
|
allow_reuse
|
使用相同设置/输入运行时,该步骤是否应重复使用以前的结果。 如果为 false,则管道执行期间将始终为此步骤生成新的运行。 默认值: True
|
name
必需
|
步骤的名称。 工作区必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,长度介于 3 到 32 个字符之间。 |
parallel_run_config
必需
|
用于确定所需运行属性的 ParallelRunConfig 对象。 |
inputs
必需
|
输入数据集的列表。 列表中的所有数据集都应是同一类型。 将分区输入数据进行并行处理。 列表中的每个数据集单独分区为微型批处理,并且每个微型批处理在并行处理中同样处理。 |
output
必需
|
输出端口绑定可由后续管道步骤使用。 |
side_inputs
必需
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
侧输入引用数据的列表。 侧输入不会作为输入数据进行分区。 |
arguments
必需
|
要传递给 Python entry_script的命令行参数列表。 |
allow_reuse
必需
|
使用相同设置/输入运行时,该步骤是否应重复使用以前的结果。 如果为 false,则管道执行期间将始终为此步骤生成新的运行。 |
注解
ParallelRunStep 可用于并行处理大量数据。 常见的用例是训练 ML 模型或运行脱机推理,以根据一批观察数据来生成预测。 ParallelRunStep 的工作原理是将数据分解成并行处理的批处理。 可以使用类控制 ParallelRunConfig 批大小节点计数和其他无法加速并行处理的参数。 ParallelRunStep 可以使用任一或TabularDatasetFileDataset作为输入。
如需使用 ParallelRunStep:
创建一个 ParallelRunConfig 对象,以指定批处理的执行方式、用于控制批大小的参数、每个计算目标的节点数以及对自定义 Python 脚本的引用。
创建使用 ParallelRunConfig 对象的 ParallelRunStep 对象,并定义该步骤的输入和输出。
像使用其他管道步骤类型一 Pipeline 样,使用配置的 ParallelRunStep 对象。
以下文章介绍了如何使用 ParallelRunStep 和 ParallelRunConfig 类进行批处理推理的示例:
教程:生成用于批量评分的 Azure 机器学习管道。 本文介绍如何在管道中将这两个类用于异步批评分,并使 REST 终结点能够运行管道。
使用 Azure 机器学习对大量数据运行批处理推理。 本文介绍如何通过自定义推理脚本和 MNIST 数据集上预先训练的图像分类模型库以异步和并行方式处理大量数据。
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5",
error_threshold=10, # Optional, allowed failed count on mini batch items
allowed_failed_count=15, # Optional, allowed failed count on mini batches
allowed_failed_percent=10, # Optional, allowed failed percent on mini batches
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,
arguments=[ "--extra_arg", "example_value" ],
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
必需
|
模块的执行类型。 |
input_bindings
必需
|
步骤输入绑定。 |
output_bindings
必需
|
步骤输出绑定。 |
param_defs
|
步骤参数定义。 默认值: None
|
create_sequencing_ports
|
如果为 true,将为模块创建序列化端口。 默认值: True
|
allow_reuse
|
如果为 true,则模块将在将来的 Pipelines 中重复使用。 默认值: True
|
version
|
模块的版本。 默认值: None
|
arguments
|
调用此模块时要使用的批注参数列表。 默认值: None
|
返回
类型 | 说明 |
---|---|
模块 def 对象。 |
create_node
创建节点 PythonScriptStep 并将其添加到指定的图形。
此方法不用于直接使用。 使用 ParallelRunStep 实例化管道时,Azure 机器学习会自动传递通过此方法所需的参数,以便可以将该步骤添加到表示工作流的管道图中。
create_node(graph, default_datastore, context)
参数
名称 | 说明 |
---|---|
graph
必需
|
Graph 对象。 |
default_datastore
必需
|
默认数据存储。 |
context
必需
|
<xref:azureml.pipeline.core._GraphContext>
上下文。 |
返回
类型 | 说明 |
---|---|
创建的节点。 |