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

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

В этой статье вы узнаете, как развернуть модель в онлайн-конечной точке для использования в режиме реального времени вывода. Начните с развертывания модели на локальном компьютере для отладки любых ошибок. Затем вы развертываете и тестируете модель в Azure, просматриваете журналы развертывания и отслеживаете соглашение об уровне обслуживания (SLA). К концу этой статьи у вас будет масштабируемая конечная точка HTTPS/REST, которую можно использовать для вывода в режиме реального времени.

Сетевые конечные точки — это конечные точки, используемые для вывода в режиме реального времени. Существует два типа сетевых конечных точек: управляемые и Kubernetes. Дополнительные сведения о конечных точках и различиях между управляемыми сетевыми конечными точками и сетевыми конечными точками Kubernetes см. в статье "Что такое Машинное обучение Azure конечные точки?

Управляемые подключенные конечные точки помогают развертывать модели машинного обучения в комплексном режиме. Управляемые сетевые конечные точки работают с мощными машинами ЦП и GPU в Azure масштабируемым и полностью управляемым образом. Управляемые сетевые конечные точки отвечают за обслуживание, масштабирование, безопасность и мониторинг моделей, избавляя вас от накладных расходов на настройку и управление базовой инфраструктурой.

В основном примере в этом документе для развертывания используются управляемые сетевые конечные точки. Чтобы использовать Kubernetes, ознакомьтесь с заметками в этом документе, которые соответствуют обсуждению управляемой сетевой конечной точки.

Необходимые компоненты

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

Перед выполнением действий, описанных в этой статье, убедитесь, что выполнены следующие необходимые условия:

  • Управление доступом на основе ролей Azure (Azure RBAC) используется для предоставления доступа к операциям в Машинном обучении Azure. Чтобы выполнить действия, описанные в этой статье, учетной записи пользователя должна быть назначена роль владельца или участника для рабочей области Машинного обучения Azure либо пользовательская роль с разрешением Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Если вы используете студию для создания и управления сетевыми конечными точками и развертываниями, вам потребуется дополнительное разрешение "Microsoft.Resources/deployments/write" от владельца группы ресурсов. Дополнительные сведения см. в статье Управление доступом к рабочей области Машинного обучения Azure.

  • (Необязательно) Для локального развертывания необходимо установить подсистему Docker на локальном компьютере. Настоятельно рекомендуем использовать этот вариант, чтобы упростить отладку.

  • Убедитесь, что для развертывания достаточно квоты виртуальной машины. Машинное обучение Azure резервирует 20% вычислительных ресурсов для выполнения обновлений на некоторых номерах SKU виртуальных машин. Например, если вы запрашиваете 10 экземпляров в развертывании, необходимо иметь квоту на 12 для каждого числа ядер для SKU виртуальной машины. Ошибка при учете дополнительных вычислительных ресурсов приводит к ошибке. Существуют некоторые номера SKU виртуальных машин, исключенные из дополнительного резервирования квот. Дополнительные сведения о выделении квот см. в статье о выделении квот виртуальной машины для развертывания.

  • Кроме того, можно использовать квоту из общего пула квот Машинное обучение Azure в течение ограниченного времени. Пользователи могут получить доступ к квоте из этого пула для выполнения тестирования в течение ограниченного времени. При использовании студии для развертывания моделей Llama-2, Phi, Nemotron, Mistral, Dolly и DeciLM моделей из каталога моделей в управляемую конечную точку в сети Машинное обучение Azure позволяет получить доступ к общему пулу квот в течение короткого времени, чтобы вы могли выполнять тестирование. Дополнительные сведения о общем пуле квот см. в разделе Машинное обучение Azure общей квоты.

Подготовка системы

Настройка переменных среды

Если вы еще не задали параметры по умолчанию для Azure CLI, сохраните их. Чтобы не указывать параметры для подписки, рабочей области и группы ресурсов несколько раз, используйте следующий код:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

Клонирование репозитория примеров

