ОБЛАСТЬ ПРИМЕНЕНИЯ:
Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
Из этой статьи вы узнаете, как развернуть обученную 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.
- В Студия машинного обучения Azure перейдите на страницу "Модели".
- Выберите "Выбрать + Зарегистрировать>из локальных файлов".
- Зарегистрируйте модель, скачаемую из запуска автоматизированного машинного обучения.
- Перейдите на страницу "Среды", выберите пользовательскую среду и нажмите кнопку "Создать ", чтобы создать среду для развертывания. Используйте скачанный conda yaml для создания пользовательской среды.
- Выберите модель и в раскрывающемся меню Deploy выберите конечную точку реального времени.
- Выполните все действия мастера, чтобы создать виртуальную конечную точку и развертывание.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
расширение машинного обучения Azure CLI версии 2 (текущее)
Чтобы создать развертывание из ИНТЕРФЕЙСА командной строки, вам потребуется 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_endpoint.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key
automl_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-ubuntu22.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Этот файл необходимо изменить, чтобы использовать файлы, скачанные на странице моделей 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). |
В командной строке выполните команду:
ОБЛАСТЬ ПРИМЕНЕНИЯ:
расширение машинного обучения Azure CLI версии 2 (текущее)
az ml online-endpoint create -f automl_endpoint.yml
az ml online-deployment create -f automl_deployment.yml
После создания развертывания вы можете оценить его, как описано в разделе Вызов конечной точки для оценки данных с помощью модели.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Пакет SDK для Python azure-ai-ml версии 2 (current)
Если необходимо установить пакет SDK для Python версии 2, установите следующую команду:
pip install azure-ai-ml azure-identity
См. подробнее об установке пакета SDK Машинного обучения Azure для Python версии 2.
Поместите файл оценки в свой собственный каталог
Создайте каталог с именем 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
точки с помощью класса.
model = Model(path="./src/model.pkl")
env = Environment(
conda_file="./src/conda_env_v_1_0_0.yml",
image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:latest",
)
blue_deployment = ManagedOnlineDeployment(
name="blue",
endpoint_name=online_endpoint_name,
model=model,
environment=env,
code_configuration=CodeConfiguration(
code="./src", scoring_script="scoring_file_v_2_0_0.py"
),
instance_type="Standard_DS2_v2",
instance_count=1,
)
В этом примере файлы, скачанные на странице моделей 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
ранее развертывания создайте в рабочей области. Эта команда начинает создание развертывания. Он возвращает ответ подтверждения во время создания развертывания.
ml_client.begin_create_or_update(blue_deployment)
После создания развертывания его можно оценить, как описано в разделе Тестирование конечной точки с примерами данных.
Дополнительные сведения о развертывании в управляемых сетевых конечных точках с помощью пакета SDK см. в статье "Развертывание и оценка модели машинного обучения с помощью сетевой конечной точки".
Связанный контент