Как развернуть модель машинного обучения в Azure ML Studio

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

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

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

Конвейер, который я использовал в качестве примера для написания этой статьи, был построен шаг за шагом в этой статье Конвейер машинного обучения в Azure ML Studio.

Создать конвейер вывода

Начну с того, что у вас уже есть пайплайн сборки. На вкладке задания в Azure ML Studio щелкните конвейер, который вы хотите развернуть, нажмите Создать конвейер вывода и выберите Конвейер вывода в реальном времени.

Обратите внимание, что Azure ML Studio предоставляет нам два варианта. Вариант, который вы должны выбрать, зависит от ваших потребностей и контекста вашей проблемы. Учтите следующие моменты:

  • Время отклика: если вам нужен немедленный ответ, вывод в реальном времени — лучший вариант. Если можно дождаться пакетной обработки, лучше подойдет пакетный вывод.
  • Объем данных: если у вас есть большой объем данных для обработки, пакетный вывод может быть более эффективным, поскольку он позволяет обрабатывать большие наборы данных одновременно.
  • Задержка: если задержка является критическим фактором для вашего варианта использования, предпочтительнее делать выводы в реальном времени, поскольку прогнозы генерируются почти мгновенно.
  • Взаимодействие в режиме реального времени. Если вам необходимо взаимодействовать с моделью и получать прогнозы в реальном времени в приложении или службе, вывод в реальном времени — правильный выбор.

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

После создания конвейера логического вывода в реальном времени вы заметите некоторые изменения в конвейере. Теперь у нас есть Ввод веб-службы и Вывод веб-службы. Эти компоненты необходимы для определения интерфейса вашего реального веб-служба логического вывода. Они обеспечивают правильную обработку входных данных и возврат сгенерированных прогнозов в ожидаемом формате.

Настраивая ввод и вывод веб-службы, вы определяете, как будет использоваться ваша веб-служба логического вывода в реальном времени и как данные будут передаваться между клиентом (который делает запрос логического вывода) и моделью машинного обучения.

Теперь, когда у нас есть входные и выходные данные, мы можем удалить другие шаги, которые не имеют большего смысла, такие как шаг teste с данными, которые мы использовали для обучения модели, и добавить шаг Enter данные вручную. На этом этапе мы добавляем новые данные вручную, просто чтобы протестировать конвейер при развертывании.

Еще один шаг, который мы можем удалить, — это Оценка модели, потому что модель уже была обучена, и мы уже проанализировали ее результаты.

На шаге Введите данные вручную необходимо указать новые данные. Для этого примера я добавил код CSV с той же структурой, что и база данных, которую я использовал для обучения модели.

И мы не можем забыть удалить нашу цель из шага Выбрать столбцы в наборе данных. В моем случае моя цель вызывает Churn.

Что ж, для завершения нам нужно добавить шаг Python Script, чтобы добавить несколько столбцов с результатом оттока, который будет предсказывать модель при вводе новых данных. Код принимает два кадра данных (dataframe1 и dataframe2) в качестве входных данных, но я использовал только dataframe1. Для окончательного результата скрипт python фильтрует только необходимые столбцы, чтобы проверить результат модели, который представляет собой оцененные метки и оцененные вероятности.

Развертывание

После этого нажмите Отправить и создайте новый эксперимент для этого конвейера вывода. Если в вашем конвейере не появилось ошибок, вы можете сделать это сейчас.

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

Вот разница между ними:

Экземпляр контейнера Azure (ACI):

  • Экземпляр контейнера Azure — это упрощенный вариант управляемых вычислений для запуска контейнеров в Azure.
  • Это более простой и легкий в настройке вариант, подходящий для небольших рабочих нагрузок.
  • Он идеально подходит для развертывания моделей машинного обучения, которые не требуют автоматического масштабирования и могут работать в одном контейнере.
  • Он больше подходит для быстрого развертывания, прототипирования, мелкомасштабного вывода моделей и изолированных рабочих нагрузок.

Служба Azure Kubernetes (AKS):

  • Служба Azure Kubernetes — это полностью управляемая платформа оркестрации контейнеров на основе Kubernetes, которая упрощает развертывание, управление и масштабирование контейнерных приложений в Azure.
  • AKS больше подходит для крупномасштабных рабочих нагрузок машинного обучения, требующих автоматического масштабирования, расширенного управления контейнерами, балансировки нагрузки и высокой доступности.
  • Он предлагает расширенные функции, такие как автоматическое масштабирование в зависимости от рабочей нагрузки, развертывание нескольких контейнеров и крупномасштабное управление ресурсами.
  • Он идеально подходит для случаев, когда вам необходимо развернуть несколько экземпляров модели машинного обучения и управлять ими, выполнять крупномасштабные развертывания, управлять трафиком и эффективно масштабировать.

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

Заключение

Используя конечную точку REST, вы можете отправлять данные в модель в формате JSON или двоичном формате, в зависимости от типа запроса, поддерживаемого службой логического вывода. Модель обработает полученные данные и вернет ответ с прогнозами или результатами, которые вы можете использовать в своем приложении или обработать в соответствии со своими потребностями.

Например, если вы разрабатываете веб-приложение, вы можете выполнять HTTP-вызовы к конечной точке REST модели из своего приложения, чтобы получать прогнозы в реальном времени на основе предоставленных данных.

Спасибо за чтение.