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


Схема YAML для сетевого развертывания Kubernetes с поддержкой Azure Arc с использованием CLI (версия 2)

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

Исходную схему JSON можно найти по адресу https://azuremlschemas.azureedge.net/latest/kubernetesOnlineDeployment.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 строка Тип экземпляра, используемый для размещения рабочей нагрузки вывода. Если этот параметр опущен, рабочая нагрузка вывода будет размещена в типе экземпляра кластера Kubernetes по умолчанию для, указанном в поле конечной точки compute. Если этот параметр задан, рабочая нагрузка вывода будет размещена в выбранном типе экземпляра.

Набор типов экземпляров для кластера Kubernetes настраивается с помощью определения пользовательского ресурса кластера Kubernetes( CRD), поэтому они не являются частью схемы YAML Машинное обучение Azure для присоединения вычислительных ресурсов Kubernetes. Дополнительные сведения см. в статье "Создание и выбор типов экземпляров Kubernetes".
instance_count integer Число экземпляров, которые будут использоваться для развертывания. Укажите значение в зависимости от предполагаемой рабочей нагрузки. Это поле требуется только при использовании типа масштабирования default (scale_settings.type: default).

instance_count можно обновить после создания развертывания с помощью команды az ml online-deployment update.
app_insights_enabled boolean Следует ли включить интеграцию с экземпляром Azure Application Insights, связанным с рабочей областью. false
scale_settings объект Параметры масштабирования для развертывания. Поддерживаются два типа параметров масштабирования: default и target_utilization.

С помощью типа масштабирования default (scale_settings.type: default) можно вручную вертикально увеличивать и уменьшать количество экземпляров после создания развертывания, обновляя свойство instance_count.

Чтобы настроить тип масштабирования target_utilization (scale_settings.type: target_utilization), см. набор настраиваемых свойств в разделе TargetUtilizationScaleSettings.
scale_settings.type строка Тип масштабирования. default, target_utilization target_utilization
data_collector объект Параметры сбора данных для развертывания. См. раздел DataCollector для набора настраиваемых свойств.
request_settings объект Параметры запроса оценки для развертывания. Набор настраиваемых свойств см. в разделе RequestSettings.
liveness_probe объект Параметры проб активности для регулярного мониторинга работоспособности контейнера. Набор настраиваемых свойств см. в разделе ProbeSettings.
readiness_probe объект Параметры проб готовности для проверки того, готов ли контейнер к обработке трафика. Набор настраиваемых свойств см. в разделе ProbeSettings.
resources объект Требования к ресурсам контейнера.
resources.requests объект Запросы ресурсов для контейнера. Набор настраиваемых свойств см. в разделе ContainerResourceRequests.
resources.limits объект Ограничения ресурсов для контейнера. Набор настраиваемых свойств см. в разделе ContainerResourceLimits.

RequestSettings

Ключ Тип Описание Default value
request_timeout_ms integer Время ожидания оценки в миллисекундах. 5000
max_concurrent_requests_per_instance integer Максимальное количество одновременных запросов на экземпляр, разрешенное для развертывания.

Не изменяйте этот параметр со значения по умолчанию, если не указано технической поддержкой Майкрософт или членом команды Машинное обучение Azure.
1
max_queue_wait_ms integer Максимальное время в миллисекундах, в течение которого запрос будет оставаться в очереди. 500

ProbeSettings

Ключ Тип Описание Default value
period integer Частота (в секундах) выполнения пробы. 10
initial_delay integer Количество секунд после запуска контейнера до инициирования проб. Минимальное значение — 1. 10
timeout integer Количество секунд, после которого истекает время ожидания пробы активности. Минимальное значение — 1. 2
success_threshold integer Минимальное число последовательных успешных попыток проведения пробы после сбоя, которое нужно, чтобы проба считалась успешной. Минимальное значение — 1. 1
failure_threshold integer Если проба завершается сбоем, система попытается выполнить команду указанное количество раз (failure_threshold), прежде чем прекратить попытки. Отказ при выполнении пробы активности означает, что контейнер будет перезапущен. При выполнении пробы готовности контейнер будет помечен как неготовый. Минимальное значение — 1. 30

TargetUtilizationScaleSettings

Ключ Тип Описание Default value
type const Тип масштабирования. target_utilization
min_instances integer Минимальное количество экземпляров для использования. 1
max_instances integer Максимальное количество экземпляров для масштабирования. 1
target_utilization_percentage integer Целевая загрузка ЦП для средства автомасштабирования. 70
polling_interval integer Частота в секундах, с которой средство автомасштабирования должно выполнять попытки масштабирования развертывания. 1

ContainerResourceRequests

Ключ Тип Описание:
cpu строка Количество ядер ЦП, запрошенных для контейнера.
memory строка Объем памяти, запрошенный для контейнера.
nvidia.com/gpu строка Количество карт NVIDIA GPU, запрошенных для контейнера

ContainerResourceLimits

Ключ Тип Описание:
cpu строка Ограничение на количество ядер ЦП для контейнера.
memory строка Ограничение на объем памяти для контейнера.
nvidia.com/gpu строка Ограничение количества карт GPU NVIDIA для контейнера

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 можно использовать для управления сетевым развертываниями Kubernetes Машинного обучения Azure.

Примеры

Примеры доступны в репозитории примеров GitHub.

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