Поделиться через


Схема YAML развертывания пакета с помощью интерфейса командной строки (версии 2)

ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)

Исходную схему JSON можно найти по адресу https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json.

Примечание.

Синтаксис YAML, описанный в этом документе, основан на схеме JSON для последней версии расширения ML CLI (версия 2). Этот синтаксис гарантированно работает только с последней версией расширения ML CLI (версия 2). Схемы для старых версий расширений можно найти по адресу https://azuremlschemasprod.azureedge.net/.

Синтаксис YAML

Ключ Тип Описание Допустимые значения Default value
$schema строка Схема YAML. При создании файла YAML с помощью расширения VS Code Машинного обучения Azure вы можете добавить $schema в верхней части файла, чтобы вызывать завершение схемы и ресурсов.
name строка Обязательный. Имя развертывания.
description строка Описание развертывания.
tags объект Словарь тегов для развертывания.
endpoint_name строка Обязательный. Имя конечной точки для создания развертывания.
type строка Обязательный. Тип развертывания ванны. Используется model для развертываний моделей и pipeline для развертываний компонентов конвейера.

Новые возможности версии 1.7.
model, pipeline model
settings объект Настройка развертывания. Дополнительные сведения о модели и компоненте конвейера см. в конкретных справочнике по YAML для допустимых значений.

Новые возможности версии 1.7.

Совет

Ключ type появился в версии 1.7 расширения CLI и выше. Для полной поддержки обратной совместимости это свойство по умолчанию model. Однако, если не указано явно, ключ settings не применяется, а все свойства параметров развертывания модели должны быть указаны в корне спецификации YAML.

Синтаксис YAML для развертываний моделей

Если type: modelприменяется следующий синтаксис:

Ключ Тип Описание Допустимые значения Default value
model Строка или объект Обязательный. Модель, которая будет использоваться для развертывания. Это значение может быть ссылкой на существующую модель с управлением версиями в рабочей области или спецификацией встроенной модели.

Чтобы сослаться на существующую модель, используйте синтаксис azureml:<model-name>:<version>.

Чтобы внутренне определить модель, следуйте инструкциям из раздела Схема модели.

В сценариях для рабочей среды рекомендуется создавать модель отдельно и ссылаться на нее здесь.
code_configuration объект Конфигурация логики кода оценки.

Это свойство не требуется, если модель имеет формат MLflow.
code_configuration.code строка Локальный каталог, содержащий весь исходный код Python для оценки модели.
code_configuration.scoring_script строка Файл Python в указанном выше каталоге. В этом файле должны быть функции init() и run(). Используйте функцию init() для любой дорогостоящей или распространенной подготовки (например, загрузите модель в память). init() вызывается только один раз в начале процесса. Метод run(mini_batch) позволяет оценить каждую запись; значение mini_batch представляет собой список путей к файлам. Функция run() должна возвращать объект DataFrame Pandas или массив. Каждый возвращаемый элемент обозначает один успешный запуск входного элемента в mini_batch. Дополнительные сведения о создании скрипта оценки см. на странице Основные сведения о скрипте оценки.
environment Строка или объект Среда, используемая для развертывания. Это значение может быть ссылкой на существующую среду с управлением версиями в рабочей области или спецификацией встроенной среды.

Это свойство не требуется, если модель имеет формат MLflow.

Чтобы сослаться на существующую среду, используйте синтаксис azureml:<environment-name>:<environment-version>.

Чтобы определить встроенную среду, следуйте схеме среды.

В сценариях для рабочей среды рекомендуется создавать среду отдельно и ссылаться на нее здесь.
compute строка Обязательный. Имя целевого объекта вычислений для выполнения заданий пакетной оценки. Это значение должно быть ссылкой на существующее вычисление в рабочей области с использованием синтаксиса azureml:<compute-name>.
resources.instance_count integer Количество узлов, используемых для каждого задания пакетной оценки. 1
settings объект Конкретная конфигурация развертывания модели.