Чтобы следовать этой статье, сначала клонируйте репозиторий примеров (azureml-examples). Затем запустите следующий код, чтобы перейти в каталог репозитория cli/ :

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli

Совет

При использовании параметра --depth 1 клонируется только последняя фиксация, что сокращает время выполнения операции.

Команды, приведенные в этом руководстве, находятся в файлах deploy-local-endpoint.sh и deploy-managed-online-endpoint.shcli каталоге, а файлы конфигурации YAML находятся в подкаталоге endpoints/online/managed/sample/ .

Примечание.

Файлы конфигурации YAML для конечных точек Kubernetes в сети находятся в подкаталоге endpoints/online/kubernetes/ .

Определение конечной точки

Чтобы определить конечную точку в Сети, укажите имя конечной точки и режим проверки подлинности. Дополнительные сведения об управляемых сетевых конечных точках см. в статье "Сетевые конечные точки".

Задание имени конечной точки

Чтобы задать имя конечной точки, выполните следующую команду. Замените YOUR_ENDPOINT_NAME на имя, уникальное в регионе Azure. Дополнительные сведения о правилах именования см. в разделе "Ограничения конечной точки".

Для Linux выполните следующую команду:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Настройка конечной точки

В следующем фрагменте кода показан файл endpoints/online/managed/sample/endpoint.yml:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key

Справка по формату YAML конечной точки представлена в приведенной ниже таблице. Чтобы узнать, как указать эти атрибуты, ознакомьтесь со ссылкой на YAML для веб-конечной точки. Сведения об ограничениях, связанных с управляемыми конечными точками, см. в разделе об ограничениях для сетевых конечных точек.

Ключ. Description
$schema (Необязательно) Схема YAML. Чтобы просмотреть все доступные параметры в ФАЙЛЕ YAML, можно просмотреть схему в предыдущем фрагменте кода в браузере.
name Имя конечной точки.
auth_mode Используйте key для аутентификации на основе ключей.
Используйте aml_token для проверки подлинности в службе "Машинное обучение Azure" на основе маркеров.
Используется aad_token для проверки подлинности на основе маркеров Microsoft Entra (предварительная версия).
Дополнительные сведения о проверке подлинности см. в статье "Проверка подлинности клиентов для сетевых конечных точек".

Определение развертывания

Развертывание представляет собой набор ресурсов, необходимых для размещения модели, которая выполняет процесс вывода. В этом примере вы развертываете модель scikit-learn, которая выполняет регрессию и использует скрипт оценки score.py для выполнения модели при заданном входном запросе.

Дополнительные сведения о ключевых атрибутах развертывания см. в разделе "Сетевые развертывания".

Настройка развертывания

Конфигурация развертывания использует расположение модели, которую вы хотите развернуть.

В следующем фрагменте кода показаны конечные точки,online/managed/sample/blue-deployment.yml-файл со всеми необходимыми входными данными для настройки развертывания:

blue-deployment.yml

$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

Файл blue-deployment.yml указывает следующие атрибуты развертывания:

  • model — задает встроенные свойства модели, используя path (где отправлять файлы из). Интерфейс командной строки автоматически отправляет файлы модели и регистрирует модель с автоматически созданным именем.
  • environment — использование встроенных определений, которые включают в себя отправку файлов из, интерфейс командной строки автоматически отправляет conda.yaml файл и регистрирует среду. Позже для сборки среды развертывание использует image (в этом примере) mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestбазовый образ, а conda_file зависимости устанавливаются на основе базового образа.
  • code_configuration — во время развертывания локальные файлы, такие как источник Python для модели оценки, отправляются из среды разработки.

Дополнительные сведения о схеме YAML см. в справочнике по подключенной конечной точке YAML.

Примечание.

Чтобы использовать конечные точки Kubernetes вместо управляемых сетевых конечных точек в качестве целевого объекта вычислений:

  1. Создайте и присоедините кластер Kubernetes в качестве целевого объекта вычислений к рабочей области Машинного обучения Azure с помощью студии машинного обучения Azure.
  2. Используйте YAML конечной точки для целевого объекта Kubernetes, а не управляемой конечной точки YAML. Чтобы изменить значение compute зарегистрированного целевого объекта вычислений, необходимо изменить YAML. Вы можете использовать этот deployment.yaml с дополнительными свойствами, применимыми к развертыванию Kubernetes.

