Из этой статьи вы узнаете, как развернуть обученную autoML модель машинного обучения в интерактивном режиме для конечной точки вывода в режиме реального времени. Автоматизированное машинное обучение, которое также называется автоматизированным ML или AutoML, представляет собой процесс автоматизации трудоемких и многократно повторяющихся задач разработки модели машинного обучения. Дополнительные сведения см. в статье "Что такое автоматизированное машинное обучение (AutoML)"?
В следующих разделах вы узнаете, как развернуть обученную модель машинного обучения AutoML в сетевых конечных точках с помощью:
Студия машинного обучения Azure
CLI Azure Machine Learning (версия 2)
Пакет SDK Python для Машинного обучения Azure версии 2
Развертывание из Студии машинного обучения Azure без написания кода
Развертывание обученной с помощью AutoML модели со страницы автоматизированного ML не требует написания кода. Это значит, что вам не нужно подготовить скрипт оценки и среду, так как оба создаются автоматически.
В Студия машинного обучения Azure перейдите на страницу автоматизированного машинного обучения.
Выберите эксперимент и запустите его.
Перейдите на вкладку "Модели и дочерние задания ".
Выберите модель, которую необходимо развернуть.
После выбора модели кнопка "Развернуть " доступна в раскрывающемся меню.
Выберите параметр конечной точки в режиме реального времени.
Система создает модель и среду, необходимую для развертывания.
Развертывание вручную из студии или командной строки
Если вы хотите более контролировать развертывание, вы можете скачать артефакты обучения и развернуть их.
Чтобы скачать компоненты, необходимо выполнить развертывание:
Перейдите к эксперименту автоматизированного машинного обучения и запустите его в рабочей области машинного обучения.
Перейдите на вкладку "Модели и дочерние задания ".
Выберите модель, которую вы хотите использовать. После выбора модели кнопка "Скачать " включена.
Выберите Загрузить.
Вы получите файл .zip, содержащий следующее:
Файл спецификации среды conda с именем conda_env_<VERSION>.yml
Файл оценки Python с именем scoring_file_<VERSION>.py
Сама модель в PKL-файле Python с именем model.pkl
Для развертывания с использованием этих файлов можно использовать либо студию, либо Azure CLI.
Зарегистрируйте модель, скачаемую из запуска автоматизированного машинного обучения.
Перейдите на страницу "Среды", выберите пользовательскую среду и нажмите кнопку "Создать ", чтобы создать среду для развертывания. Используйте скачанный conda yaml для создания пользовательской среды.
Выберите модель и в раскрывающемся меню Deploy выберите конечную точку реального времени.
Выполните все действия мастера, чтобы создать виртуальную конечную точку и развертывание.
Чтобы создать развертывание из ИНТЕРФЕЙСА командной строки, вам потребуется Azure CLI с расширением ML версии 2. Выполните следующую команду, чтобы подтвердить:
az version
Если вы получили сообщение об ошибке или не видите Extensions: ml в ответе, выполните действия, описанные в разделе Установка и настройка CLI (версия 2).
Вход.
az login
Если у вас есть доступ к нескольким подпискам Azure, можно задать активную подписку.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Задайте группу ресурсов и рабочую область по умолчанию, в которой требуется создать развертывание.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Поместите файл оценки в свой собственный каталог
Создайте каталог с именем src. Сохраните скачанный файл оценки. Этот каталог загружается в Azure и содержит весь исходный код, необходимый для вывода. Для модели AutoML существует только один файл оценки.
Создание конечной точки и файла развертывания YAML
Чтобы создать конечную точку в сети из командной строки, создайте endpoint.yml и файл deployment.yml . В следующем коде, взятом из репозитория Машинное обучение Azure Examples, отображаются конечные точки,online/managed/sample/, которые фиксируют все необходимые входные данные.
Этот файл необходимо изменить, чтобы использовать файлы, скачанные на странице моделей AutoML.
Создайте файл automl_endpoint.yml и automl_deployment.yml и вставьте содержимое предыдущих примеров.
Измените значение name конечной точки. Имя конечной точки должно быть уникальным в пределах региона Azure. Имя конечной точки должно начинаться с буквы верхнего или нижнего регистра и содержать только алфавитно-цифровые символы и дефисы.
В файле automl_deployment.yml измените значение ключей по следующим путям.
Путь
Изменить на
model:path
Путь к скачанном файлу model.pkl .
code_configuration:code:path
Каталог, в который был помещен файл оценки.
code_configuration:scoring_script
Имя файла оценки Python (scoring_file_<VERSION>.py).
environment:conda_file
URL-адрес файла скачаемой среды conda (conda_env_<VERSION>.yml).
Создайте каталог с именем src. Сохраните скачанный файл оценки. Этот каталог загружается в Azure и содержит весь исходный код, необходимый для вывода. Для модели AutoML существует только один файл оценки.
Подключение к рабочей области Машинного обучения Azure
Импорт необходимых библиотек
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Настройте сведения о рабочей области и получите дескриптор рабочей области.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Создание конечной точки и развертывания
Создайте управляемые сетевые конечные точки и развертывания.
Настройте конечную точку в Сети.
Совет
name: имя конечной точки. Оно должно быть уникальным в рамках региона Azure. Имя конечной точки должно начинаться с буквы верхнего или нижнего регистра и содержать только алфавитно-цифровые символы и дефисы. Дополнительные сведения о правилах именования см. в разделе "Ограничения конечной точки".
auth_mode: Используйте key для проведения проверки подлинности на основе ключей. Используйте aml_token для проверки подлинности в службе "Машинное обучение Azure" на основе маркеров. Срок действия key не истекает, в отличие от aml_token. Дополнительные сведения о проверке подлинности см. в статье Проверка подлинности подключенной конечной точки.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
Создайте конечную точку.
Используя созданную MLClient ранее, создайте конечную точку в рабочей области. Эта команда запускает создание конечной точки. Он возвращает ответ подтверждения во время создания конечной точки.
ml_client.begin_create_or_update(endpoint)
Настройка сетевого развертывания.
Развертывание представляет собой набор ресурсов, необходимых для размещения модели, которая выполняет процесс вывода. Создайте развертывание для нашей конечной ManagedOnlineDeployment точки с помощью класса.
В этом примере файлы, скачанные на странице моделей AutoML, находятся в каталоге src . Параметры в коде можно изменить в соответствии с вашей ситуацией.
Параметр
Изменить на
model:path
Путь к скачанном файлу model.pkl .
code_configuration:code:path
Каталог, в который был помещен файл оценки.
code_configuration:scoring_script
Имя файла оценки Python (scoring_file_<VERSION>.py).
environment:conda_file
URL-адрес файла скачаемой среды conda (conda_env_<VERSION>.yml).
Создайте развертывание.
С помощью созданного MLClient ранее развертывания создайте в рабочей области. Эта команда начинает создание развертывания. Он возвращает ответ подтверждения во время создания развертывания.