Изменено в версии 1.7.
settings.max_concurrency_per_instance integer Максимальное количество параллельных запусков scoring_script на экземпляр. 1
settings.error_threshold integer Количество сбоев файлов, которое следует игнорировать. Если количество ошибок для всего входного значения превышает это значение, задание пакетной оценки завершается. error_threshold применяется к общему объему входных данных, а не к отдельным мини-пакетам. Если опущено, любое количество сбоев файлов допускается без завершения задания. -1
settings.logging_level строка Уровень детализации журнала. warning, , infodebug info
settings.mini_batch_size integer Число файлов, которые code_configuration.scoring_script может обрабатывать в одном вызове run(). 10
settings.retry_settings объект Параметры повтора для оценки каждого мини-пакета.
settings.retry_settings.max_retries integer Максимальное число повторных попыток для мини-пакета с ошибкой или превышением времени ожидания. 3
settings.retry_settings.timeout integer Время ожидания в секундах для оценки одного мини-пакета. Используйте более крупные значения, если размер мини-пакета больше или модель дороже для запуска. 30
settings.output_action строка Указывает, как выходные данные должны быть упорядочены в выходном файле. Используйте summary_only , если вы создаете выходные файлы, как указано при настройке выходных данных в развертываниях моделей. Используйте, append_row если вы возвращаете прогнозы в рамках run() инструкции функции return . append_row, summary_only append_row
settings.output_file_name строка Имя выходного файла пакетной оценки. predictions.csv
settings.environment_variables объект Словарь пар "ключ — значение" переменной среды, устанавливаемых для каждого задания пакетной оценки.

Синтаксис YAML для развертываний компонентов конвейера

Если type: pipelineприменяется следующий синтаксис:

Ключ Тип Описание Допустимые значения Default value
component Строка или объект Обязательный. Компонент конвейера, используемый для развертывания. Это значение может быть ссылкой на существующий компонент конвейера с версиями в рабочей области или реестре или встроенную спецификацию конвейера.

Чтобы сослаться на существующий компонент, используйте синтаксис azureml:<component-name>:<version>.

Чтобы определить встроенный компонент конвейера, следуйте схеме компонента конвейера.

В качестве рекомендации по рабочим сценариям необходимо создать компонент отдельно и ссылаться на него здесь.

Новые возможности версии 1.7.
settings объект Параметры по умолчанию для задания конвейера. См . атрибуты ключа параметров для набора настраиваемых свойств.

Новые возможности версии 1.7.

Замечания

Команды az ml batch-deployment можно использовать для управления пакетными развертываниями Машинного обучения Azure.

Примеры

Примеры доступны в репозитории примеров GitHub. Некоторые из них ссылаются ниже:

YAML: развертывание модели MLflow

Развертывание модели, содержащей модель MLflow, которая не требует указывать code_configuration или environment:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300
  error_threshold: -1
  logging_level: info

YAML: развертывание пользовательской модели с помощью скрипта оценки

Развертывание модели, указывающее сценарий оценки для использования и среды:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
name: mnist-torch-dpl
description: A deployment using Torch to solve the MNIST classification dataset.
endpoint_name: mnist-batch
type: model
model:
  name: mnist-classifier-torch
  path: model
code_configuration:
  code: code
  scoring_script: batch_driver.py
environment:
  name: batch-torch-py38
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
  conda_file: environment/conda.yaml
compute: azureml:batch-cluster
resources:
  instance_count: 1
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 10
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 30
  error_threshold: -1
  logging_level: info

YAML: развертывания устаревших моделей

Если атрибут type не указан в YAML, будет выведено развертывание модели. Однако ключ settings не будет доступен, и свойства должны быть помещены в корень YAML, как указано в этом примере. Настоятельно рекомендуется всегда указывать свойство type.

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
  max_retries: 3
  timeout: 300
error_threshold: -1
logging_level: info

YAML: развертывание компонента конвейера

Простое развертывание компонента конвейера:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
name: hello-batch-dpl
endpoint_name: hello-pipeline-batch
type: pipeline
component: azureml:hello_batch@latest
settings:
    default_compute: batch-cluster

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