Все команды, используемые в этой статье для управляемых сетевых конечных точек, также применяются к конечным точкам Kubernetes, за исключением следующих возможностей, которые не применяются к конечным точкам Kubernetes:

Общие сведения о скрипте оценки

Совет

Для сетевых конечных точек используется тот же формат скрипта оценки, что и в более ранних версиях CLI и в пакете SDK для Python.

Скрипт оценки, указанный init() вcode_configuration.scoring_script, должен иметь функцию и run() функцию.

В этом примере используется файл score.py: score.py

import os
import logging
import json
import numpy
import joblib


def init():
    """
    This function is called when the container is initialized/started, typically after create/update of the deployment.
    You can write the logic here to perform init operations like caching the model in memory
    """
    global model
    # AZUREML_MODEL_DIR is an environment variable created during deployment.
    # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
    # Please provide your model's folder name if there is one
    model_path = os.path.join(
        os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
    )
    # deserialize the model file back into a sklearn model
    model = joblib.load(model_path)
    logging.info("Init complete")


def run(raw_data):
    """
    This function is called for every invocation of the endpoint to perform the actual scoring/prediction.
    In the example we extract the data from the json input and call the scikit-learn model's predict()
    method and return the result back
    """
    logging.info("model 1: request received")
    data = json.loads(raw_data)["data"]
    data = numpy.array(data)
    result = model.predict(data)
    logging.info("Request processed")
    return result.tolist()

Функция init() вызывается при инициализации или запуске контейнера. Инициализация обычно происходит вскоре после создания или обновления развертывания. Функция init — это место для записи логики для глобальных операций инициализации, таких как кэширование модели в памяти (как показано в этом score.py файле).

Функция run() вызывается каждый раз при вызове конечной точки, и она выполняет фактическую оценку и прогнозирование. В этом score.py файле run() функция извлекает данные из входных данных JSON, вызывает метод модели predict() scikit-learn, а затем возвращает результат прогнозирования.

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

Настоятельно рекомендуется локально запустить конечную точку для проверки и отладки кода и конфигурации перед развертыванием в Azure. Пакет SDK Azure CLI и Python поддерживают локальные конечные точки и развертывания, а шаблон Студия машинного обучения Azure и ARM не поддерживаются.

Для локального развертывания подсистема Docker должна быть установлена и запущена. Как правило, подсистема Docker запускается при включении компьютера. В противном случае вы можете устранить неполадки подсистемы Docker.

Совет

Вы можете использовать пакет Python http-сервера Машинное обучение Azure для отладки скрипта оценки локально без подсистемы Docker. Отладка с помощью сервера вывода помогает выполнить отладку скрипта оценки перед развертыванием на локальных конечных точках, чтобы можно было выполнять отладку без влияния на конфигурации контейнеров развертывания.

Дополнительные сведения об отладке сетевых конечных точек локально перед развертыванием в Azure см. в статье "Отладка конечных точек Online".

Локальное развертывание модели

Сначала создайте конечную точку. При необходимости для локальной конечной точки можно пропустить этот шаг и непосредственно создать развертывание (следующий шаг), которое, в свою очередь, создаст необходимые метаданные. Развертывание моделей локально полезно для разработки и тестирования.

az ml online-endpoint create --local -n $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml

Теперь создайте развертывание с именем blue в конечной точке.

az ml online-deployment create --local -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml

Флаг --local инструктирует CLI развернуть конечную точку в среде Docker.

Совет

Используйте Visual Studio Code для локального тестирования и отладки конечных точек. Дополнительные сведения см. в разделе Локальная отладка сетевых конечных точек в Visual Studio Code.

Убедитесь, что локальное развертывание выполнено успешно

Проверьте состояние развертывания, чтобы узнать, была ли модель развернута без ошибок:

