ParallelRunConfig Класс
Определяет конфигурацию объекта ParallelRunStep .
Пример использования ParallelRunStep см. в записной книжке https://aka.ms/batch-inference-notebooks.
Руководство по устранению неполадок см. в разделе https://aka.ms/prstsg. Здесь можно найти дополнительные ссылки.
Инициализировать объект конфигурации.
Конструктор
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='INFO', run_invocation_timeout=60, run_max_try=3, append_row_file_name=None, allowed_failed_count=None, allowed_failed_percent=None, partition_keys=None, environment_variables=None)
Параметры
| Имя | Описание |
|---|---|
|
environment
Обязательно
|
Определение среды, которое настраивает среду Python. Его можно настроить для использования существующей среды Python или настройки временной среды для эксперимента. Определение среды отвечает за определение необходимых зависимостей приложений, таких как conda или pip packages. |
|
entry_script
Обязательно
|
Пользовательский скрипт, который будет выполняться параллельно на нескольких узлах. Это указано как локальный путь к файлу. Если |
|
error_threshold
Обязательно
|
Количество сбоев записей и TabularDataset сбоев файлов для FileDataset этого следует игнорировать во время обработки. Если число ошибок превышает это значение, задание будет прервано. Порог ошибки — для всего входного и не для отдельных мини-пакетов, отправляемых в метод run(). Диапазон равен [-1, int.max]. -1 указывает на пропуск всех сбоев во время обработки. |
|
output_action
Обязательно
|
Порядок организации выходных данных. Текущие поддерживаемые значения: "append_row" и "summary_only".
|
|
compute_target
Обязательно
|
AmlCompute или
str
Целевой объект вычислений для выполнения ParallelRunStep. Этот параметр может быть указан как целевой объект вычислений или имя целевого объекта вычислений в рабочей области. |
|
node_count
Обязательно
|
Число узлов в целевом объекте вычислений, используемого для запуска ParallelRunStep. |
|
process_count_per_node
|
Количество рабочих процессов на узел для параллельного запуска скрипта записи.
Для компьютера GPU значение по умолчанию равно 1.
Для компьютера ЦП значение по умолчанию — это число ядер.
Рабочий процесс будет многократно вызывать Default value: None
|
|
mini_batch_size
|
Для входных данных FileDataset это поле — это количество файлов, которые пользователь может обрабатывать в одном вызове run(). Для входных данных TabularDataset это поле является приблизительным размером данных, которые пользователь может обрабатывать в одном вызове run(). Примеры значений: 1024, 1024 КБ, 10 МБ и 1 ГБ. (необязательно, значение по умолчанию — 10 файлов для FileDataset и 1 МБ для TabularDataset.) Default value: None
|
|
source_directory
|
Путь к папке, содержащей Default value: None
|
|
description
|
Описание для предоставления пакетной службы, используемой для отображения. Default value: None
|
|
logging_level
|
Строка имени уровня ведения журнала, определяемая в разделе "Ведение журнала". Возможные значения: WARNING, INFO и DEBUG. (необязательно, значение по умолчанию — INFO.) Default value: INFO
|
|
run_invocation_timeout
|
Время ожидания в секундах для каждого вызова метода run(). (необязательно, значение по умолчанию — 60.) Default value: 60
|
|
run_max_try
|
Максимальное количество попыток для мини-пакета сбоем или тайм-аута. Диапазон равен [1, int.max]. Значение по умолчанию равно 3. Мини-пакет с деqueue числом больше, чем это не будет обработано снова и будет удален напрямую. Default value: 3
|
|
append_row_file_name
|
Имя выходного файла, если Default value: None
|
|
allowed_failed_count
|
Количество неудачных мини-пакетов, которые следует игнорировать во время обработки. Если неудачное число превышает это значение, задание будет прервано. Это пороговое значение предназначено для всего ввода, а не отдельного мини-пакета, отправленного методу run(). Диапазон равен [-1, int.max]. -1 указывает на пропуск всех сбоев во время обработки. Мини-пакет может завершиться ошибкой при первом обработке, а затем успешно выполнить вторую попытку. Проверка между первым и вторым временем подсчитывает ее как неудачную. Проверка после второго раза не подсчитывает ее как неудачную. Аргумент –error_threshold, –allowed_failed_count и –allowed_failed_percent могут работать вместе. Если несколько указанных, задание будет прервано, если оно превышает любой из них. Default value: None
|
|
allowed_failed_percent
|
Процент неудачных мини-пакетов, которые следует игнорировать во время обработки. Если неудачный процент превышает это значение, задание будет прервано. Это пороговое значение предназначено для всего ввода, а не отдельного мини-пакета, отправленного методу run(). Диапазон равен [0, 100]. 100 или 100.0 указывает на пропуск всех сбоев во время обработки. Проверка начинается после планирования всех мини-пакетов. Аргумент –error_threshold, –allowed_failed_count и –allowed_failed_percent могут работать вместе. Если несколько указанных, задание будет прервано, если оно превышает любой из них. Default value: None
|
|
partition_keys
|
Ключи, используемые для секционирования набора данных на мини-пакеты. Если этот параметр указан, данные с одним и тем же ключом будут секционированы в один мини-пакет. Если указаны оба partition_keys и mini_batch_size, возникает ошибка. Он должен быть списком элементов str каждый из которых является ключом, используемым для секционирования входного набора данных. Однако при повышении до PipelineParameter значения по умолчанию должны быть строкой дампа json списка, так как тип списка пока не поддерживается в PipelineParameter. Входные данные должны быть секционированы, а partition_keys должны быть подмножеством ключей каждого входного набора данных для работы. Default value: None
|
|
environment_variables
|
Словарь имен и значений переменных среды. Эти переменные среды задаются в процессе выполнения пользовательского скрипта. Default value: None
|
|
environment
Обязательно
|
Определение среды, которое настраивает среду Python. Его можно настроить для использования существующей среды Python или настройки временной среды для эксперимента. Определение среды отвечает за определение необходимых зависимостей приложений, таких как conda или pip packages. |
|
entry_script
Обязательно
|
Пользовательский скрипт, который будет выполняться параллельно на нескольких узлах. Это указано как локальный путь к файлу. Если |
|
error_threshold
Обязательно
|
Количество сбоев записей и TabularDataset сбоев файлов для FileDataset этого следует игнорировать во время обработки. Если число ошибок превышает это значение, задание будет прервано. Порог ошибки — для всего входного и не для отдельных мини-пакетов, отправляемых в метод run(). Диапазон равен [-1, int.max]. -1 указывает на пропуск всех сбоев во время обработки. |
|
output_action
Обязательно
|
Порядок организации выходных данных. Текущие поддерживаемые значения: "append_row" и "summary_only".
|
|
compute_target
Обязательно
|
AmlCompute или
str
Целевой объект вычислений для выполнения ParallelRunStep. Этот параметр может быть указан как целевой объект вычислений или имя целевого объекта вычислений в рабочей области. |
|
node_count
Обязательно
|
Число узлов в целевом объекте вычислений, используемого для запуска ParallelRunStep. |
|
process_count_per_node
Обязательно
|
Количество рабочих процессов на узел для параллельного запуска скрипта записи.
Для компьютера GPU значение по умолчанию равно 1.
Для компьютера ЦП значение по умолчанию — это число ядер.
Рабочий процесс будет многократно вызывать |
|
mini_batch_size
Обязательно
|
Для входных данных FileDataset это поле — это количество файлов, которые пользователь может обрабатывать в одном вызове run(). Для входных данных TabularDataset это поле является приблизительным размером данных, которые пользователь может обрабатывать в одном вызове run(). Примеры значений: 1024, 1024 КБ, 10 МБ и 1 ГБ. (необязательно, значение по умолчанию — 10 файлов для FileDataset и 1 МБ для TabularDataset.) |
|
source_directory
Обязательно
|
Путь к папке, содержащей |
|
description
Обязательно
|
Описание для предоставления пакетной службы, используемой для отображения. |
|
logging_level
Обязательно
|
Строка имени уровня ведения журнала, определяемая в разделе "Ведение журнала". Возможные значения: WARNING, INFO и DEBUG. (необязательно, значение по умолчанию — INFO.) |
|
run_invocation_timeout
Обязательно
|
Время ожидания в секундах для каждого вызова метода run(). (необязательно, значение по умолчанию — 60.) |
|
run_max_try
Обязательно
|
Максимальное количество попыток для мини-пакета сбоем или тайм-аута. Диапазон равен [1, int.max]. Значение по умолчанию равно 3. Мини-пакет с деqueue числом больше, чем это не будет обработано снова и будет удален напрямую. |
|
append_row_file_name
Обязательно
|
Имя выходного файла, если |
|
allowed_failed_count
Обязательно
|
Количество неудачных мини-пакетов, которые следует игнорировать во время обработки. Если неудачное число превышает это значение, задание будет прервано. Это пороговое значение предназначено для всего ввода, а не отдельного мини-пакета, отправленного методу run(). Диапазон равен [-1, int.max]. -1 указывает на пропуск всех сбоев во время обработки. Мини-пакет может завершиться ошибкой при первом обработке, а затем успешно выполнить вторую попытку. Проверка между первым и вторым временем подсчитывает ее как неудачную. Проверка после второго раза не подсчитывает ее как неудачную. Аргумент –error_threshold, –allowed_failed_count и –allowed_failed_percent могут работать вместе. Если несколько указанных, задание будет прервано, если оно превышает любой из них. |
|
allowed_failed_percent
Обязательно
|
Процент неудачных мини-пакетов, которые следует игнорировать во время обработки. Если неудачный процент превышает это значение, задание будет прервано. Это пороговое значение предназначено для всего ввода, а не отдельного мини-пакета, отправленного методу run(). Диапазон равен [0, 100]. 100 или 100.0 указывает на пропуск всех сбоев во время обработки. Проверка начинается после планирования всех мини-пакетов. Аргумент –error_threshold, –allowed_failed_count и –allowed_failed_percent могут работать вместе. Если несколько указанных, задание будет прервано, если оно превышает любой из них. |
|
partition_keys
Обязательно
|
Ключи, используемые для секционирования набора данных на мини-пакеты. Если этот параметр указан, данные с одним и тем же ключом будут секционированы в один мини-пакет. Если указаны оба partition_keys и mini_batch_size, возникает ошибка. Он должен быть списком элементов str каждый из которых является ключом, используемым для секционирования входного набора данных. Однако при повышении до PipelineParameter значения по умолчанию должны быть строкой дампа json списка, так как тип списка пока не поддерживается в PipelineParameter. Входные данные должны быть секционированы, а partition_keys должны быть подмножеством ключей каждого входного набора данных для работы. |
|
environment_variables
Обязательно
|
Словарь имен и значений переменных среды. Эти переменные среды задаются в процессе выполнения пользовательского скрипта. |
Комментарии
Класс ParallelRunConfig используется для предоставления конфигурации для ParallelRunStep класса. ParallelRunConfig и ParallelRunStep можно использовать вместе для параллельной обработки больших объемов данных. Распространенные варианты использования — это обучение модели ML (Машинного обучения) или запуск автономного вывода для создания прогнозов на основе пакета наблюдений. ParallelRunStep работает, разбивая данные на пакеты, которые обрабатываются параллельно. Размер пакета, количество узлов и другие настраиваемые параметры для ускорения параллельной обработки можно контролировать с помощью ParallelRunConfig класса. ParallelRunStep может работать с TabularDataset входными данными или FileDataset как входные данные.
Чтобы использовать ParallelRunStep и ParallelRunConfig, выполните следующие действия.
Создайте объект, чтобы указать, как выполняется пакетная 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", # or partition_keys=["key1", "key2"], which is another way to partition the
# input to mini-batches, refer to the parameter description for details
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
run_max_try=3,
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.
Методы
| load_yaml |
Загрузка данных конфигурации параллельного запуска из YAML-файла. |
| save_to_yaml |
Экспорт данных конфигурации параллельного запуска в YAML-файл. |
load_yaml
save_to_yaml
Экспорт данных конфигурации параллельного запуска в YAML-файл.
save_to_yaml(path)
Параметры
| Имя | Описание |
|---|---|
|
path
Обязательно
|
Путь к сохранению файла. |