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

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

Ключевые этапы MLOps:

  • Сбор данных
  • Анализ данных
  • Преобразование/подготовка данных
  • Обучение и развитие модели
  • Проверка модели
  • Подача модели
  • Мониторинг модели
  • Переобучение модели.

DevOps против MLOps

DevOps и MLOps имеют фундаментальное сходство, потому что принципы MLOps были получены из принципов DevOps. Но они совершенно разные по исполнению:

  1. В отличие от DevOps, MLOps носит гораздо более экспериментальный характер. Специалисты по данным и инженеры ML/DL должны настраивать различные функции — гиперпараметры, параметры и модели — а также отслеживать и управлять данными и кодовой базой для воспроизводимых результатов. Помимо всех усилий и инструментов, индустрия ML/DL все еще борется с воспроизводимостью экспериментов. Эта тема выходит за рамки этой статьи, поэтому для получения дополнительной информации см. подраздел воспроизводимости в справочных материалах в конце.
  2. Гибридный состав команды: команда, необходимая для создания и развертывания моделей в рабочей среде, будет состоять не только из инженеров-программистов. В проекте ML в команду обычно входят специалисты по данным или исследователи ML, которые сосредоточены на исследовательском анализе данных, разработке моделей и экспериментах. Они могут не быть опытными инженерами-программистами, способными создавать сервисы производственного класса.
  3. Тестирование. тестирование системы машинного обучения включает в себя проверку модели, обучение модели и т. д. — в дополнение к обычным проверкам кода, таким как модульное тестирование и интеграционное тестирование.
  4. Автоматическое развертывание: вы не можете просто развернуть обученную в автономном режиме модель машинного обучения в качестве службы прогнозирования. Вам понадобится многоэтапный конвейер для автоматического переобучения и развертывания модели. Этот конвейер добавляет сложности, поскольку вам необходимо автоматизировать шаги, которые специалисты по данным выполняют вручную перед развертыванием для обучения и проверки новых моделей.
  5. Снижение производительности системы в производственной среде из-за меняющихся профилей данных или просто перекоса между обучением и обслуживанием: рабочие модели машинного обучения могут снижать производительность не только из-за неоптимального кодирования, но и из-за постоянно изменяющихся профилей данных. . Модели могут разрушаться по большему количеству способов, чем обычные программные системы, и вам необходимо это учитывать. Это может быть вызвано:
  • Несоответствие между тем, как вы обрабатываете данные в конвейерах обучения и обслуживания.
  • Изменение данных между тем, когда вы тренируетесь, и тем, когда вы подаете.
  • Цикл обратной связи — когда вы выбираете неправильную гипотезу (то есть цель) для оптимизации, что заставляет вас собирать необъективные данные для обучения вашей модели. Затем, сами того не зная, вы собираете новые точки данных, используя эту ошибочную гипотезу, они используются для переобучения/точной настройки будущих версий модели, что делает модель еще более предвзятой, и снежный ком продолжает расти. Для получения дополнительной информации прочитайте раздел Fastbook Ограничения, присущие машинному обучению.
  1. Мониторинг: модели в производстве необходимо отслеживать. Точно так же необходимо отслеживать сводную статистику данных, на основе которых построена модель, чтобы при необходимости можно было обновить модель. Эта статистика может и будет меняться со временем, вам нужны уведомления или процесс отката, когда значения отклоняются от ваших ожиданий.

MLOPs и DevOps похожи, когда речь идет о непрерывной интеграции системы управления версиями, модульном тестировании, интеграционном тестировании и непрерывной доставке программного модуля или пакета.

Вас может заинтересовать

MLOPs — это часть DevOps. Не форк — мои мысли о статье THE MLOps как генерального директора стартапа MLOps

Однако в ML есть несколько заметных отличий:

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

MLOps, отслеживание экспериментов и управление моделями машинного обучения

Мы определили, что такое MLOps, а как насчет отслеживания экспериментов и управления моделями машинного обучения?

Отслеживание экспериментов

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

Как упоминалось ранее, поскольку ML/DL носит экспериментальный характер, мы используем инструменты отслеживания экспериментов для сравнительного анализа различных моделей, созданных разными компаниями, командами или членами команды.

Управление моделями

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

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

Установив четкую и последовательную методологию управления моделями, организации могут:

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

Почему MLOps имеет значение?

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

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

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

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

Лучшие практики MLOps

Сначала я хотел просто перечислить 10 лучших практик, но после некоторых исследований я пришел к выводу, что лучше всего было бы охватить лучшие практики для разных компонентов пайплайна машинного обучения, а именно: Team, Data, Objective, Model, Код и развертывание.

Следующий список взят из различных источников, упомянутых в ссылках:

Команда

Данные

Цель (метрики и ключевые показатели эффективности)

