Машинное обучение (ML) более распространено и интегрировано в повседневную жизнь человека, как мы видим на примере ChatGPT, который менее чем за неделю набрал 1 миллион пользователей (источник: https://finance.yahoo.com/). Однако по-прежнему сложно развернуть модель машинного обучения из исследовательской лаборатории в производство. Создание комплексного продукта машинного обучения для удовлетворения потребностей бизнеса — новая задача в области машинного обучения, поскольку мы должны учитывать конвейер данных, обслуживание модели, производительность модели в производственной среде и другие.

MLOps — это набор методов, направленных на надежное и эффективное развертывание и поддержку моделей машинного обучения в производственной среде. Слово представляет собой соединение машинного обучения и практики непрерывного развития DevOps в области программного обеспечения. (источник: Википедия)

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

Станьте экспертом по машинному обучению. Применяйте свои знания в области машинного обучения и расширяйте возможности производственного проектирования. (Введение в курс специализации «Инженерия машинного обучения для производства» (MLOPs))

Этот курс можно записать на Coursera по ссылке ниже (7-дневная бесплатная пробная версия с полным доступом).



К счастью, Coursera настолько любезна, что бесплатно публикует первый курс из этой серии!! на канале DeepLearningAI на Youtube.

Посмотреть все видео можно по этой ссылке.

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

Курс состоит из 3 тем (3 недели)

  • Неделя 1: Обзор жизненного цикла и развертывания ML
  • Неделя 2: выбор и обучение модели
  • Неделя 3: определение данных и исходный уровень

Часть 1 этой статьи будет охватывать только тему первой недели.

Обзор жизненного цикла машинного обучения

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

Жизненный цикл проекта машинного обучения включает 4 этапа: определение объема, данные, моделирование и развертывание.

Пример проекта распознавания речи

Область действия

  • Выберите проект для работы → Распознавание речи
  • Определитесь с ключевыми показателями: точность, задержка, пропускная способность
  • Оценить ресурсы и сроки

Данные

  • Последовательно ли размечены данные?
  • Как нормализовать данные?

Моделирование

  • Оптимизация кода (модели), гиперпараметров и данных

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

  • Грань или облако
  • API
  • Как контролировать и обслуживать систему? → Есть ли дрейф данных/концепций? (будет описано в следующей части)

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

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

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

Движение концепции и данных

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

  • Дрейф концепции и дрейф данных означают, что существует разница между обучающей выборкой и фактическими данными.
  • Данные могут меняться постепенно или внезапно, например, во время пандемии COVID-19, когда данные резко меняются.

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

  • Сдвиг концепции — это изменение X→y, или те же входные данные могут не давать того же прогноза, что и раньше, когда модель была обучена, например, изменение цен на жилье из-за инфляции.
  • Сдвиг данных — это изменение X, например, изображение в обучающем наборе четкое, а фактическое изображение слабо освещено.

Проблемы разработки программного обеспечения

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

  • В режиме реального времени или в пакетном режиме?
  • Облако или Edge/браузер?
  • Сколько вычислительных ресурсов?
  • Задержка, пропускная способность (QPS/запрос в секунду)
  • Ведение журнала
  • Безопасность и конфиденциальность

Случаи развертывания

  1. Новый продукт/возможность, например, предложение новой услуги по распознаванию речи → начните с небольшого трафика и постепенно увеличивайте его.
  2. Автоматизация/помощь в ручных задачах, таких как автоматическая проверка царапин на смартфоне на заводе.
  3. Замените предыдущую систему ML

Шаблон развертывания

  • Развертывание Canary: пробная версия с небольшой долей (например, 5%) трафика и мониторинга. Затем постепенно увеличивайте нагрузку, если результат вас устраивает. Этот шаблон подходит для случая развертывания 1 (новый продукт/мощность).
  • Развертывание теневого режима: результат тестовой модели вместе с результатом, полученным человеком. Этот шаблон подходит для случая развертывания 2 (автоматизация/помощь в ручных задачах).
  • Синее-зеленое развертывание: перевод всего трафика со старой/синей системы на новую/зеленую систему. Легко откатиться, если есть проблема. Этот шаблон подходит для случая развертывания 3 (замените предыдущую систему машинного обучения).

Степень автоматизации

Помощь ИИ, частичная автоматизация включает людей в цикл принятия решений.

Для помощи ИИ ИИ предоставит информацию, которая может быть полезной, но решения будут принимать люди.

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

Мониторинг

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

Распространенным способом является использование панелей мониторинга для демонстрации показателей мониторинга в зависимости от времени.

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

Пример показателей для отслеживания

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

Конвейер машинного обучения

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

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

Надеюсь, эта статья поможет вам лучше понять MLOps.
Ждите вторую часть!

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