Что такое MLOps? Понять, как это поможет вам в построении непрерывного конвейера машинного обучения.

Машинное обучение (ML) вторглось практически во все принципы нашей жизни, будь то здравоохранение, финансы или образование; это практически везде! Существует множество инженеров по машинному обучению и специалистов по обработке данных, которые хорошо разбираются в моделировании алгоритмов машинного обучения. Тем не менее возникает проблема развертывания модели машинного обучения в производственной среде. Кодирование алгоритма машинного обучения - это верхушка айсберга. Для развертывания модели машинного обучения необходимо позаботиться о настройке, автоматизации, серверной инфраструктуре, тестировании и управлении процессами. В традиционной разработке программного обеспечения DevOps занимается проектированием и операциями. Он органично объединяет разработку и эксплуатацию. Точно так же MLOps можно применять в машинном обучении для поддержки быстрого развертывания в производственной среде.

О MLOps

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

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

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

В целом управление моделью, управление схемой данных и развертывание модели составляют MLOps.

Вызовы

  • Основная проблема машинного обучения - объединение данных и кода. Чтобы система машинного обучения работала в производственной среде (онлайн), необходимо анализировать данные внутри и снаружи.
  • Специалисты по обработке данных обычно не занимаются построением систем производственного уровня; они в первую очередь сосредоточены на анализе данных и разработке моделей путем экспериментов, что требует наличия специальных знаний в области проектирования и эксплуатации.
  • Клишированные способы проектирования и разработки алгоритмов - не сильная сторона машинного обучения. В идеале это предполагает эксперименты с алгоритмами, функциями и гиперпараметрами. Очень важна фильтрация надежных результатов с помощью различных сравнений.
  • Модель машинного обучения должна быть эффективно протестирована, чтобы гарантировать ее надежность при наличии достоверных значений данных.
  • Развертывание модели машинного обучения в Интернете требует обучения в Интернете. Следовательно, необходимы эффективные стратегии проверки результатов.
  • Из-за зависимости от постоянно меняющихся данных, закачиваемых в модель машинного обучения, необходимо осуществлять конструктивный мониторинг показателей производительности.
  • Воспроизводимость при машинном обучении часто бывает затруднена из-за разнообразия программных сред, версий (итераций выпуска) и данных. Тем не менее, это жизненно важный фактор, который помогает бесперебойному процессу непрерывной интеграции и доставки.

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

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

От сбора данных до мониторинга модели - этапы внедрения модели машинного обучения в производственную среду заключаются в следующем:

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

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

Ручной MLOps

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

Кроме того, управление версиями модели не происходит автоматически, что может привести к несоответствиям в воспроизводимости модели.

Непрерывная интеграция / непрерывное развертывание (CI / CD) не гарантируется, поскольку предполагается, что модель статична в общем смысле и не вносит частых изменений.

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

На шаг впереди - автоматизированные MLOps

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

  • Переход от одной фазы к другой должен происходить автоматически с использованием автоматизированных стратегий.
  • Данные должны быть проверены должным образом, чтобы выявить в них асимметрию. Если данные соответствуют ожидаемой схеме, может быть запущен следующий этап, в противном случае требуется ручное вмешательство.
  • Модель должна быть обучена онлайн с использованием свежего пакета данных. Он должен иметь возможность сравнивать текущие метрики с предыдущими метриками (базовая модель) и выбирать лучшую модель для перемещения в производственную среду.
  • Среда разработки должна быть доступна на этапе производства для переобучения и тестирования модели.
  • Для большей устойчивости системы машинного обучения в код необходимо внести модульность.
  • Мониторинг системы машинного обучения должен происходить как на микро, так и на макро уровне.
  • Дополнительные компоненты включают Feature store и Metadata Management. Магазин функций включает данные, относящиеся к функциям, которые собираются во время взаимодействия с пользователем. Его можно повторно использовать для обучения и обслуживания. Управление метаданными - это хранилище метаданных, относящихся к версиям, затраченному времени, гиперпараметрам и статистике. Это упрощает обнаружение аномалий.

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

CI / CD оркестровка

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

Случаи применения

  • Ручное MLOps (MLOps Level 0) может использоваться всеми нетехническими компаниями, у которых есть статические модели машинного обучения, в которых модификации модели происходят редко.
  • Автоматизированные MLOps (MLOps Level 1) полезны, когда в производственной среде проводится непрерывное обучение. Приходят модификации, и обучение должно происходить онлайн.
  • CI / CD MLOps (MLOps Level 2) полезен, когда обновления приходят регулярно, а в основе системы машинного обучения лежит огромная инфраструктура.

Инструменты MLOps

Если вы хотите применить MLOps на практике, вот несколько хороших инструментов.

Заключение

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

Спасибо за прочтение!

Ссылки: Google Cloud