Схема YAML заданий очистки CLI (версия 2)

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

Исходную схему JSON можно найти по адресу https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json.

Примечание.

Синтаксис YAML, описанный в этом документе, основан на схеме JSON для последней версии расширения ML CLI (версия 2). Этот синтаксис гарантированно работает только с последней версией расширения ML CLI (версия 2). Схемы для старых версий расширений можно найти по адресу https://azuremlschemasprod.azureedge.net/.

Синтаксис YAML

Ключ Тип Описание Допустимые значения Default value
$schema строка Схема YAML. Если вы используете расширение МАШИННОЕ ОБУЧЕНИЕ AZURE VS Code для создания ФАЙЛА YAML, можно вызвать завершение схемы и ресурсов, если вы включаете $schema в начало файла.
type const Обязательный. Тип задания. sweep sweep
name строка Имя задания. Должно быть уникальным для всех заданий в рабочей области. Если опущено, Машинное обучение Azure автоматически создает GUID для имени.
display_name строка Отображаемое имя задания в пользовательском интерфейсе студии. Может быть неуникальным в пределах рабочей области. Если опущено, Машинное обучение Azure автоматически создает идентификатор прилагательного имени, доступный для чтения.
experiment_name строка Упорядочение задания под именем эксперимента. Запись выполнения каждого задания организована в соответствии с соответствующим экспериментом на вкладке "Эксперименты" студии. Если опущено, Машинное обучение Azure по умолчанию используется experiment_name имя рабочего каталога, в котором было создано задание.
description строка Описание задания.
tags объект Словарь тегов для задания.
sampling_algorithm объект Обязательный. Алгоритм выборки параметров, используемый для search_space. Поддерживаются значения: RandomSamplingAlgorithm, GridSamplingAlgorithm и BayesianSamplingAlgorithm.
search_space объект Обязательный. Словарь пространства поиска гиперпараметров. Имя гиперпараметра является ключом, а значением является выражение параметра.

Гиперпараметры можно ссылаться в trial.command${{ search_space.<hyperparameter> }} выражении.
search_space.<hyperparameter> объект Посетите выражения параметров для набора возможных выражений.
objective.primary_metric строка Обязательный. Имя основной метрики, сообщаемой каждым заданием пробной версии. Метрика должна быть зарегистрирована в скрипте обучения пользователя, используя mlflow.log_metric() то же соответствующее имя метрики.
objective.goal строка Обязательный. Цель оптимизации objective.primary_metric. maximize, minimize
early_termination объект Используемая политика раннего завершения. Задание пробной версии отменяется при соблюдении критериев указанной политики. Если опущено, политика досрочного завершения не применяется. BanditPolicy, MedianStoppingPolicy или TruncationSelectionPolicy.
limits объект Ограничения для задания очистки. См. Атрибуты ключа limits.
compute строка Обязательный. Имя целевого объекта вычислений, на котором выполняется задание, с синтаксисом azureml:<compute_name> .
trial объект Обязательный. Шаблон задания для каждой пробной версии. Каждое пробное задание предоставляется с различным сочетанием значений гиперпараметра, которые из системных примеров search_spaceпредоставляются. Посетите атрибуты trial ключа.
inputs объект Словарь входных данных для задания. Ключ — это имя входных данных в контексте задания, а значение — это входное значение.

На входные данные можно ссылаться в command с помощью выражения ${{ inputs.<input_name> }}.
inputs.<input_name> число, целое число, логическое значение, строка или объект Одно из литеральных значений (число типа, целое число, логическое значение или строка) или объект, содержащий спецификацию входных данных задания.
outputs объект Словарь конфигураций выходных данных для задания. Ключ — это имя выходных данных в контексте задания, а значение — выходная конфигурация.

На выходные данные можно ссылаться в command с помощью выражения ${{ outputs.<output_name> }}.
outputs.<output_name> объект Вы можете оставить объект пустым, и в этом случае выходные данные по uri_folder умолчанию являются типом и Машинное обучение Azure системе генерирует выходное расположение выходных данных. Все файлы в выходной каталог записываются с помощью подключения чтения и записи. Чтобы указать другой режим выходных данных, укажите объект, содержащий спецификацию выходных данных задания.
identity объект Удостоверение используется для доступа к данным. Это может быть конфигурация удостоверений пользователей, конфигурация управляемого удостоверения или нет. Для UserIdentityConfiguration удостоверение отправителя заданий используется для доступа к входным данным и записи результатов в выходную папку. В противном случае используется управляемое удостоверение целевого объекта вычислений.

Алгоритм выборки

RandomSamplingAlgorithm

Ключ Тип Описание Допустимые значения Default value
type const Обязательный. Тип алгоритма выборки. random
seed integer Случайное начальное значение, используемое для инициализации случайного поколения чисел. Если опущено, начальное значение по умолчанию равно NULL.
rule строка Используемый тип случайной выборки. По умолчанию randomиспользуется простая единая случайная выборка, в то время как sobol используется квази-случайный последовательности Sobol. random, sobol random

