Локальное развертывание модели
Узнайте, как использовать машинное обучение Azure для развертывания модели в виде веб-службы на вашем вычислительном экземпляре машинного обучения Azure. Используйте вычислительные экземпляры, если:
- вам важно быстро выполнять развертывание и проверку модели.
- вы тестируете модель, которая находится в стадии разработки.
Совет
Развертывание модели из Jupyter Notebook на вычислительном экземпляре в виде веб-службы на той же виртуальной машине называется локальным. В этом случае вычислительным экземпляром является локальный компьютер.
Примечание.
Машинное обучение Azure Конечные точки (версия 2) обеспечивают улучшенный и простой интерфейс развертывания. Они поддерживают сценарии развертывания как в режиме реального времени, так и при использовании пакетного вывода. Конечные точки служат единым интерфейсом для вызова развертывания моделей и управления ими в вычислительных ресурсах разных типов. См. раздел "Что такое конечные точки Машинное обучение Azure?".
Необходимые компоненты
- Рабочая область машинного обучения Azure с работающим вычислительным экземпляром. Дополнительные сведения см. в статье "Создание ресурсов для начала работы".
Развертывание на вычислительных экземплярах
Ваш вычислительный экземпляр содержит пример записной книжки для демонстрации локальных развертываний. Чтобы загрузить записную книжку и развернуть модель в виде веб-службы на виртуальной машине, сделайте следующее:
В студии машинного обучения Azure выберите "Записные книжки", а затем в разделе "Примеры записных книжек" выберите файл how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb. Клонируйте эту записную книжку в свою пользовательскую папку.
Найдите записную книжку, клонированную на шаге 1, затем выберите или создайте вычислительный экземпляр для запуска записной книжки.
Записная книжка отображает URL-адрес и порт, используемые для запуска службы. Например,
https://localhost:6789
. Чтобы отобразить порт, вы также можете запустить ячейку, содержащуюprint('Local service port: {}'.format(local_service.port))
.Чтобы протестировать службу из вычислительного экземпляра, используйте URL-адрес
https://localhost:<local_service.port>
. Для тестирования из удаленного клиента получите общедоступный URL-адрес службы, выполняющейся на вычислительном экземпляре. Общедоступный URL-адрес можно определить по следующей формуле:- Виртуальная машина для записных книжек:
https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.notebooks.azureml.net/score
. - Вычислительный экземпляр:
https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.instances.azureml.net/score
.
Например,
- Виртуальная машина для записных книжек:
https://vm-name-6789.northcentralus.notebooks.azureml.net/score
- Вычислительный экземпляр:
https://vm-name-6789.northcentralus.instances.azureml.net/score
- Виртуальная машина для записных книжек:
Тестирование службы
Чтобы отправить выборку данных в запущенную службу, используйте показанный ниже код. Вместо значения service_url
укажите URL-адрес из предыдущего действия.
Примечание.
При проверке подлинности в развертывании в вычислительном экземпляре проверка подлинности выполняется с помощью идентификатора Microsoft Entra. Вызов interactive_auth.get_authentication_header()
в примере кода проходит проверку подлинности с помощью идентификатора Microsoft Entra и возвращает заголовок, который затем можно использовать для проверки подлинности в службе в вычислительном экземпляре. Дополнительные сведения см. в статье Настройка проверки подлинности ресурсов и рабочих процессов Машинного обучения Azure.
Для проверки подлинности в развернутой службе Azure Kubernetes или экземплярах контейнеров Azure используется другой способ. См. статью Настройка проверки подлинности для моделей машинного обучения Azure, развернутых как веб-службы.
import requests
import json
from azureml.core.authentication import InteractiveLoginAuthentication
# Get a token to authenticate to the compute instance from remote
interactive_auth = InteractiveLoginAuthentication()
auth_header = interactive_auth.get_authentication_header()
# Create and submit a request using the auth header
headers = auth_header
# Add content type header
headers.update({'Content-Type':'application/json'})
# Sample data to send to the service
test_sample = json.dumps({'data': [
[1,2,3,4,5,6,7,8,9,10],
[10,9,8,7,6,5,4,3,2,1]
]})
test_sample = bytes(test_sample,encoding = 'utf8')
# Replace with the URL for your compute instance, as determined from the previous section
service_url = "https://vm-name-6789.northcentralus.notebooks.azureml.net/score"
# for a compute instance, the url would be https://vm-name-6789.northcentralus.instances.azureml.net/score
resp = requests.post(service_url, test_sample, headers=headers)
print("prediction:", resp.text)
Следующие шаги
- Развертывание модели с помощью пользовательского образа Docker
- Устранение неполадок при развертывании
- Использование TLS для защиты веб-службы с помощью Машинного обучения Azure.
- Использование модели Машинного обучения Azure, развернутой в качестве веб-службы
- Мониторинг моделей машинного обучения в Azure с помощью Application Insights
- Сбор данных для моделей в рабочей среде