Схемы YAML для командного компонента CLI (версия 2)
ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)
Исходную схему JSON можно найти по адресу https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json.
Примечание.
Синтаксис YAML, описанный в этом документе, основан на схеме JSON для последней версии расширения ML CLI (версия 2). Этот синтаксис гарантированно работает только с последней версией расширения ML CLI (версия 2). Схемы для старых версий расширений можно найти по адресу https://azuremlschemasprod.azureedge.net/.
Синтаксис YAML
Ключ | Тип | Описание | Допустимые значения | Default value |
---|---|---|---|---|
$schema |
строка | Схема YAML. При создании файла YAML с помощью расширения VS Code Машинного обучения Azure вы можете добавить $schema в верхней части файла, чтобы вызывать завершение схемы и ресурсов. |
||
type |
const | Тип компонента. | command |
command |
name |
строка | Обязательный. Имя компонента. Должно начинаться с буквы нижнего регистра. Допустимые символы — строчные буквы, цифры и символы подчеркивания(_). Максимальная длина составляет 255 символов. | ||
version |
строка | Версия компонента. Если опущено, Машинное обучение Azure автоматически создает версию. | ||
display_name |
строка | Отображаемое имя компонента в пользовательском интерфейсе Studio. Может быть неуникальным в пределах рабочей области. | ||
description |
строка | Описание компонента. | ||
tags |
объект | Словарь тегов для компонента. | ||
is_deterministic |
boolean | Этот параметр определяет, будет ли компонент создавать одинаковые выходные данные для одних и того же входных данных. Обычно это false необходимо задать для компонентов, которые загружают данные из внешних источников, например импорт данных из URL-адреса. Это связано с тем, что данные по URL-адресу могут меняться с течением времени. |
true |
|
command |
строка | Обязательный. Команда для выполнения. | ||
code |
строка | Локальный путь к каталогу исходного кода, который будет отправлен и использован для компонента. | ||
environment |
Строка или объект | Обязательный. Среда, используемая для компонента. Это значение может быть ссылкой на существующую среду с управлением версиями в рабочей области или спецификацией встроенной среды. Чтобы ссылаться на существующую настраиваемую azureml:<environment-name>:<environment-version> среду, используйте синтаксис. Чтобы ссылаться на курированную среду, используйте azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> синтаксис. Дополнительные сведения о том, как ссылаться на среды, см. в статье "Управление средами" Чтобы определить встроенную среду, следуйте схеме среды. name Исключите свойства и version свойства, так как они не поддерживаются для встроенных сред. |
||
distribution |
объект | Конфигурация распределения для сценариев распределенного обучения. Является одной из следующих: MpiConfiguration, PyTorchConfiguration или TensorFlowConfiguration. | ||
resources.instance_count |
integer | Число узлов, используемых для задания. | 1 |
|
inputs |
объект | Словарь входных данных компонента. Ключ — это имя входных данных в контексте компонента, а значение — определение входных данных компонента. На входные данные можно ссылаться в command с помощью выражения ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
объект | Определение входных данных компонента. Набор настраиваемых свойств см. в разделе Входные данные компонента. | ||
outputs |
объект | Словарь выходных данных компонента. Ключ — это имя выходных данных в контексте компонента, а значение — определение выходных данных компонента. На выходные данные можно ссылаться в command с помощью выражения ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
объект | Определение выходных данных компонента. Набор настраиваемых свойств см. в разделе Выходные данные компонента. |
Конфигурации распределения
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 |
строка | Обязательный. Тип входных данных компонента. Дополнительные сведения о доступе к данным | number , integer , boolean string uri_file uri_folder mltable mlflow_model |
|
description |
строка | Описание входных данных. | ||
default |
число, целое число, логическое значение или строка | Значение входного параметра по умолчанию. | ||
optional |
boolean | Указывает, требуются ли входные данные. Если задано значение true , необходимо использовать команду с необязательными входными данными. $[[]] |
false |
|
min |
целое число или число | Минимальное допустимое значение для входных данных. Это поле может быть указано, только если поле type имеет значение number или integer . |
||
max |
целое число или число | Максимальное допустимое значение для входных данных. Это поле может быть указано, только если поле type имеет значение number или integer . |
||
enum |
array | Список допустимых значений для входных данных. Применимо только в том string случае, если type это поле. |
Выходные данные компонента
Ключ | Тип | Описание | Допустимые значения | Default value |
---|---|---|---|---|
type |
строка | Обязательный. Тип выходных данных компонента. | uri_file , , uri_folder mltable mlflow_model |
|
description |
строка | Описание выходных данных. |
Замечания
С помощью команд az ml component
вы можете управлять компонентами Машинного обучения Azure.
Примеры
Примеры компонентов команд доступны в репозитории примеров GitHub. Ниже приведены отдельные примеры.
Примеры доступны в репозитории примеров GitHub. Ниже показаны некоторые из них.
YAML: компонент команды Hello World
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command
name: hello_python_world
display_name: Hello_Python_World
version: 1
code: ./src
environment:
image: python
command: >-
python hello.py
YAML: компонент с различными типами входных данных
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_data_component_cli
display_name: train_data
description: A example train component
tags:
author: azureml-sdk-team
type: command
inputs:
training_data:
type: uri_folder
max_epocs:
type: integer
optional: true
learning_rate:
type: number
default: 0.01
optional: true
learning_rate_schedule:
type: string
default: time-based
optional: true
outputs:
model_output:
type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
command: >-
python train.py
--training_data ${{inputs.training_data}}
$[[--max_epocs ${{inputs.max_epocs}}]]
$[[--learning_rate ${{inputs.learning_rate}}]]
$[[--learning_rate_schedule ${{inputs.learning_rate_schedule}}]]
--model_output ${{outputs.model_output}}
Определение необязательных входных данных в командной строке
Если входные данные заданы как optional = true
, необходимо использовать для $[[]]
применения командной строки с входными данными. Например, $[[--input1 ${{inputs.input1}}]
. Командная строка во время выполнения может иметь разные входные данные.
- Если вы используете только необходимые
training_data
иmodel_output
параметры, командная строка будет выглядеть следующим образом:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
Если значение не указано во время выполнения, learning_rate
и learning_rate_schedule
будет использоваться значение по умолчанию.
- Если все входные и выходные данные предоставляют значения во время выполнения, командная строка будет выглядеть следующим образом:
python train.py --training_data some_input_path --max_epocs 10 --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
Распространенные ошибки и рекомендации
Ниже приведены некоторые распространенные ошибки и соответствующие рекомендуемые предложения при определении компонента.
Ключ | ошибки | Рекомендация |
---|---|---|
Команда | 1. Только необязательные входные данные могут находиться в $[[]] 2. Использование \ для создания новой строки не поддерживается в команде.3. Входные данные или выходные данные не найдены. |
1. Убедитесь, что все входные или выходные данные, используемые в команде, уже определены в inputs разделах и outputs используют правильный формат для необязательных входных или обязательных$[[]] .${{}} 2. Не используйте \ для создания новой строки. |
environment | 1. Для версии {envVersion} среды {envName} не существует определения. 2. Среда не существует для имени {envName} , версии {envVersion} .3. Не удалось найти ресурс с идентификатором {envAssetId} . |
1. Убедитесь, что имя среды и версия, которые вы ссылаетесь в определении компонента, существует. 2. Если вы ссылаетесь на зарегистрированную среду, необходимо указать версию. |
входные и выходные данные | 1. Имена входных и выходных данных конфликтуют с системными зарезервированными параметрами. 2. Повторяющиеся имена входных или выходных данных. |
1. Не используйте какие-либо из этих зарезервированных параметров в качестве имени входных и выходных данных: path , , ld_library_path , . shell pwd user logname home 2. Убедитесь, что имена входных и выходных данных не дублируются. |