GridSamplingAlgorithm

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип алгоритма выборки. grid

BayesianSamplingAlgorithm

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип алгоритма выборки. bayesian

Политика преждевременного завершения

BanditPolicy

Ключ Тип Описание Допустимые значения Default value
type const Обязательный. Тип политики. bandit
slack_factor number Коэффициент, используемый для вычисления допустимого отхождения от пробной версии с наибольшей эффективностью. Требуется одно из slack_factor или slack_amount.
slack_amount number Допустимое абсолютное отхождение от пробной версии с наибольшей эффективностью. Требуется одно из slack_factor или slack_amount.
evaluation_interval integer Частота применения политики. 1
delay_evaluation integer Число интервалов, для которых откладывается первая оценка политики. Если этот параметр указан, политика применяется ко всем кратным evaluation_interval, которые больше или равны delay_evaluation. 0

MedianStoppingPolicy

Ключ Тип Описание Допустимые значения Default value
type const Обязательный. Тип политики. median_stopping
evaluation_interval integer Частота применения политики. 1
delay_evaluation integer Число интервалов, для которых откладывается первая оценка политики. Если этот параметр указан, политика применяется ко всем кратным evaluation_interval, которые больше или равны delay_evaluation. 0

TruncationSelectionPolicy

Ключ Тип Описание Допустимые значения Default value
type const Обязательный. Тип политики. truncation_selection
truncation_percentage integer Обязательный. Процент заданий пробной версии для отмены в каждом интервале оценки.
evaluation_interval integer Частота применения политики. 1
delay_evaluation integer Число интервалов, для которых откладывается первая оценка политики. Если этот параметр указан, политика применяется ко всем кратным evaluation_interval, которые больше или равны delay_evaluation. 0

Выражения параметров

Выбранный вариант

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип выражения. choice
values array Обязательный. Список дискретных значений, из которых нужно выбрать.

Рэндинт

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип выражения. randint
upper integer Обязательный. Исключенная верхняя граница диапазона целых чисел.

Qlognormal, qnormal

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип выражения. qlognormal, qnormal
mu number Обязательный. Среднее значение нормального распределения.
sigma number Обязательный. Стандартное отклонение от нормального распределения.
q integer Обязательный. Коэффициент сглаживания.

Qloguniform, quniform

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип выражения. qloguniform, quniform
min_value number Обязательный. Минимальное значение в диапазоне (включительно).
max_value number Обязательный. Максимальное значение в диапазоне (включительно).
q integer Обязательный. Коэффициент сглаживания.

Lognormal, normal

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип выражения. lognormal, normal
mu number Обязательный. Среднее значение нормального распределения.
sigma number Обязательный. Стандартное отклонение от нормального распределения.

Loguniform

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип выражения. loguniform
min_value number Обязательный. Минимальное значение в диапазоне — exp(min_value) (включительно).
max_value number Обязательный. Максимальное значение диапазона — exp(max_value) (включительно).

Пропорционально

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип выражения. uniform
min_value number Обязательный. Минимальное значение в диапазоне (включительно).
max_value number Обязательный. Максимальное значение в диапазоне (включительно).

Атрибуты ключа limits

Ключ Тип Описание Default value
max_total_trials integer Максимальное количество заданий пробной версии. 1000
max_concurrent_trials integer Максимальное количество заданий пробной версии, которые могут выполняться одновременно. По умолчанию — max_total_trials.
timeout integer Максимальное время в секундах, в течение всего задания очистки разрешено выполняться. После достижения этого ограничения система отменяет задание очистки, включая все его пробные версии. 5184000
trial_timeout integer Максимальное время в секундах, в течение которого разрешено выполнение задания пробной версии. После достижения этого ограничения система отменяет пробную версию.

Атрибуты ключа trial

Ключ Тип Описание Default value
command строка Обязательный. Команда для выполнения.
code строка Локальный путь к каталогу исходного кода, который будет отправлен и использован для задания.
environment Строка или объект Обязательный. Среда, используемая для задания. Это значение может быть ссылкой на существующую среду с управлением версиями в рабочей области или спецификацией встроенной среды.

Чтобы сослаться на существующую среду, используйте синтаксис azureml:<environment-name>:<environment-version>.

Чтобы определить встроенную среду, следуйте схеме среды. Исключите и version свойства, так как встроенные name среды не поддерживают их.
environment_variables объект Словарь пар "имя-значение" переменной среды, устанавливаемых для процесса, в котором выполняется команда.
distribution объект Конфигурация распределения для сценариев распределенного обучения. Одна из конфигураций Mpi, конфигурации PyTorch или TensorFlow.
resources.instance_count integer Число узлов, используемых для задания. 1

Конфигурации распределения