Модель

Код

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

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

Как реализовать MLOps

Согласно Google, есть три способа реализации MLOps:

  • Уровень MLOps 0 (ручной процесс)
  • MLOps level 1 (автоматизация конвейера машинного обучения)
  • MLOps level 2 (автоматизация конвейера CI/CD)

Млопс уровень 0

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

Характеристики

  • Ручной, управляемый сценариями и интерактивный процесс: каждый шаг выполняется вручную, включая анализ данных, подготовку данных, обучение модели и проверку. Он требует ручного выполнения каждого шага и ручного перехода от одного шага к другому.
  • Разрыв между машинным обучением и операциями: процесс разделяет специалистов по данным, которые создают модель, и инженеров, которые обслуживают модель как службу прогнозирования. Исследователи данных передают обученную модель в качестве артефакта команде инженеров для развертывания в своей инфраструктуре API.
  • Редкие итерации выпуска. Предполагается, что ваша команда по обработке и анализу данных управляет несколькими моделями, которые не меняются часто — либо изменение реализации модели, либо переобучение модели с использованием новых данных. Новая версия модели развертывается всего пару раз в год.
  • Отсутствие непрерывной интеграции (CI): поскольку предполагается небольшое количество изменений в реализации, вы игнорируете CI. Обычно тестирование кода является частью блокнотов или выполнения скриптов.
  • Нет непрерывного развертывания (CD): из-за редкого развертывания версий модели CD не рассматривается.
  • Под развертыванием понимается служба прогнозирования (т. е. микрослужба с REST API).
  • Отсутствие активного мониторинга производительности: процесс не отслеживает и не регистрирует прогнозы и действия модели.

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

Задачи

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

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

Млопс уровень 1

Целью уровня 1 MLOps является выполнение непрерывного обучения (CT) модели путем автоматизации конвейера ML. Таким образом, вы обеспечиваете непрерывную доставку услуги прогнозирования модели.

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

Характеристики

  • Экспресс-эксперимент: этапы эксперимента машинного обучения организуются и выполняются автоматически.
  • CT модели в рабочей среде: модель автоматически обучается в рабочей среде с использованием свежих данных на основе триггеров конвейера.
  • Экспериментально-операционная симметрия: реализация конвейера, которая используется в среде разработки или эксперимента, используется в среде подготовки и производства, что является ключевым аспектом практики MLOps для унификации DevOps.
  • Модульный код для компонентов и конвейеров. Для создания конвейеров машинного обучения компоненты должны быть пригодными для повторного использования, компоновки и, возможно, общими для конвейеров машинного обучения (т. е. с использованием контейнеров).
  • Непрерывная доставка моделей: этап развертывания модели, на котором обученная и проверенная модель используется в качестве службы прогнозирования для онлайн-прогнозов, автоматизирован.
  • Конвейерное развертывание: на уровне 0 вы развертываете обученную модель в качестве службы прогнозирования в рабочей среде. Для уровня 1 вы развертываете весь конвейер обучения, который автоматически и периодически запускается для обслуживания обученной модели в качестве службы прогнозирования.

Дополнительные компоненты

  • Проверка данных и модели. конвейер ожидает, что новые оперативные данные создадут новую версию модели, обученную на новых данных. Поэтому в производственном конвейере требуются автоматизированные этапы проверки данных и проверки модели.
  • Хранилище функций. Хранилище функций — это централизованное хранилище, в котором вы стандартизируете определение, хранение и доступ к функциям для обучения и обслуживания.
  • Управление метаданными: информация о каждом выполнении конвейера машинного обучения записывается, чтобы помочь с происхождением данных и артефактов, воспроизводимостью и сравнением. Это также помогает вам отлаживать ошибки и аномалии.
  • Триггеры конвейера машинного обучения: вы можете автоматизировать рабочие конвейеры машинного обучения для переобучения моделей с новыми данными в зависимости от вашего варианта использования:
  • По требованию
  • По расписанию
  • О наличии новых обучающих данных
  • О снижении производительности модели
  • О существенных изменениях в распределении данных (развивающиеся профили данных).

Задачи

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

Однако вам нужно пробовать новые идеи машинного обучения и быстро развертывать новые реализации компонентов машинного обучения. Если вы управляете множеством конвейеров машинного обучения в производственной среде, вам потребуется установка CI/CD для автоматизации сборки, тестирования и развертывания конвейеров машинного обучения.

Млопс уровень 2

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

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

Эта установка MLOps включает следующие компоненты:

  • Управления источником
  • Тестировать и создавать сервисы
  • Услуги по развертыванию
  • Реестр моделей
  • Магазин функций
  • Хранилище метаданных машинного обучения
  • Оркестратор конвейера машинного обучения.

Характеристики

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

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