TLDR

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

Контур

  • Введение
  • Определить проблему
  • Собирать данные
  • Подготовить данные
  • Обучайте, оценивайте и улучшайте модель
  • Развертывание и интеграция модели
  • Модель монитора
  • Заключение

Введение

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

Определить проблему

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

В чем проблема?

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

Как мы должны измерить успех модели?

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

Достаточно ли данных для построения модели?

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

Собирать данные

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

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

Подготовить данные

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

Создание ярлыков

В машинном обучении «метка» — это целевая переменная, которую вы хотите предсказать с помощью модели. Чтобы подготовить данные для обучения модели, нам нужно определить, есть ли в нашем наборе данных столбец меток. Если в наших наборах данных нет явного столбца меток, нам нужно сначала создать метки.

Создать объекты

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

  • Расширьте существующие функции. Например, вы можете расширить функцию даты до функций «год», «месяц», «день» и «дни после праздника».
  • Агрегируйте функцию событий. Одним из примеров является подсчет количества пользовательских событий за последние 7, 30 или 90 дней. Другой пример — подсчет количества просмотров страниц в Google и Facebook соответственно.

Ввод, кодирование и масштабирование

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

  • Вменение: наборы данных реального мира обычно содержат пропущенные значения. Алгоритмы машинного обучения плохо справляются с пропущенными значениями. Таким образом, нам нужно заполнить пропущенное значение данными, полученными из существующих данных.
  • Кодировать: алгоритмы машинного обучения требуют, чтобы данные были числами. Таким образом, нам нужно преобразовать текстовые функции в числа.
  • Масштаб: числа с большими диапазонами будут иметь большее влияние на выходные данные модели. Нам нужно настроить значения числовых столбцов так, чтобы они попадали в одинаковые диапазоны, чтобы большие числа (например, секунды с начала эпохи) не влияли на прогноз непропорционально сильно, как меньшие значения (например, возраст).

Обучайте, оценивайте и улучшайте модель

После подготовки данных мы разделяем набор данных на обучающий набор и тестовый набор, выбираем алгоритм, а затем начинаем обучать модель с обучающим набором. Мы вкратце представили некоторые алгоритмы машинного обучения в статье Основы того, как стать волшебником AI/ML. Мы подробно обсудим различные алгоритмы в следующей статье блога.

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

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

Развертывание и интеграция модели

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

Как правило, существует два способа интеграции моделей и создания прогнозов: онлайн-прогнозы и автономные пакетные прогнозы.

Онлайн-прогноз

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

Автономный пакетный прогноз

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

Эксперимент

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

Модель монитора

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

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

Заключение

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

  • Продуктовая команда определяет проблему.
  • Разработчик продукта собирает данные.
  • Специалист по данным готовит данные и обучает модель.
  • Инженер MLOps развертывает модель в рабочей среде.
  • Разработчик продукта интегрирует модель в продукт.
  • Инженер MLOps настраивает систему мониторинга модели.

Если вам интересно, есть ли способ упростить процесс, Маг поможет справиться со всей работой от подготовки данных до мониторинга модели. Mage также дает рекомендации о том, какие проблемы вы можете решить с помощью ML и какие данные для этого необходимы.