ParallelRunConfig 类

定义 ParallelRunStep 对象的配置。

注意

azureml-contrib-pipeline-steps 包已弃用并已由 azureml-pipeline-steps 取代。

请使用新包中的 ParallelRunConfig 类。

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

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

继承
builtins.object
ParallelRunConfig

构造函数

ParallelRunConfig(environment, entry_script, error_threshold, output_action, compute_target, node_count, process_count_per_node=None, mini_batch_size=None, source_directory=None, description=None, logging_level=None, run_invocation_timeout=None, input_format=None, append_row_file_name=None)

参数

environment
Environment
必需

用于配置 Python 环境的环境定义。 可以将其配置为使用现有的 Python 环境,也可以将其配置为设置临时试验环境。 定义还负责设置所需的应用程序依赖项。

entry_script
str
必需

将在多个节点上并行运行的用户脚本。 它被指定为本地文件路径。 如果指定了 source_directory,则 entry_script 是内部的相对路径。 否则,它可以是计算机上可访问的任何路径。

error_threshold
int
必需

在处理过程中应忽略的 TabularDataset 记录失败数和 FileDataset 文件失败数。 如果错误计数高于此值,则作业将被中止。 错误阈值适用于整个输入,而非适用于发送给 run() 方法的单个微批。 范围为 [-1, int.max]。 -1 表示忽略处理过程中的所有失败。

output_action
str
必需

如何组织输出。 当前支持的值为“append_row”和“summary_only”。

  1. “append_row”- run() 方法调用输出的所有值将聚合到一个名为 parallel_run_step.txt 的唯一文件中,该文件在输出位置创建。
  2. “summary_only”- 用户脚本应自行存储输出。 对于已处理的每个成功输入项,仍需要一个输出行。 系统仅将此输出用于错误阈值计算(忽略行的实际值)。
compute_target
AmlComputestr
必需

用于 ParallelRunStep 的计算目标。 此参数可以指定为计算目标对象或工作区中计算目标的字符串名称。

node_count
int
必需

计算目标中用于运行 ParallelRunStep 的节点数。

process_count_per_node
int
默认值: None

在每个节点上执行的进程数。 (可选,默认值为节点上的核心数。)

mini_batch_size
str
默认值: None

对于 FileDataset 输入,此字段是用户脚本在一次 run() 调用中可以处理的文件数。 对于 TabularDataset 输入,此字段是用户脚本在一次 run() 调用中可处理的数据的近似大小。 示例值为 1024、1024 KB、10 MB 和 1 GB。 (可选;对于 FileDataset,默认值为 10 个文件,对于 TabularDataset,默认值为 1 MB。)

source_directory
str
默认值: None

指向文件夹的路径,这些文件夹中包含用于在计算目标上执行的 entry_script 和支持文件。

description
str
默认值: None

提供用于显示的 Batch 服务的说明。

logging_level
str
默认值: None

在“日志记录”中定义的日志记录级别名称的字符串。 可能的值为“WARNING”、“INFO”和“DEBUG”。 (可选,默认值为“INFO”。)

run_invocation_timeout
int
默认值: None

每次调用 run() 方法的超时时间(以秒为单位)。 (可选,默认值为 60。)

input_format
str
默认值: None

已弃用。

append_row_file_name
默认值: None

注解

ParallelRunConfig 类用于指定 ParallelRunStep 类的配置。 ParallelRunConfig 和 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

方法

load_yaml

从 YAML 文件加载并行运行配置数据。

save_to_yaml

将并行运行配置数据导出到 YAML 文件。

load_yaml

从 YAML 文件加载并行运行配置数据。

static load_yaml(workspace, path)

参数

workspace
Workspace
必需

从中读取配置数据的工作区。

path
str
必需

从中加载配置的路径。

save_to_yaml

将并行运行配置数据导出到 YAML 文件。

save_to_yaml(path)

参数

path
str
必需

要将文件保存到的路径。