MpiConfiguration
Ключ Тип Описание Допустимые значения
type const Обязательный. Тип распределения. mpi
process_count_per_instance integer Обязательный. Количество процессов, запускаемых на каждом узле для выполнения задания.
PyTorchConfiguration
Ключ Тип Описание Допустимые значения Default value
type const Обязательный. Тип распределения. pytorch
process_count_per_instance integer Количество процессов, запускаемых на каждом узле для выполнения задания. 1
TensorFlowConfiguration
Ключ Тип Описание Допустимые значения Default value
type const Обязательный. Тип распределения. tensorflow
worker_count integer Количество рабочих ролей, которые необходимо запустить для выполнения задания. По умолчанию — resources.instance_count.
parameter_server_count integer Количество серверов параметров, которые необходимо запустить для выполнения задания. 0

Входные данные задания

Ключ Тип Описание Допустимые значения Default value
type строка Тип входных данных для задания. Укажите uri_file, чтобы использовать в качестве источника входные данные из одного файла, или uri_folder, чтобы использовать весь каталог с файлами. Дополнительные сведения см. в статье "Дополнительные сведения о доступе к данным". uri_file, , uri_foldermltablemlflow_model uri_folder
path строка Путь к данным, которые используются в качестве входных данных. Это значение можно указать несколькими способами:

– локальный путь к файлу или папке источника данных, например path: ./iris.csv. Данные отправляются во время отправки задания.

— универсальный код ресурса (URI) для облачного пути к файлу или папке, которые нужно использовать в качестве входных данных. Поддерживаются следующие типы URI: azureml, https, wasbs, abfss, adl. Дополнительные сведения об использовании формата URI см. в синтаксисе azureml://Core yaml.

— Существующий зарегистрированный Машинное обучение Azure ресурс данных, используемый в качестве входных данных. Чтобы ссылаться на зарегистрированный ресурс данных, используйте azureml:<data_name>:<data_version> синтаксис или azureml:<data_name>@latest (чтобы ссылаться на последнюю версию этого ресурса данных), например path: azureml:cifar10-data:1 или path: azureml:cifar10-data@latest.
mode строка Режим доставки данных в целевой объект вычислений.

Для подключения только для чтения (ro_mount) данные используются в качестве пути подключения. Папка подключена как папка, и файл подключается в виде файла. Машинное обучение Azure разрешает входные данные пути подключения.

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

Для только URL-адреса расположения хранилища артефактов или артефактов данных вместо подключения или загрузки самих данных используйте direct режим. Это передает URL-адрес расположения хранилища в качестве входных данных задания. В этом случае вам придется самостоятельно обрабатывать учетные данные для доступа к хранилищу.
ro_mount, , downloaddirect ro_mount

Выходные данные задания

Ключ Тип Описание Допустимые значения Default value
type строка Тип выходных данных задания. Для типа по умолчанию uri_folder выходные данные соответствуют папке. uri_file, , uri_foldermltablemlflow_model uri_folder
mode строка Режим доставки выходного файла или файлов в целевое хранилище. Для режима подключения чтения и записи (rw_mount) выходной каталог является подключенным каталогом. В режиме отправки все файлы, записанные в конце задания, отправляются. rw_mount, upload rw_mount

Конфигурации удостоверений

UserIdentityConfiguration

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип удостоверения. user_identity

ManagedIdentityConfiguration

Ключ Тип Описание Допустимые значения
type const Обязательный. Тип удостоверения. managed или managed_identity

Замечания

С помощью az ml job команды можно управлять заданиями Машинное обучение Azure.

Примеры

Ознакомьтесь с примерами репозитория GitHub. Ниже приведено несколько примеров:

YAML: очистка Hello

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  command: >-
    python hello-sweep.py
    --A ${{inputs.A}}
    --B ${{search_space.B}}
    --C ${{search_space.C}}
  code: src
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  A: 0.5
sampling_algorithm: random
search_space:
  B:
    type: choice
    values: ["hello", "world", "hello_world"]
  C:
    type: uniform
    min_value: 0.1
    max_value: 1.0
objective:
  goal: minimize
  primary_metric: random_metric
limits:
  max_total_trials: 4
  max_concurrent_trials: 2
  timeout: 3600
display_name: hello-sweep-example
experiment_name: hello-sweep-example
description: Hello sweep job example.

YAML: базовая настройка параметров для модели Python

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py 
    --iris-csv ${{inputs.iris_csv}}
    --C ${{search_space.C}}
    --kernel ${{search_space.kernel}}
    --coef0 ${{search_space.coef0}}
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  C:
    type: uniform
    min_value: 0.5
    max_value: 0.9
  kernel:
    type: choice
    values: ["rbf", "linear", "poly"]
  coef0:
    type: uniform
    min_value: 0.1
    max_value: 1
objective:
  goal: minimize
  primary_metric: training_f1_score
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: sklearn-iris-sweep-example
experiment_name: sklearn-iris-sweep-example
description: Sweep hyperparemeters for training a scikit-learn SVM on the Iris dataset.

Следующие шаги