Что такое 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