az ml online-endpoint show -n $ENDPOINT_NAME --local

Результат должен выглядеть аналогично следующему JSON. Значение параметра provisioning_state — Succeeded.

{
  "auth_mode": "key",
  "location": "local",
  "name": "docs-endpoint",
  "properties": {},
  "provisioning_state": "Succeeded",
  "scoring_uri": "http://localhost:49158/score",
  "tags": {},
  "traffic": {}
}

В следующей таблице приведены возможные значения для provisioning_state:

значение Описание
Создание Ресурс создается.
Обновление Ресурс обновляется.
Удаление Ресурс удаляется.
Успешно Операция создания и обновления выполнена успешно.
Неудачно Не удалось выполнить операцию создания, обновления или удаления.

Вызов локальной конечной точки для оценки данных с помощью модели

Вызовите конечную точку для оценки модели с помощью invoke команды и передачи параметров запроса, хранящихся в JSON-файле:

az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json

Если вы хотите использовать клиент REST (например, curl), вам потребуется URI оценки. Чтобы получить URI оценки, используйте команду az ml online-endpoint show --local -n $ENDPOINT_NAME. Найдите атрибут scoring_uri в возвращенных данных.

Проверка журналов на наличие выходных данных операции вызова

В примере файла score.py метод run() выводит некоторые выходные данные в консоли.

Эти выходные get-logs данные можно просмотреть с помощью команды:

az ml online-deployment get-logs --local -n blue --endpoint $ENDPOINT_NAME

Развертывание сетевой конечной точки в Azure

Теперь следует развернуть сетевую конечную точку в Azure. Рекомендуется зарегистрировать модель и среду, которую вы будете использовать в развертывании.

Регистрация модели и среды

Рекомендуется зарегистрировать модель и среду перед развертыванием в Azure, чтобы можно было указать зарегистрированные имена и версии во время развертывания. Регистрация ресурсов позволяет повторно использовать их без необходимости отправлять их каждый раз при создании развертываний, тем самым повышая воспроизводимость и возможность трассировки.

Примечание.

В отличие от развертывания в Azure, локальное развертывание не поддерживает использование зарегистрированных моделей и сред. Скорее, локальное развертывание использует локальные файлы модели и использует среды только с локальными файлами. Для развертывания в Azure можно использовать локальные или зарегистрированные ресурсы (модели и среды). В этом разделе статьи развертывание в Azure использует зарегистрированные ресурсы, но вы можете использовать локальные ресурсы. Пример конфигурации развертывания, которая отправляет локальные файлы для локального развертывания, см. в разделе "Настройка развертывания".

Чтобы зарегистрировать модель и среду, используйте форму model: azureml:my-model:1 или environment: azureml:my-env:1. Для регистрации вы можете извлечь определения YAML model и environment в отдельные файлы YAML и использовать команды az ml model create и az ml environment create. Чтобы узнать больше об этих командах, выполните команду az ml model create -h и az ml environment create -h.

  1. Создайте определение YAML для модели:

    $schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
    name: my-model
    path: ../../model-1/model/
    
  2. Зарегистрируйте модель:

    az ml model create -n my-model -v 1 -f ./model.yaml
    
  3. Создайте определение YAML для среды:

    $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
    name: my-env
    image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
    conda_file: ../../model-1/environment/conda.yaml
    
  4. Зарегистрируйте среду:

    az ml environment create -n my-env -v 1 -f ./environment.yaml
    

Дополнительные сведения о регистрации модели в качестве ресурса см. в разделе "Регистрация модели в качестве ресурса" в Машинное обучение с помощью интерфейса командной строки. Дополнительные сведения о создании среды см. в статье "Управление средами Машинное обучение Azure с помощью ИНТЕРФЕЙСА командной строки и пакета SDK (версия 2)".

Настройка развертывания, использующего зарегистрированные ресурсы

Конфигурация развертывания использует зарегистрированную модель, которую вы хотите развернуть, и зарегистрированную среду.

