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

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

inputs
list[Union[DatasetConsumptionConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset]]
Обязательно

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

output
Union[PipelineData, OutputPortBinding, OutputDatasetConfig]
значение по умолчанию: None

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

side_inputs
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
значение по умолчанию: None

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

arguments
list[str]
значение по умолчанию: None

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

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

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

name
str
Обязательно

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

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

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

inputs
list[Union[DatasetConsumptionConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset]]
Обязательно

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

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

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

side_inputs
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Обязательно

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

arguments
list[str]
Обязательно

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

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

Указывает, должен ли шаг повторно использовать предыдущие результаты при запуске с теми же параметрами и входными данными. Если имеет значение 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
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
AbstractAzureStorageDatastore или AzureDataLakeDatastore
Обязательно

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

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

Контекст.

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

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

Возвращаемый тип