Статья написана с Томасом Виалем и Матье Лагашери

В Total Digital Factory перед нами стоит серьезная задача: быстрое развертывание машинного обучения (ML) в производственной среде. Действительно, наше типичное время разработки полного стека MVP (то есть включая машинное обучение, конвейеры инженерии данных, интерфейсную разработку и т. Д.) Составляет 6–8 месяцев и разрабатывается группой из 8 человек. Наши методы разработки должны быть прямо по делу. Как следствие, вот несколько советов (не исчерпывающих), которые я хотел бы дать ученым по данным и инженерам машинного обучения, а также владельцам продуктов и бизнес-командам.

Советы командам данных

Сначала конвейеры!

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

Управляйте своей моделью (MLOps 101)

Как только это будет сделано, как повысить производительность модели?

  • Устранение проблем с качеством данных (слишком больших, чтобы их можно было здесь решать!)
  • Занимайтесь наукой о данных
  • Получите отзывы как можно скорее. Эти два подхода можно использовать вместе или нет:
  1. Мониторинг теневого производства: разверните модель в производственной среде и сравните ее результаты с фактическими данными (но не используйте ее в своем приложении, просто наблюдайте, как она работает). Нет такого места, как производство, чтобы реально измерить производительность модели,
  2. Отзывы конечных пользователей: разверните модель в производственной среде и позвольте пользователям взаимодействовать с ней для сбора дополнительных этикеток или бизнес-знаний. Важно: процесс необходимо объяснить пользователям.

Чем раньше вы получите отзывы, тем лучше: не стесняйтесь сначала развернуть простую модель (и, если вам повезет, пользователи могут быть удовлетворены этим)!

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

  • Контролировать работоспособность модели в производстве;
  • Никогда не прекращайте собирать отзывы пользователей, чтобы улучшить вашу базу данных по тренировкам;
  • Определите стратегию повторного обучения (онлайн, пакетное, регулярное, на основе триггера, вручную);
  • Избегайте скрытых петель обратной связи и используйте стратегию для оценки реальных преимуществ обновления вашей модели или новой модели (теневое производство для сравнения новой модели с развернутой, A / B-тестирование и т. Д.).

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

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

Советы по анализу данных

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

  • Окончательного алгоритма моделирования не существует, не тратьте слишком много времени на его поиск. Мы фабрика, а не отдел исследований и разработок: что касается наших временных рамок, вы, вероятно, получите наилучшие возможные результаты с обычными моделями из обычных библиотек;
  • Обычные показатели оценки машинного обучения (RMSE, MAE, AUC, F1-score…) ничего не значат для пользователей. Попробуйте перевести их в бизнес-KPI, чтобы вы знали реальную добавленную стоимость своей модели;
  • Проанализируйте ошибки вашей модели, это даст очень ценную информацию для улучшений (например: top-k для классификации, остатков для регрессии ...);
  • Очень важно: бросьте вызов вашему набору данных. Проверьте, содержит ли он систематическую ошибку выборки, проблемы измерения и выберите функцию стоимости, адаптированную к специфике набора данных;
  • Проверяйте на этапе обучения (со стратегией, адаптированной к проблеме, например, K-кратное CV недействительно, если ошибки коррелированы) - но это не мешает вам контролировать модель в производстве -;
  • Если вы застряли в попытках повысить производительность с помощью методов науки о данных, подумайте о том, чтобы связать вашу модель с бизнес-эвристикой.

Советы бизнес-команде

Вы нужны специалисту по анализу данных!

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

  • Понимание данных;
  • Определение оценки бизнес-KPI модели;
  • Ожидаемая производительность;
  • Использование результатов модели в процессе принятия оперативных решений;
  • Принятие модели пользователями (доверие, объяснимость…);

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

Примите неопределенность

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

  • Будьте реалистами, устанавливая бизнес-ожидания относительно производительности модели. Нет смысла ожидать минимальной производительности модели до того, как специалист по данным серьезно изучит данные;
  • Идеальную модель редко можно гарантировать. Лучше подумайте вместе с специалистом по данным о минимальном уровне производительности, необходимом для получения ценности от функции машинного обучения, и начните с этой цели (обычно лучше развернуть модель с точностью 70% за 6 месяцев, чем модель с точностью 95% за 2 года). - однако, благодаря подходу MLOps, эта производительность, вероятно, со временем улучшится. Эта статья дает ценную информацию о концепции минимальной жизнеспособной производительности для ИИ-продукта;
  • Ожидаемая производительность иногда недостижима. Вы действительно знаете, что можете получить от данных, только когда возьметесь за них. Иногда даже опытный специалист по анализу данных не может достичь ожидаемых результатов. Принять это. Обсудите с ним / ней и адаптируйте стратегию моделирования и бизнес-использование модели к производительности, которую могут обеспечить данные.

Принять изменения

Имейте в виду, что создание функции машинного обучения - это не то же самое, что создание обычного программного обеспечения. Это вне обычного императивного программирования (если… то… иначе…) и методов разработки. Почему?

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

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

Чтобы продолжить изучение продуктового менеджмента ИИ, я рекомендую это отличное руководство.

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