Схема YAML сетевого развертывания, управляемая с помощью интерфейса командной строки (версии 2)
ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)
Исходную схему JSON можно найти по адресу https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.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 |
строка | Обязательный. Имя конечной точки для создания развертывания. | ||
model |
Строка или объект | Модель, которая будет использоваться для развертывания. Это значение может быть ссылкой на существующую модель с управлением версиями в рабочей области или спецификацией встроенной модели. Чтобы сослаться на существующую модель, используйте синтаксис azureml:<model-name>:<model-version> . Чтобы внутренне определить модель, следуйте инструкциям из раздела Схема модели. В сценариях для рабочей среды рекомендуется создавать модель отдельно и ссылаться на нее здесь. Это поле является необязательным для сценариев развертывания пользовательских контейнеров. |
||
model_mount_path |
строка | Путь для подключения модели в пользовательском контейнере. Применимо только для сценариев развертывания пользовательских контейнеров. Если в поле model задано, оно подключается по этому пути в контейнере. |
||
code_configuration |
объект | Конфигурация логики кода оценки. Это поле является необязательным для сценариев развертывания пользовательских контейнеров. |
||
code_configuration.code |
строка | Локальный путь к каталогу исходного кода для оценки модели. | ||
code_configuration.scoring_script |
строка | Относительный путь к файлу оценки в каталоге исходного кода. | ||
environment_variables |
объект | Словарь пар "ключ-значение" переменных среды, которые необходимо задать в контейнере развертывания. Доступ к этим переменным среды можно получить из скриптов оценки. | ||
environment |
Строка или объект | Обязательный. Среда, используемая для развертывания. Это значение может быть ссылкой на существующую среду с управлением версиями в рабочей области или спецификацией встроенной среды. Чтобы сослаться на существующую среду, используйте синтаксис azureml:<environment-name>:<environment-version> . Чтобы определить встроенную среду, следуйте схеме среды. В сценариях для рабочей среды рекомендуется создавать среду отдельно и ссылаться на нее здесь. |
||
instance_type |
строка | Обязательный. Размер виртуальной машины, используемый для развертывания. Список поддерживаемых размеров см. в списке SKU управляемых сетевых конечных точек. | ||
instance_count |
integer | Обязательный. Число экземпляров, которые будут использоваться для развертывания. Укажите значение в зависимости от предполагаемой рабочей нагрузки. Для обеспечения высокой доступности Майкрософт рекомендует установить значение не менее 3 . instance_count можно обновить после создания развертывания с помощью команды az ml online-deployment update . Мы резервируем дополнительные 20 % для выполнения обновлений. Дополнительные сведения см. в статье о выделении квот виртуальной машины для развертывания. |
||
app_insights_enabled |
boolean | Следует ли включить интеграцию с экземпляром Azure Application Insights, связанным с рабочей областью. | false |
|
scale_settings |
объект | Параметры масштабирования для развертывания. В настоящее время поддерживается только default тип масштабирования, поэтому не нужно указывать это свойство. С этим типом масштабирования default вы можете либо вручную увеличивать и уменьшать количество экземпляров после создания развертывания, обновляя свойство instance_count , либо создать политику автомасштабирования. |
||
scale_settings.type |
строка | Тип масштабирования. | default |
default |
data_collector |
объект | Параметры сбора данных для развертывания. См. раздел DataCollector для набора настраиваемых свойств. | ||
request_settings |
объект | Параметры запроса оценки для развертывания. Набор настраиваемых свойств см. в разделе RequestSettings. | ||
liveness_probe |
объект | Параметры проб активности для регулярного мониторинга работоспособности контейнера. Набор настраиваемых свойств см. в разделе ProbeSettings. | ||
readiness_probe |
объект | Параметры проб готовности для проверки того, готов ли контейнер к обработке трафика. Набор настраиваемых свойств см. в разделе ProbeSettings. | ||
egress_public_network_access |
строка | Примечание. Этот ключ применим при использовании устаревшего метода сетевой изоляции для защиты исходящего трафика для развертывания. Настоятельно рекомендуется защитить исходящее взаимодействие для развертываний с помощью управляемой виртуальной сети рабочей области. Этот флаг защищает развертывание, ограничивая обмен данными между развертыванием и ресурсами Azure, которые это развертывание использует. Задайте значение disabled , чтобы гарантировать защиту скачивания модели, кода и изображений, используемых развертыванием, с помощью частной конечной точки. Этот флаг применим только для управляемых подключенных конечных точек. |
enabled , disabled |
enabled |
RequestSettings
Ключ | Тип | Описание | Default value |
---|---|---|---|
request_timeout_ms |
integer | Время ожидания оценки в миллисекундах. Обратите внимание, что максимально допустимое значение равно 180000 миллисекундам. Дополнительные сведения см . в ограничениях для конечных точек в Сети. |
5000 |
max_concurrent_requests_per_instance |
integer | Максимальное количество одновременных запросов на экземпляр, разрешенное для развертывания. Примечание. Если вы используете сервер вывода Машинное обучение Azure или образы вывода Машинное обучение Azure, модель должна быть настроена для обработки одновременных запросов. Для этого передайте WORKER_COUNT: <int> переменную среды. Дополнительные сведения см. в WORKER_COUNT разделе Машинное обучение Azure Параметры сервера вывода Примечание. Задайте для количества запросов, которые модель может обрабатывать одновременно на одном узле. Если это значение будет выше, чем фактические возможности параллелизма вашей модели, задержка может увеличиться. Установка этого значения слишком низко может привести к использованию узлов. Установка слишком низкого уровня также может привести к отклонению запросов с кодом состояния HTTP 429, так как система решит завершиться сбоем. Дополнительные сведения см. в разделе "Устранение неполадок с сетевыми конечными точками: коды состояния HTTP". |
1 |
max_queue_wait_ms |
integer | (не рекомендуется) Максимальное время в миллисекундах запроса останется в очереди. (Теперь увеличьте request_timeout_ms учет любых задержек сети или очередей) |
500 |
ProbeSettings
Ключ | Тип | Описание | Default value |
---|---|---|---|
initial_delay |
integer | Количество секунд после запуска контейнера до инициирования проб. Минимальное значение — 1 . |
10 |
period |
integer | Частота (в секундах) выполнения пробы. | 10 |
timeout |
integer | Количество секунд, после которого истекает время ожидания пробы активности. Минимальное значение — 1 . |
2 |
success_threshold |
integer | Минимальное число последовательных успешных попыток проведения пробы после сбоя, которое нужно, чтобы проба считалась успешной. Минимальное значение — 1 для пробы готовности. Значение пробы активности исправлено как 1 . |
1 |
failure_threshold |
integer | Если проба завершается сбоем, система попытается выполнить команду указанное количество раз (failure_threshold ), прежде чем прекратить попытки. Отказ при выполнении пробы активности означает, что контейнер будет перезапущен. При выполнении пробы готовности контейнер будет помечен как неготовый. Минимальное значение — 1 . |
30 |
DataCollector
Ключ | Тип | Описание | Default value |
---|---|---|---|
sampling_rate |
с плавающей запятой | Процент, представленный как десятичная ставка данных для сбора. Например, значение 1.0 представляет сбор 100 % данных. | 1.0 |
rolling_rate |
строка | Частота секционирования данных в хранилище. Значение может быть: Minute, Hour, Day, Month, Year. | Hour |
collections |
объект | Набор отдельных collection_name параметров и соответствующих параметров для этого развертывания. |
|
collections.<collection_name> |
объект | Логическое группирование данных вывода рабочей среды для сбора (например: model_inputs ). Существует два зарезервированных имени: request и response , соответственно, соответствующие сбору полезных данных HTTP-запроса и ответа. Все остальные имена являются произвольными и определяемыми пользователем. Примечание. Каждое collection_name должно соответствовать имени объекта, используемого Collector в развертывании score.py для сбора данных вывода рабочей среды. Дополнительные сведения о сборе полезных данных и сборе данных с помощью предоставленного пакета SDK для Python см. в статье "Сбор данных из моделей в рабочей среде". |
|
collections.<collection_name>.enabled |
boolean | Следует ли включить сбор данных для указанного collection_name объекта. |
'False'' |
collections.<collection_name>.data.name |
строка | Имя ресурса данных для регистрации с собранными данными. | <endpoint>-<deployment>-<collection_name> |
collections.<collection_name>.data.path |
строка | Полный Машинное обучение Azure путь к хранилищу данных, в котором собранные данные должны быть зарегистрированы в качестве ресурса данных. | azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name> |
collections.<collection_name>.data.version |
integer | Версия ресурса данных, зарегистрированного с собранными данными в хранилище BLOB-объектов. | 1 |
Замечания
Команды az ml online-deployment
можно использовать для управления сетевым развертываниями, управляемыми Машинным обучением Azure.
Примеры
Примеры доступны в репозитории примеров GitHub. Ниже показаны некоторые из них.
YAML: базовый
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
path: ../../model-2/model/
code_configuration:
code: ../../model-2/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-2/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
YAML: удостоверение, назначаемое системой
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
YAML: удостоверение, назначаемое пользователем
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
UAI_CLIENT_ID: "uai_client_id_place_holder"
YAML: data_collector
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
request:
enabled: 'True'
data:
name: my_request_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request
version: 1
response:
enabled: 'True'
data:
name: my_response_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
version: 1
model_inputs:
enabled: 'True'
data:
name: my_model_inputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
version: 1
model_outputs:
enabled: 'True'
data:
name: my_model_outputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
version: 1