Схема 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 , , info debug |
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