Используйте зарегистрированные ресурсы (модель и среда) в определении развертывания. В следующем фрагменте кода показан endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml файл со всеми необходимыми входными данными для настройки развертывания:

blue-deployment-with-registered-assets.yml

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model: azureml:my-model:1
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: azureml:my-env:1
instance_type: Standard_DS3_v2
instance_count: 1

Использование различных типов экземпляров ЦП и GPU

Вы можете указать типы экземпляров ЦП или GPU в определении развертывания как для локального развертывания, так и для развертывания в Azure.

Определение развертывания в файле blue-deployment-with-registered-assets.yml использовал экземпляр типа Standard_DS3_v2 общего назначения и образ mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestDocker, отличный от GPU. Для вычислений GPU выберите SKU типа вычислений GPU и образ Docker GPU.

Поддерживаемые типы экземпляров общего назначения и GPU перечислены в статье о номерах SKU поддерживаемых виртуальных машин для управляемых сетевых конечных точек. Список базовых образов ЦП и GPU для Машинного обучения Azure см. на странице базовых образов Машинного обучения Azure.

Примечание.

Сведения об использовании Kubernetes вместо управляемых конечных точек в качестве целевого объекта вычислений см. в статье "Общие сведения о целевом объекте вычислений Kubernetes".

Теперь следует развернуть сетевую конечную точку в Azure.

Развернуть в Azure

  1. Создайте конечную точку в облаке Azure.

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    
  2. Создайте развертывание с именем blue в конечной точке.

    az ml online-deployment create -name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml --all-traffic
    

    Создание развертывания может занять до 15 минут в зависимости от того, создается ли базовая среда или образ в первый раз. Последующие развертывания, использующие ту же среду, обрабатываются быстрее.

    Совет

    • Если вы предпочитаете не блокировать консоль CLI, можно добавить флаг --no-wait в команду. Однако этот параметр остановит интерактивное отображение состояния развертывания.

    Внимание

    Флаг --all-traffic в коде az ml online-deployment create , который используется для создания развертывания, выделяет 100 % трафика конечной точки только что созданному синему развертыванию. Хотя это полезно для разработки и тестирования, для рабочей среды может потребоваться маршрутизировать трафик к новому развертыванию с помощью явной команды. Например, az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".

Сведения об отладке ошибок в развертывании см. в статье "Устранение неполадок с сетевыми развертываниями конечных точек".

Проверка состояния конечной точки

  1. show Используйте команду для отображения сведений в provisioning_state конечной точке и развертывании:

    az ml online-endpoint show -n $ENDPOINT_NAME
    
  2. Вывод списка всех конечных точек в рабочей области в формате таблицы с помощью list команды:

    az ml online-endpoint list --output table
    

Проверка состояния развертывания в сети

Проверьте журналы, чтобы узнать, была ли модель развернута без ошибок.

  1. Чтобы просмотреть выходные данные журнала из контейнера, используйте следующую команду CLI:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

    По умолчанию журналы извлекаются из контейнера сервера вывода. Чтобы просмотреть журналы из контейнера инициализатора хранилища, добавьте --container storage-initializer флаг. Дополнительные сведения о журналах развертывания см. в разделе "Получение журналов контейнеров".

Вызов конечной точки для оценки данных с помощью модели

  1. invoke Используйте команду или клиент REST, чтобы вызвать конечную точку и оценить некоторые данные:

    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
    
  2. Получите ключ, используемый для проверки подлинности в конечной точке:

    Совет

    Вы можете контролировать, какие субъекты безопасности Microsoft Entra могут получить ключ проверки подлинности, назначив их пользовательской роли, которая позволяет Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action и Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action. Дополнительные сведения об управлении авторизацией в рабочих областях см. в статье "Управление доступом к рабочей области Машинное обучение Azure".

    ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
    
  3. Используйте curl для оценки данных.

    SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
    
    curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json
    

    Обратите внимание, что вы используете show и get-credentials команды для получения учетных данных проверки подлинности. Кроме того, обратите внимание, что флаг используется --query для фильтрации только необходимых атрибутов. Дополнительные сведения о флаге см. в статье "Запрос выходных --query данных команды Azure CLI".

  4. Чтобы просмотреть журналы вызовов, снова введите команду get-logs.

