Из пандемии COVID-19 [1] мы можем извлечь много уроков, но, сосредоточив внимание только на деловой стороне, возможно, один из них — быстрее реагировать на изменения рынка.

Новые возможности и вызовы

Есть данные, свидетельствующие о том, что онлайн-покупки ускоряются из-за кризиса COVID-19 [2, 3, 4]. Если компании хотят добиться успеха в этом новом сценарии, то понимание и прогнозирование поведения клиентов станет еще более важным, чем до кризиса. Есть ли разница с тем, что происходило до сих пор? Теперь это гонка!

Есть несколько проблем как для существующих игроков, так и для новичков в революции машинного обучения:

  • Выход на арену машинного обучения отнимает много времени и, вероятно, дорого. Понимание того, какие инструменты лучше для вас, требует обучения и экспериментов, и, возможно, в конечном итоге вы выберете неправильный технологический стек. С другой стороны, использование универсального облачного решения (например, AWS, Databricks и т. д.) может оказаться слишком дорогим. Найти правильный компромисс не так просто.
  • Для проектов машинного обучения требовались междисциплинарные команды. Например, эксперты в предметной области, специалисты по данным, инженеры данных и devops. Наличие всех их на одной странице для эффективного сотрудничества — огромная проблема.
  • Развертывания в рабочей среде недостаточно, для достижения успеха вам также необходимы воспроизводимость, мониторинг и отслеживание.
  • Уровень успеха проектов ИИ очень низок. По данным Pactera, 85% проектов ИИ терпят неудачу.

Управление жизненным циклом машинного обучения

За последнее десятилетие мы стали свидетелями появления множества новых методов управления жизненным циклом общих программных приложений и библиотек. Достаточно назвать два из них: CI/CD [5] и GitOps [6].

Но все обстоит иначе, когда мы работаем с проектом машинного обучения.

Например, специалист по данным выполняет исследовательский анализ данных (EDA) в блокноте Jupyter, чтобы понять данные о поведении клиентов. Выполнив некоторую работу, она занимается проектированием функций (FE), чтобы выделить функции, наиболее важные для бизнеса.

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

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

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

Таким образом, мы находимся в постоянном цикле совершенствования для переобучения модели, чтобы улучшить ее производительность и убедиться, что мы учитываем новые данные. Цикл Train -> Validate -> Deploy продолжается как прялка.

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

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

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

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

(В части 2 мы обсудим подход к управлению жизненным циклом машинного обучения с помощью MLflow)

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

[1]: Пандемия COVID-19, статья в Википедии. https://en.wikipedia.org/wiki/COVID-19_pandemic

[2]: Рост онлайн-покупок из-за кризиса COVID-19: https://www.essentialretail.com/news/aocom-online-shopping-rise/

[3]: Понимание влияния COVID-19 на поведение при совершении покупок в Интернете: https://www.bigcommerce.com/blog/covid-19-ecommerce/#changes-in-revenue-across-ecommerce

[4]: Из-за COVID-19 чаще совершаются покупки в электронной коммерции: https://www.warc.com/content/paywall/article/WARC-DATAPOINTS/Ecommerce_shopping_more_frequent_because_of_COVID19/132077

[5]: Что такое CI/CD от RedHat. https://www.redhat.com/en/topics/devops/what-is-ci-cd

[6]: Что такое GitOps от Weaveworks. https://www.gitops.tech/