Поделиться через


ParallelRunStep Класс

Создает этап конвейера Машинного обучения Azure для асинхронной и параллельной обработки больших объемов данных.

Пример использования ParallelRunStep приведен в записной книжке: https://aka.ms/batch-inference-notebooks.

Руководство по устранению неполадок приведено в https://aka.ms/prstsg. Там можно найти дополнительные ссылки.

Создайте шаг конвейера Машинного обучения Azure для асинхронной и параллельной обработки больших объемов данных.

Пример использования ParallelRunStep см. по ссылке на записную книжку https://aka.ms/batch-inference-notebooks.

Наследование
azureml.pipeline.core._parallel_run_step_base._ParallelRunStepBase
ParallelRunStep

Конструктор

ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)

Параметры

Имя Описание
name
Обязательно
str

Имя этапа. Должно быть уникальным для соответствующей рабочей области, должно состоять только из строчных букв, цифр и дефисов, начинаться с буквы и содержать от 3 до 32 символов.

parallel_run_config
Обязательно

Объект ParallelRunConfig, используемый для определения обязательных свойств запуска.

inputs
Обязательно

Список входных наборов данных. Все наборы данных в списке должны быть одного типа. Входные данные будут секционированы для параллельной обработки. Каждый набор данных в списке разделяется на мини-пакеты, и каждый из мини-пакетов обрабатывается одинаково в ходе параллельной обработки.

output

Выходная привязка порта, которая может использоваться в последующих этапах конвейера.

значение по умолчанию: None
side_inputs

Список вспомогательных входных эталонных данных. Вспомогательные входные данные не будут секционированы как входные.

значение по умолчанию: None
arguments

Список аргументов командной строки для передачи скрипту entry_script Python.

значение по умолчанию: None
allow_reuse

Указывает, должен ли шаг повторно использовать предыдущие результаты при запуске с теми же параметрами и входными данными. Если имеет значение False, для этого этапа всегда будет создаваться новое выполнение во время выполнения конвейера.

значение по умолчанию: True
name
Обязательно
str

Имя этапа. Должно быть уникальным для соответствующей рабочей области, должно состоять только из строчных букв, цифр и дефисов, начинаться с буквы и содержать от 3 до 32 символов.

parallel_run_config
Обязательно

Объект ParallelRunConfig, используемый для определения обязательных свойств запуска.

inputs
Обязательно

Список входных наборов данных. Все наборы данных в списке должны быть одного типа. Входные данные будут секционированы для параллельной обработки. Каждый набор данных в списке разделяется на мини-пакеты, и каждый из мини-пакетов обрабатывается одинаково в ходе параллельной обработки.

output
Обязательно

Выходная привязка порта, которая может использоваться в последующих этапах конвейера.

side_inputs
Обязательно

Список вспомогательных входных эталонных данных. Вспомогательные входные данные не будут секционированы как входные.

arguments
Обязательно

Список аргументов командной строки для передачи скрипту entry_script Python.

allow_reuse
Обязательно

Указывает, должен ли шаг повторно использовать предыдущие результаты при запуске с теми же параметрами и входными данными. Если имеет значение False, для этого этапа всегда будет создаваться новое выполнение во время выполнения конвейера.

Комментарии

ParallelRunStep можно использовать для параллельной обработки больших объемов данных. Распространенные варианты использования — это обучение модели ML (Машинного обучения) или запуск автономного вывода для создания прогнозов на основе пакета наблюдений. ParallelRunStep работает, разбивая данные на пакеты, которые обрабатываются параллельно. Размер пакета, количество узлов и другие настраиваемые параметры для ускорения параллельной обработки можно контролировать с помощью класса ParallelRunConfig. ParallelRunStep может работать с TabularDataset или FileDataset в качестве входных данных.

Чтобы использовать ParallelRunStep, необходимо выполнить следующие действия.

  • Создайте объект ParallelRunConfig, чтобы указать, как выполняется пакетная обработка, с параметрами для управления размером пакета, количеством узлов на целевой объект вычислений и ссылкой на пользовательский скрипт Python.

  • Создайте объект ParallelRunStep, который использует объект ParallelRunConfig. Определите входные и выходные данные для шага.

  • Используйте настроенный объект ParallelRunStep в Pipeline так же, как это делается для других типов шагов конвейера.

Примеры работы с классами ParallelRunStep и ParallelRunConfig для вывода пакетов рассматриваются в следующих статьях:


   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
Обязательно
str

Тип выполнения класса модуля.

input_bindings
Обязательно

Входные привязки этапа.

output_bindings
Обязательно

Выходные привязки этапа.

param_defs

Определения параметров для этапа.

значение по умолчанию: None
create_sequencing_ports

Если задано значение True, для модуля будут созданы порты последовательной обработки.

значение по умолчанию: True
allow_reuse

Если задано значение True, модуль будет доступен для повторного использования в будущих конвейерах.

значение по умолчанию: True
version
str

Версия модуля.

значение по умолчанию: None
arguments

Список аргументов с заметками для использования при вызове этого модуля.

значение по умолчанию: None

Возвращаемое значение

Тип Описание

Объект определения модуля.

create_node

Создание узла для PythonScriptStep и его добавление в указанный граф.

Данный метод не предназначен для непосредственного использования. При создании экземпляра конвейера с помощью ParallelRunStep Машинное обучение Azure автоматически передает обязательные параметры через этот метод, чтобы данный этап можно было добавить в граф конвейера, представляющий рабочий процесс.

create_node(graph, default_datastore, context)

Параметры

Имя Описание
graph
Обязательно

Объект графа.

default_datastore
Обязательно

Хранилище данных по умолчанию.

context
Обязательно
<xref:azureml.pipeline.core._GraphContext>

Контекст.

Возвращаемое значение

Тип Описание

Созданный узел.