Схема 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-ubuntu20.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-ubuntu20.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

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