Схема 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 идентификатор отправки заданий используется для доступа к входным данным и записи результата в выходную папку. В противном случае 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_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/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
  hello_job:
    command: echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
    compute: azureml:cpu-cluster
  world_job:
    command: echo "world"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/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.0/labels/latest
  world_job:
    command: echo 202204190 & echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/labels/latest
    outputs:
      world_output:
  c:
    command: echo ${{inputs.world_input}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
    inputs:
      world_input: ${{parent.jobs.b.outputs.world_output}}

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