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

Зачем нам нужен DevOps? В чем причина размещения машинного обучения и искусственного интеллекта над DevOps? В чем разница между ML Ops и AI Ops? Продолжайте читать этот блог, чтобы узнать.

Что такое МЛОпс?

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

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

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

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

DevOps против MLOps

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

  1. В отличие от DevOps, MLOps носит гораздо более экспериментальный характер. Специалисты по обработке и анализу данных и инженеры по машинному и машинному обучению должны настраивать различные функции — гиперпараметры, параметры и модели, а также отслеживать и управлять данными и кодовой базой для получения воспроизводимых результатов.
  2. Гибридный состав команды: команда, необходимая для создания и развертывания моделей в рабочей среде, будет состоять не только из инженеров-программистов. В проекте ML в команду обычно входят специалисты по данным или исследователи ML, которые сосредоточены на исследовательском анализе данных, разработке моделей и экспериментах. Они могут не быть опытными инженерами-программистами, способными создавать сервисы производственного класса.
  3. Тестирование. тестирование системы машинного обучения включает в себя проверку модели, обучение модели и т. д. в дополнение к обычным проверкам кода, таким как модульное и интеграционное тестирование.
  4. Автоматическое развертывание: вы не можете просто развернуть обученную в автономном режиме модель машинного обучения в качестве службы прогнозирования. Вам понадобится многоэтапный конвейер для автоматического переобучения и развертывания модели. Этот конвейер добавляет сложности, поскольку вам необходимо автоматизировать шаги, которые специалисты по данным выполняют вручную перед развертыванием для обучения и проверки новых моделей.
  5. Снижение производительности системы в производственной среде из-за меняющихся профилей данных или просто перекоса между обучением и обслуживанием: рабочие модели машинного обучения могут снижать производительность не только из-за неоптимального кодирования, но и из-за постоянно изменяющихся профилей данных. . Модели могут разрушаться по большему количеству способов, чем обычные программные системы, и вам необходимо это учитывать.
  6. Мониторинг: модели в производстве необходимо отслеживать. Точно так же необходимо отслеживать сводную статистику данных, на основе которых построена модель, чтобы при необходимости можно было обновить модель. Эта статистика может и будет меняться со временем, вам нужны уведомления или процесс отката, когда значения отклоняются от ваших ожиданий.

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

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

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

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

Есть 3 способа реализации MLOps. В этом разделе описываются три уровня MLOps, начиная с наиболее распространенного уровня, который не предполагает автоматизации, до автоматизации конвейеров ML и CI/CD.

MLOps level 0: Ручной процесс

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

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

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

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

Задачи

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

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

Уровень 1 MLOps: автоматизация конвейера машинного обучения

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

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

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

Проблемы

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

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

Уровень 2 MLOps: автоматизация конвейера CI/CD

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

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

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

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

На следующей диаграмме показаны этапы конвейера автоматизации ML CI/CD:

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

Заключение

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