Мягкое введение в развертывание моделей и различных типов

Таблица содержания

  1. "Вступление"
  2. Что такое развертывание модели
  3. Архитектура высокого уровня системы машинного обучения
  4. Различные методы развертывания вашей модели
  5. Факторы, которые следует учитывать при выборе метода развертывания

Вступление

Представьте, что вы потратили несколько месяцев на создание модели машинного обучения (ML), которая может определить, является ли транзакция мошеннической или нет, с почти идеальной оценкой f1. Это здорово, но вы еще не закончили. В идеале вы хотите, чтобы ваша модель определяла, является ли транзакция мошеннической, в режиме реального времени, чтобы вы могли предотвратить ее выполнение вовремя. Именно здесь на помощь приходит развертывание модели.

Большинство онлайн-ресурсов сосредоточено на предшествующих этапах жизненного цикла машинного обучения, таких как исследовательский анализ данных (EDA), выбор модели и оценка модели. Однако развертывание модели - это тема, которая, кажется, редко обсуждается - причина в том, что она может быть довольно сложной. Развертывание - это тема, которая полностью не связана с EDA, выбором модели или ее оценкой, и, следовательно, ее плохо понимают те, кто не имеет опыта разработки программного обеспечения или DevOps. В этой статье вы узнаете, что такое развертывание модели, высокоуровневую архитектуру модели, различные методы развертывания модели и факторы, которые следует учитывать при выборе метода развертывания.

Что такое развертывание модели?

Развертывание модели машинного обучения, известное как развертывание модели, просто означает интеграцию модели машинного обучения и ее интеграцию в существующую производственную среду (1), где она может принимать входные данные и возвращать выходные данные. Цель развертывания вашей модели - сделать прогнозы на основе обученной модели машинного обучения доступными для других, будь то пользователи, менеджеры или другие системы. Развертывание модели тесно связано с архитектурой систем машинного обучения, которая относится к расположению и взаимодействию программных компонентов в системе для достижения заранее определенной цели (Opeyemi, 2019).

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

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

(1) Производственная среда - это термин, используемый для описания условий, в которых программное обеспечение и другие продукты фактически вводятся в эксплуатацию для предполагаемого использования конечными пользователями (Techopedia, 2012).

Архитектура высокого уровня системы машинного обучения

На высоком уровне система машинного обучения состоит из четырех основных частей:

  1. Уровень данных: уровень данных обеспечивает доступ ко всем источникам данных, которые потребуются модели.
  2. Feature Layer: векторный слой отвечает за создание данных функций в прозрачном, масштабируемом и удобном виде.
  3. Слой оценки: слой оценки преобразует объекты в прогнозы. Scikit-learn используется чаще всего и является отраслевым стандартом для оценки.
  4. Уровень оценки: уровень оценки проверяет эквивалентность двух моделей и может использоваться для мониторинга производственных моделей. Т.е. он используется для отслеживания и сравнения того, насколько точно прогнозы обучения соответствуют прогнозам в реальном времени.

Различные методы развертывания вашей модели

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

Одноразово

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

Пакет

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

В реальном времени

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

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

При принятии решения о развертывании модели машинного обучения следует учитывать ряд факторов и последствий. Эти факторы включают следующее:

  • Как часто будут создаваться прогнозы и насколько срочно нужны результаты
  • Если прогнозы должны создаваться индивидуально или партиями
  • Требования модели к задержке, имеющаяся вычислительная мощность и желаемое соглашение об уровне обслуживания.
  • Операционные последствия и затраты, необходимые для развертывания и обслуживания модели

Дополнительные статьи, подобные этой, можно найти на странице Datatron’s Medium или в их блоге https://blog.datatron.com/.

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

Если вам нравится моя работа и вы хотите меня поддержать…

  1. НАИЛУЧШИЙ способ поддержать меня - это подписаться на меня на Medium здесь.
  2. Будьте одним из ПЕРВЫХ, кто подписался на меня в Twitter здесь. Я буду публиковать здесь много новостей и интересного!
  3. Также будьте одним из ПЕРВЫХ, кто подпишется на мой новый канал YouTube здесь! Видео пока нет, но скоро будут!
  4. Следуйте за мной в LinkedIn здесь.
  5. Зарегистрируйтесь в моем списке рассылки здесь.
  6. Посетите мой сайт terenceshin.com.

использованная литература

Техопедия (2019). Производственная среда. Техопедия. https://www.techopedia.com/definition/8989/production-environment

Опейеми, Бамигбаде (2019). Демистификация развертывания моделей машинного обучения (часть 1). В сторону науки о данных.

Https://towardsdatascience.com/deployment-of-machine-learning-model-demystified-part-1-1181d91815d2

Кервизич, Жюльен (2019). Обзор различных подходов к развертыванию моделей машинного обучения в производственной среде. KDnuggets. https://www.kdnuggets.com/2019/06/approaches-deploying-machine-learning-production.html

Патруно, Луиджи (2020). Что означает развертывание модели машинного обучения? KDnuggets. https://www.kdnuggets.com/2020/02/deploy-machine-learning-model.html