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._ParallelRunStepBaseParallelRunStep
Конструктор
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
|
Выходная привязка порта, которая может использоваться в последующих этапах конвейера. Default value: None
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Список вспомогательных входных эталонных данных. Вспомогательные входные данные не будут секционированы как входные. Default value: None
|
arguments
|
Список аргументов командной строки для передачи скрипту entry_script Python. Default value: None
|
allow_reuse
|
Указывает, должен ли шаг повторно использовать предыдущие результаты при запуске с теми же параметрами и входными данными. Если имеет значение False, для этого этапа всегда будет создаваться новое выполнение во время выполнения конвейера. Default value: True
|
name
Обязательно
|
Имя этапа. Должно быть уникальным для соответствующей рабочей области, должно состоять только из строчных букв, цифр и дефисов, начинаться с буквы и содержать от 3 до 32 символов. |
parallel_run_config
Обязательно
|
Объект ParallelRunConfig, используемый для определения обязательных свойств запуска. |
inputs
Обязательно
|
Список входных наборов данных. Все наборы данных в списке должны быть одного типа. Входные данные будут секционированы для параллельной обработки. Каждый набор данных в списке разделяется на мини-пакеты, и каждый из мини-пакетов обрабатывается одинаково в ходе параллельной обработки. |
output
Обязательно
|
Выходная привязка порта, которая может использоваться в последующих этапах конвейера. |
side_inputs
Обязательно
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Список вспомогательных входных эталонных данных. Вспомогательные входные данные не будут секционированы как входные. |
arguments
Обязательно
|
Список аргументов командной строки для передачи скрипту entry_script Python. |
allow_reuse
Обязательно
|
Указывает, должен ли шаг повторно использовать предыдущие результаты при запуске с теми же параметрами и входными данными. Если имеет значение False, для этого этапа всегда будет создаваться новое выполнение во время выполнения конвейера. |
Комментарии
ParallelRunStep можно использовать для параллельной обработки больших объемов данных. Распространенные варианты использования — это обучение модели ML (Машинного обучения) или запуск автономного вывода для создания прогнозов на основе пакета наблюдений. ParallelRunStep работает, разбивая данные на пакеты, которые обрабатываются параллельно. Размер пакета, количество узлов и другие настраиваемые параметры для ускорения параллельной обработки можно контролировать с помощью класса ParallelRunConfig. ParallelRunStep может работать с TabularDataset или FileDataset в качестве входных данных.
Чтобы использовать ParallelRunStep, необходимо выполнить следующие действия.
Создайте объект ParallelRunConfig, чтобы указать, как выполняется пакетная обработка, с параметрами для управления размером пакета, количеством узлов на целевой объект вычислений и ссылкой на пользовательский скрипт Python.
Создайте объект ParallelRunStep, который использует объект ParallelRunConfig. Определите входные и выходные данные для шага.
Используйте настроенный объект ParallelRunStep в Pipeline так же, как это делается для других типов шагов конвейера.
Примеры работы с классами 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
|
Определения параметров для этапа. Default value: None
|
create_sequencing_ports
|
Если задано значение True, для модуля будут созданы порты последовательной обработки. Default value: True
|
allow_reuse
|
Если задано значение True, модуль будет доступен для повторного использования в будущих конвейерах. Default value: True
|
version
|
Версия модуля. Default value: None
|
arguments
|
Список аргументов с заметками для использования при вызове этого модуля. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект определения модуля. |
create_node
Создание узла для PythonScriptStep и его добавление в указанный граф.
Данный метод не предназначен для непосредственного использования. При создании экземпляра конвейера с помощью ParallelRunStep Машинное обучение Azure автоматически передает обязательные параметры через этот метод, чтобы данный этап можно было добавить в граф конвейера, представляющий рабочий процесс.
create_node(graph, default_datastore, context)
Параметры
Имя | Описание |
---|---|
graph
Обязательно
|
Объект графа. |
default_datastore
Обязательно
|
Хранилище данных по умолчанию. |
context
Обязательно
|
<xref:azureml.pipeline.core._GraphContext>
Контекст. |
Возвращаемое значение
Тип | Описание |
---|---|
Созданный узел. |