Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНЯЕТСЯ К:
Расширение Azure CLI ML версии 2 (текущий)
Исходную схему JSON можно найти по адресу https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.
Замечание
Синтаксис YAML, описанный в этом документе, основан на схеме JSON для последней версии расширения ML CLI (версия 2). Этот синтаксис гарантированно работает только с последней версией расширения ML CLI (версия 2). Схемы для старых версий расширений можно найти по адресу https://azuremlschemasprod.azureedge.net/.
Синтаксис YAML
| Ключ | Тип | Описание | Допустимые значения | Значение по умолчанию |
|---|---|---|---|---|
$schema |
струна | Схема YAML. При создании файла YAML с помощью расширения VS Code Машинного обучения Azure вы можете добавить $schema в верхней части файла, чтобы вызывать завершение схемы и ресурсов. |
||
type |
const | Тип задания. | command |
command |
name |
струна | Имя задания. Должно быть уникальным для всех заданий в рабочей области. Если опущено, Машинное обучение Azure автоматически создает GUID для имени. | ||
display_name |
струна | Отображаемое имя задания в пользовательском интерфейсе студии. Может быть неуникален в рабочей области. Если опущено, Машинное обучение Azure автоматически создает идентификатор прилагательного имени, доступный для чтения. | ||
experiment_name |
струна | Имя эксперимента, по которому будет организовано задание. Запись выполнения каждого задания организована в соответствии с соответствующим экспериментом на вкладке "Эксперименты" студии. Если опущено, машинное обучение Azure по умолчанию использует имя рабочего каталога, в котором было создано задание. | ||
description |
струна | Описание задания. | ||
tags |
объект | Словарь тегов для задания. | ||
command |
струна | Команда для выполнения. | ||
code |
струна | Локальный путь к каталогу исходного кода, который будет отправлен и использован для задания. | ||
environment |
строка или объект | Среда, используемая для задания. Может быть ссылка на существующую версию среды в рабочей области или встроенную спецификацию среды. Чтобы ссылаться на существующую среду, используйте azureml:<environment_name>:<environment_version> синтаксис или azureml:<environment_name>@latest (чтобы ссылаться на последнюю версию среды). Чтобы определить встроенную среду, следуйте схеме среды. name Исключите свойства и version свойства, так как они не поддерживаются для встроенных сред.При работе с курируемыми средами в CLI или пакете SDK имена курируемых сред начинаются с AzureML-. При использовании студии машинного обучения Azure имена курируемых сред не имеют этого префикса. Причина этой разницы состоит в том, что пользовательский интерфейс студии отображает готовые и пользовательские среды на отдельных вкладках, поэтому префикс не требуется. CLI и SDK не имеют такого разделения, поэтому префикс используется для различения между курируемыми и пользовательскими средами. |
||
environment_variables |
объект | Словарь пар переменных переменных ключей среды, которые необходимо задать в процессе выполнения команды. | ||
distribution |
объект | Конфигурация распределения для сценариев распределенного обучения. Является одной из следующих: MpiConfiguration, PyTorchConfiguration или TensorFlowConfiguration. | ||
compute |
струна | Имя целевого объекта вычислений для выполнения задания. Может быть ссылка на существующие вычислительные ресурсы в рабочей области (с помощью синтаксиса azureml:<compute_name> ) или local назначить локальное выполнение.
Примечание. Задания в конвейере не поддерживаются local как compute |
local |
|
resources.instance_count |
целое число | Число узлов, используемых для задания. | 1 |
|
resources.instance_type |
струна | Тип экземпляра, используемый для задания. Применимо для заданий, выполняемых в вычислительных ресурсах Kubernetes с поддержкой Azure Arc (где целевой type: kubernentesобъект вычислений, указанный в compute поле). Если опущен, по умолчанию используется тип экземпляра по умолчанию для кластера Kubernetes. Дополнительные сведения см. в статье "Создание и выбор типов экземпляров Kubernetes". |
||
resources.shm_size |
струна | Размер общего блока памяти контейнера Docker. Должен быть в формате <number><unit> , где число должно быть больше 0, а единица может быть одной из b (байт), k (килобайтов), m (мегабайтов) или g (гигабайтов). |
2g |
|
limits.timeout |
целое число | Максимальное время выполнения задания в секундах. По достижении этого ограничения система отменяет задание. | ||
inputs |
объект | Словарь входных данных для задания. Ключ — это имя входных данных в контексте задания, а значение — это входное значение. На входные данные можно ссылаться в command с помощью выражения ${{ inputs.<input_name> }}. |
||
inputs.<input_name> |
число, целое число, логическое значение, строка или объект | Одно из литеральных значений (с типом Number, Integer, Boolean или String) или объект, содержащий спецификацию входных данных для задания. | ||
outputs |
объект | Словарь конфигураций выходных данных для задания. Ключ — это имя выходных данных в контексте задания, а значение — выходная конфигурация. На выходные данные можно ссылаться в command с помощью выражения ${{ outputs.<output_name> }}. |
||
outputs.<output_name> |
объект | Вы можете оставить объект пустым, в этом случае выходные данные по умолчанию являются типом uri_folder , и Машинное обучение Azure создает выходное расположение для выходных данных. Файлы в выходной каталог записываются с помощью подключения чтения и записи. Если вы хотите указать другой режим выходных данных, укажите объект, содержащий спецификацию выходных данных задания. |
||
identity |
объект | Удостоверение используется для доступа к данным. Это может быть UserIdentityConfiguration, ManagedIdentityConfiguration или None. Если UserIdentityConfiguration, удостоверение отправителя заданий используется для доступа, ввода данных и записи результатов в выходную папку, в противном случае используется управляемое удостоверение целевого объекта вычислений. |
Конфигурации распределения
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_foldermlflow_modelcustom_model |
uri_folder |
path |
струна | Путь к данным, которые используются в качестве входных данных. Можно указать несколько способов: — локальный путь к файлу или папке источника данных, например path: ./iris.csv. Данные передаются во время отправки задания. — универсальный код ресурса (URI) для облачного пути к файлу или папке, которые нужно использовать в качестве входных данных. Поддерживаются следующие типы URI: azureml, https, wasbs, abfss, adl. Дополнительные сведения об использовании формата URI см. в синтаксисе azureml://yaml Core. — Существующий зарегистрированный Машинное обучение 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-адрес расположения хранилища в качестве входных данных задания. В этом случае вам придется самостоятельно обрабатывать учетные данные для доступа к хранилищу. Режимы eval_mount и eval_download режимы являются уникальными для MLTable, а данные подключаются как путь или загружаются в целевой объект вычислений. Дополнительные сведения о режимах см. в разделе "Доступ к данным в задании" |
ro_mount, , downloaddirect, eval_downloadeval_mount |
ro_mount |
Выходные данные задания
| Ключ | Тип | Описание | Допустимые значения | Значение по умолчанию |
|---|---|---|---|---|
type |
струна | Тип выходных данных для задания. Для типа по умолчанию uri_folder выходные данные соответствуют папке. |
uri_folder, , mlflow_modelcustom_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 world
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
YAML: отображаемое имя, имя эксперимента, описание и теги
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
tags:
hello: world
display_name: hello-world-example
experiment_name: hello-world-example
description: |
# Azure Machine Learning "hello world" job
This is a "hello world" job running in the cloud via Azure Machine Learning!
## Description
Markdown is supported in the studio for job descriptions! You can edit the description there or via CLI.
YAML: переменные среды
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo $hello_env_var
environment:
image: library/python:latest
environment_variables:
hello_env_var: "hello world"
YAML: исходный код
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
image: library/python:latest
YAML: литеральные входные данные
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
echo ${{inputs.hello_string}}
echo ${{inputs.hello_number}}
environment:
image: library/python:latest
inputs:
hello_string: "hello world"
hello_number: 42
YAML: запись в выходные данные по умолчанию
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
image: library/python:latest
YAML: запись в именованные выходные данные
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ${{outputs.hello_output}}/helloworld.txt
outputs:
hello_output:
environment:
image: python
YAML: входные данные файла URI хранилища данных
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
echo "--iris-csv: ${{inputs.iris_csv}}"
python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
iris_csv:
type: uri_file
path: azureml://datastores/workspaceblobstore/paths/example-data/iris.csv
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: входные данные папки URI хранилища данных
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
ls ${{inputs.data_dir}}
echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
data_dir:
type: uri_folder
path: azureml://datastores/workspaceblobstore/paths/example-data/
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: входные данные файла URI
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
echo "--iris-csv: ${{inputs.iris_csv}}"
python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
iris_csv:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: входные данные папки URI
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
ls ${{inputs.data_dir}}
echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
data_dir:
type: uri_folder
path: wasbs://[email protected]/
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: Записная книжка с помощью бумажной мельницы
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
pip install ipykernel papermill
papermill hello-notebook.ipynb outputs/out.ipynb -k python
code: src
environment:
image: library/python:3.11.6
YAML: обучение базовой модели Python
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
python main.py
--iris-csv ${{inputs.iris_csv}}
--C ${{inputs.C}}
--kernel ${{inputs.kernel}}
--coef0 ${{inputs.coef0}}
inputs:
iris_csv:
type: uri_file
path: wasbs://[email protected]/iris.csv
C: 0.8
kernel: "rbf"
coef0: 0.1
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
display_name: sklearn-iris-example
experiment_name: sklearn-iris-example
description: Train a scikit-learn SVM on the Iris dataset.
YAML: базовое обучение модели R с локальным контекстом сборки Docker
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >
source /usr/venv/bin/activate
Rscript train.R
--data_folder ${{inputs.iris}}
code: src
inputs:
iris:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
build:
path: docker-context
compute: azureml:cpu-cluster
display_name: r-iris-example
experiment_name: r-iris-example
description: Train an R model on the Iris dataset.
YAML: распределенный PyTorch
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
python train.py
--epochs ${{inputs.epochs}}
--learning-rate ${{inputs.learning_rate}}
--data-dir ${{inputs.cifar}}
inputs:
epochs: 1
learning_rate: 0.2
cifar:
type: uri_folder
path: azureml:cifar-10-example@latest
environment: azureml:AzureML-acpt-pytorch-2.2-cuda12.1@latest
compute: azureml:gpu-cluster
distribution:
type: pytorch
process_count_per_instance: 1
resources:
instance_count: 2
display_name: pytorch-cifar-distributed-example
experiment_name: pytorch-cifar-distributed-example
description: Train a basic convolutional neural network (CNN) with PyTorch on the CIFAR-10 dataset, distributed via PyTorch.
YAML: распределенный TensorFlow
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
python train.py
--epochs ${{inputs.epochs}}
--model-dir ${{inputs.model_dir}}
inputs:
epochs: 1
model_dir: outputs/keras-model
environment: azureml:AzureML-tensorflow-2.16-cuda12@latest
compute: azureml:gpu-cluster
resources:
instance_count: 2
distribution:
type: tensorflow
worker_count: 2
display_name: tensorflow-mnist-distributed-example
experiment_name: tensorflow-mnist-distributed-example
description: Train a basic neural network with TensorFlow on the MNIST dataset, distributed via TensorFlow.