(Необязательно) Обновление развертывания

Если вы хотите обновить код, модель, среду или параметры масштабирования, обновите файл YAML и введите команду az ml online-endpoint update.

Примечание.

При обновлении количества экземпляров (для масштабирования развертывания) вместе с другими параметрами модели (например, кодом, моделью или средой) в одной update команде сначала будет выполнена операция масштабирования, а затем будут применены другие обновления. Рекомендуется выполнять эти операции отдельно в рабочей среде.

Чтобы понять, как работает команда update:

  1. Откройте файл online/model-1/onlinescoring/score.py.

  2. Измените последнюю строку функции init(): после logging.info("Init complete") добавьте logging.info("Updated successfully").

  3. Сохраните файл.

  4. Выполните следующую команду:

    az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml
    

    Примечание.

    Обновление с помощью YAML является декларативным. Это означает, что изменения в YAML отражаются в базовых ресурсах Azure Resource Manager (конечных точках и развертываниях). В декларативном подходе используется GitOps: все изменения конечных точек и развертываний (даже instance_count) проходят через YAML.

    Совет

    • Вы можете использовать универсальные параметры обновления, такие как --set параметр, с помощью команды CLI update для переопределения атрибутов в YAML или для задания определенных атрибутов, не передавая их в YAML-файл. Использовать --set для отдельных атрибутов особенно удобно в сценариях разработки и тестирования. Например, с помощью флага --set instance_count=2 можно увеличить значение instance_count первого развертывания. Однако поскольку YAML не обновляется, этот метод не упрощает процесс GitOps.
    • Указание ФАЙЛА YAML не является обязательным. Например, если вы хотите протестировать различные параметры параллелизма для данного развертывания, можно попробовать что-то подобное az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4. Это позволит сохранить всю существующую конфигурацию, но обновить только указанные параметры.
  5. Так как вы изменили init() функцию, которая выполняется при создании или обновлении конечной точки, сообщение Updated successfully будет находиться в журналах. Чтобы получить журналы, выполните следующую команду:

    az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
    

Команда update также работает с локальными конечными точками. Используйте такую же команду az ml online-deployment update с флагом --local.

Обновление развертывания в этом разделе является примером последовательного обновления на месте.

  • Для управляемой сетевой конечной точки развертывание обновляется до новой конфигурации с 20% узлами за раз. То есть, если развертывание содержит 10 узлов, одновременно обновляются 2 узла.
  • Для конечной точки Kubernetes online система итеративно создает новый экземпляр развертывания с новой конфигурацией и удаляет старый.
  • Для использования в рабочей среде следует учитывать сине-зеленое развертывание, которое предлагает более безопасную альтернативу обновлению веб-службы.

(Дополнительно) Настройка автомасштабирования

Благодаря автомасштабированию автоматически запускается именно тот объем ресурсов, который нужен для обработки нагрузки в вашем приложении. Управляемые сетевые конечные точки поддерживают автоматическое масштабирование через интеграцию с функцией автомасштабирования Azure Monitor. Сведения о настройке автомасштабирования см. в разделе Автомасштабирование сетевых конечных точек.

(Необязательно) Мониторинг соглашения об уровне обслуживания с помощью Azure Monitor

Чтобы просмотреть метрики и настроить оповещения на основе соглашения об уровне обслуживания, выполните действия, описанные в статье Мониторинг сетевых конечных точек.

(Необязательно) Интеграция с Log Analytics

Команда get-logs для ИНТЕРФЕЙСА командной строки или get_logs метода пакета SDK предоставляет только последние несколько сотен строк журналов из автоматически выбранного экземпляра. Однако Log Analytics позволяет надежно хранить и анализировать журналы. Дополнительные сведения об использовании ведения журнала см. в разделе "Мониторинг сетевых конечных точек".

Удаление конечной точки и развертывания

Удалите конечную точку и все его базовые развертывания:

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait