ОБЛАСТЬ ПРИМЕНЕНИЯ:
расширение машинного обучения 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
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
$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
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
const |
Обязательный. Тип алгоритма выборки. |
random |
|
seed |
целое число |
Случайное начальное значение, используемое для инициализации случайного поколения чисел. Если опущено, начальное значение по умолчанию равно NULL. |
|
|
rule |
строка |
Используемый тип случайной выборки. По умолчанию random используется простая единая случайная выборка, в то время как sobol используется квази-случайный последовательности Sobol. |
random , sobol |
random |
GridSamplingAlgorithm
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип алгоритма выборки. |
grid |
BayesianSamplingAlgorithm
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип алгоритма выборки. |
bayesian |
Политика преждевременного завершения
BanditPolicy
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
const |
Обязательный. Тип политики. |
bandit |
|
slack_factor |
число/номер |
Коэффициент, используемый для вычисления допустимого отхождения от пробной версии с наибольшей эффективностью.
Требуется одно из slack_factor или slack_amount . |
|
|
slack_amount |
число/номер |
Допустимое абсолютное отхождение от пробной версии с наибольшей эффективностью.
Требуется одно из slack_factor или slack_amount . |
|
|
evaluation_interval |
целое число |
Частота применения политики. |
|
1 |
delay_evaluation |
целое число |
Число интервалов, для которых откладывается первая оценка политики. Если этот параметр указан, политика применяется ко всем кратным evaluation_interval , которые больше или равны delay_evaluation . |
|
0 |
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
const |
Обязательный. Тип политики. |
median_stopping |
|
evaluation_interval |
целое число |
Частота применения политики. |
|
1 |
delay_evaluation |
целое число |
Число интервалов, для которых откладывается первая оценка политики. Если этот параметр указан, политика применяется ко всем кратным evaluation_interval , которые больше или равны delay_evaluation . |
|
0 |
УсечениеSelectionPolicy
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
const |
Обязательный. Тип политики. |
truncation_selection |
|
truncation_percentage |
целое число |
Обязательный. Процент заданий пробной версии для отмены в каждом интервале оценки. |
|
|
evaluation_interval |
целое число |
Частота применения политики. |
|
1 |
delay_evaluation |
целое число |
Число интервалов, для которых откладывается первая оценка политики. Если этот параметр указан, политика применяется ко всем кратным evaluation_interval , которые больше или равны delay_evaluation . |
|
0 |
Выражения параметров
Выбранный вариант
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип выражения. |
choice |
values |
массив |
Обязательный. Список дискретных значений, из которых нужно выбрать. |
|
Рэндинт
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип выражения. |
randint |
upper |
целое число |
Обязательный. Исключенная верхняя граница диапазона целых чисел. |
|
Qlognormal, qnormal
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип выражения. |
qlognormal , qnormal |
mu |
число/номер |
Обязательный. Среднее значение нормального распределения. |
|
sigma |
число/номер |
Обязательный. Стандартное отклонение от нормального распределения. |
|
q |
целое число |
Обязательный. Коэффициент сглаживания. |
|
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип выражения. |
qloguniform , quniform |
min_value |
число/номер |
Обязательный. Минимальное значение в диапазоне (включительно). |
|
max_value |
число/номер |
Обязательный. Максимальное значение в диапазоне (включительно). |
|
q |
целое число |
Обязательный. Коэффициент сглаживания. |
|
Lognormal, normal
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип выражения. |
lognormal , normal |
mu |
число/номер |
Обязательный. Среднее значение нормального распределения. |
|
sigma |
число/номер |
Обязательный. Стандартное отклонение от нормального распределения. |
|
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип выражения. |
loguniform |
min_value |
число/номер |
Обязательный. Минимальное значение в диапазоне — exp(min_value) (включительно). |
|
max_value |
число/номер |
Обязательный. Максимальное значение диапазона — exp(max_value) (включительно). |
|
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип выражения. |
uniform |
min_value |
число/номер |
Обязательный. Минимальное значение в диапазоне (включительно). |
|
max_value |
число/номер |
Обязательный. Максимальное значение в диапазоне (включительно). |
|
Атрибуты ключа limits
Ключ |
Тип |
Описание |
Значение по умолчанию |
max_total_trials |
целое число |
Максимальное количество заданий пробной версии. |
1000 |
max_concurrent_trials |
целое число |
Максимальное количество заданий пробной версии, которые могут выполняться одновременно. |
По умолчанию — max_total_trials . |
timeout |
целое число |
Максимальное время в секундах, в течение всего задания очистки разрешено выполняться. После достижения этого ограничения система отменяет задание очистки, включая все его пробные версии. |
5184000 |
trial_timeout |
целое число |
Максимальное время в секундах, в течение которого разрешено выполнение задания пробной версии. После достижения этого ограничения система отменяет пробную версию. |
|
Атрибуты ключа trial
Ключ |
Тип |
Описание |
Значение по умолчанию |
command |
строка |
Обязательный. Команда для выполнения. |
|
code |
строка |
Локальный путь к каталогу исходного кода, который будет отправлен и использован для задания. |
|
environment |
Строка или объект |
Обязательный. Среда, используемая для задания. Это значение может быть ссылкой на существующую среду с управлением версиями в рабочей области или спецификацией встроенной среды. Чтобы сослаться на существующую среду, используйте синтаксис azureml:<environment-name>:<environment-version> .
Чтобы определить встроенную среду, следуйте схеме среды. Исключите и name свойства, так как встроенные version среды не поддерживают их. |
|
environment_variables |
объект |
Словарь пар "имя-значение" переменной среды, устанавливаемых для процесса, в котором выполняется команда. |
|
distribution |
объект |
Конфигурация распределения для сценариев распределенного обучения. Одна из конфигураций Mpi, конфигурации PyTorch или TensorFlow. |
|
resources.instance_count |
целое число |
Число узлов, используемых для задания. |
1 |
Конфигурации распределения
MpiConfiguration
Ключ |
Тип |
Описание |
Допустимые значения |
type |
const |
Обязательный. Тип распределения. |
mpi |
process_count_per_instance |
целое число |
Обязательный. Количество процессов, запускаемых на каждом узле для выполнения задания. |
|
PyTorchConfiguration
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
const |
Обязательный. Тип распределения. |
pytorch |
|
process_count_per_instance |
целое число |
Количество процессов, запускаемых на каждом узле для выполнения задания. |
|
1 |
TensorFlowConfiguration
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
const |
Обязательный. Тип распределения. |
tensorflow |
|
worker_count |
целое число |
Количество рабочих ролей, которые необходимо запустить для выполнения задания. |
|
По умолчанию — resources.instance_count . |
parameter_server_count |
целое число |
Количество серверов параметров, которые необходимо запустить для выполнения задания. |
|
0 |
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
строка |
Тип входных данных для задания. Укажите uri_file , чтобы использовать в качестве источника входные данные из одного файла, или uri_folder , чтобы использовать весь каталог с файлами. Дополнительные сведения см. в статье "Дополнительные сведения о доступе к данным". |
uri_file , , uri_folder mltable mlflow_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 , , download direct |
ro_mount |
Выходные данные задания
Ключ |
Тип |
Описание |
Допустимые значения |
Значение по умолчанию |
type |
строка |
Тип выходных данных задания. Для типа по умолчанию uri_folder выходные данные соответствуют папке. |
uri_file , , uri_folder mltable mlflow_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:AzureML-sklearn-1.5@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: hello sweep using sobol и начальное значение
$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
code: src
command: >-
python main.py
--iris-csv ${{inputs.iris_csv}}
--learning-rate ${{search_space.learning_rate}}
--boosting ${{search_space.boosting}}
environment: azureml:AzureML-lightgbm-3.3@latest
inputs:
iris_csv:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm:
type: random
rule: sobol
seed: 123
search_space:
learning_rate:
type: uniform
min_value: 0.01
max_value: 0.9
boosting:
type: choice
values: ["gbdt", "dart"]
objective:
goal: minimize
primary_metric: test-multi_logloss
limits:
max_total_trials: 20
max_concurrent_trials: 10
timeout: 7200
display_name: lightgbm-iris-sweep-example
experiment_name: lightgbm-iris-sweep-example
description: Run a hyperparameter sweep job for LightGBM on Iris dataset.
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:AzureML-sklearn-1.5@latest
inputs:
iris_csv:
type: uri_file
path: wasbs://[email protected]/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.
Следующие шаги