Схема YAML для задания конвейера CLI (v2)
ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)
Исходная схема JSON можно найти по адресу https://azuremlschemas.azureedge.net/latest/pipelineJob.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 | Обязательный. Тип задания. | pipeline |
|
name |
строка | Имя задания. Должно быть уникальным для всех заданий в рабочей области. Если опущено, Машинное обучение Azure автоматически создает GUID для имени. | ||
display_name |
строка | Отображаемое имя задания в пользовательском интерфейсе студии. Может быть неуникальным в пределах рабочей области. Если опущено, Машинное обучение Azure автоматически создает идентификатор прилагательного имени, доступный для чтения. | ||
experiment_name |
строка | Упорядочение задания под именем эксперимента. Запись выполнения каждого задания организована в соответствии с соответствующим экспериментом на вкладке "Эксперименты" студии. Если опущено, Машинное обучение Azure по умолчанию используется experiment_name имя рабочего каталога, в котором было создано задание. |
||
tags |
объект | Словарь тегов для задания. | ||
settings |
объект | Параметры по умолчанию для задания конвейера. Посетите атрибуты settings ключа для набора настраиваемых свойств. |
||
jobs |
объект | Обязательный. Словарь набора отдельных заданий для выполнения в качестве шагов в конвейере. Эти задания считаются дочерними по отношению к заданию родительского конвейера. Ключ — это имя шага в контексте задания конвейера. Это имя отличается от уникального имени задания дочернего задания. Значением является спецификация задания, которая может следовать схеме задания команды или схеме задания очистки. В настоящее время в конвейере могут выполняться только задания команд и задания очистки. В последующих выпусках будут поддерживаться другие типы заданий. |
||
inputs |
объект | Словарь входных данных для задания конвейера. Ключ — это имя входных данных в контексте задания. Это значение является входным значением. Входные данные отдельного задания шага в конвейере могут ссылаться на эти входные данные конвейера с выражением ${{ parent.inputs.<input_name> }} . Дополнительные сведения о привязке входных данных шага конвейера к входным данным задания конвейера верхнего уровня см . в синтаксисе выражений для привязки входных и выходных данных между шагами в задании конвейера. |
||
inputs.<input_name> |
число, целое число, логическое значение, строка или объект | Одно из литеральных значений (с типом Number, Integer, Boolean или String) или объект, содержащий спецификацию входных данных для задания. | ||
outputs |
объект | Словарь конфигураций выходных данных для задания конвейера. Ключ — это имя выходных данных в контексте задания. Значением является выходная конфигурация. Выходные данные отдельного задания шага в конвейере могут ссылаться на эти выходные данные конвейера с выражением ${{ parents.outputs.<output_name> }} . Дополнительные сведения о привязке выходных данных шага конвейера к выходным данным задания конвейера верхнего уровня см . в синтаксисе выражения для привязки входных и выходных данных между шагами в задании конвейера. |
||
outputs.<output_name> |
объект | Объект можно оставить пустым. В этом случае по умолчанию выходные данные будут типомuri_folder , и Машинное обучение Azure система создаст расположение выходных данных для выходных данных на основе этого шаблонного пути: {settings.datastore}/azureml/{job-name}/{output-name}/ Файлы в выходной каталог записываются с помощью подключения чтения и записи. Чтобы указать другой выходной режим, укажите объект, содержащий спецификацию выходных данных задания. |
||
identity |
объект | Удостоверение используется для доступа к данным. Это может быть UserIdentityConfiguration, ManagedIdentityConfiguration или None. Если это UserIdentityConfiguration, удостоверение отправки задания будет использоваться для доступа к входным данным и записи результатов в выходную папку, в противном случае будет использоваться управляемое удостоверение целевого объекта вычислений. |
Атрибуты ключа settings
Ключ | Тип | Описание | Default value |
---|---|---|---|
default_datastore |
строка | Имя хранилища данных, используемого по умолчанию для задания конвейера. Это значение должно быть ссылкой на существующее хранилище данных в рабочей области с помощью синтаксиса azureml:<datastore-name> . Все выходные данные, определенные в свойстве outputs родительского задания конвейера или дочерних заданий шага, хранятся в этом хранилище данных. Если опущено, выходные данные хранятся в хранилище данных BLOB-объектов рабочей области. |
|
default_compute |
строка | Имя целевого объекта вычислений, используемого в качестве вычисления по умолчанию для всех шагов в конвейере. Вычисления, определенные на уровне шага, переопределяют эти вычисления по умолчанию для этого конкретного шага. Значение default_compute должно быть ссылкой на существующие вычислительные ресурсы в рабочей области с помощью синтаксиса azureml:<compute-name> . |
|
continue_on_step_failure |
boolean | Этот параметр определяет, что происходит, если шаг в конвейере завершается сбоем. По умолчанию конвейер продолжит работать, даже если один шаг завершается ошибкой. Это означает, что все шаги, которые не зависят от неудачного шага, по-прежнему будут выполняться. Однако если изменить этот параметр на False, весь конвейер перестает работать, и все выполняемые в настоящее время шаги будут отменены, если один шаг завершается сбоем. | True |
force_rerun |
boolean | Следует ли принудительно повторно запустить весь конвейер. Значение по умолчанию — False . Это означает, что по умолчанию конвейер пытается повторно использовать выходные данные предыдущего задания, если он соответствует критериям повторного использования. Если задано как True , все шаги в конвейере будут повторно выполняться. |
False |
Входные данные задания
Ключ | Тип | Описание | Допустимые значения | Default value |
---|---|---|---|---|
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 |
Выходные данные задания
Ключ | Тип | Описание | Допустимые значения | Default value |
---|---|---|---|---|
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/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
hello_job:
command: echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
world_job:
command: echo "world"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
YAML: зависимость ввода-вывода
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
hello_job:
command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
outputs:
world_output:
world_job:
command: cat ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
inputs:
world_input: ${{parent.jobs.hello_job.outputs.world_output}}
YAML: общие параметры задания конвейера
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_settings
settings:
default_datastore: azureml:workspaceblobstore
default_compute: azureml:cpu-cluster
jobs:
hello_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
world_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: входные данные верхнего уровня и переопределение типичных параметров задания конвейера
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
default_compute: azureml:cpu-cluster
inputs:
hello_string_top_level_input: "hello world"
jobs:
a:
command: echo hello ${{inputs.hello_string}}
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
hello_string: ${{parent.inputs.hello_string_top_level_input}}
b:
command: echo "world" >> ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
outputs:
world_output:
c:
command: echo ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
world_input: ${{parent.jobs.b.outputs.world_output}}