DevOps и MLOps: различия и сходства

Если вы хоть как-то связаны с машинным обучением (ML), вам нужно понимать, что такое MLOps. Для разработчиков ПО самый простой способ понять MLOps — провести параллель с DevOps. Давайте разберёмся, что общего и различного у этих понятий. Приятного чтения.

Сначала о DevOps

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

Основные принципы DevOps включают: 

  • автоматизацию процессов, 
  • непрерывную доставку и развёртывание,
  • обратную связь. 

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

Непрерывная доставка и автоматизация

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

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

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

Гибкое планирование

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

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

Улучшение корпоративной культуры

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

Что такое MLOps?

Теперь, когда у нас есть понимание DevOps, давайте определимся с MLOps.

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

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

Время для разработки моделей

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

Это отбирает время специалиста по данным. Он не может сосредоточиться на своей основной роли — обработке данных и разработке моделей. 

Надежный инструментарий MLOps (считывание сквозных конвейеров ML) позволяет специалистам заниматься своей работой. Тогда модель разрабатывается без пробелов. 

Сокращение времени выхода на рынок

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

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

Более высокая уверенность в прогнозах

Важная часть MLOps не только автоматизация действий, но и обнаружение проблем. Чтобы гарантировать высокое качество прогнозов, система должна иметь возможность измерять дрейф модели. Это сведёт к минимуму риск ложных выводов. И вы сможете уверенно использовать ML в критически важных моментах для бизнеса.

Чем похожи DevOps и MLOps?

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

И DevOps, и MLOps поощряют и облегчают сотрудничество между людьми, которые: 

  • занимаются разработкой (программистами и специалистами по данным),
  • управляют инфраструктурой.

Обе методологии делают упор на таких вещах:

  • автоматизация процессов;
  • непрерывное развитие;
  • максимальная скорость;
  • наивысшая эффективность.

Основные различия между DevOps и MLOps

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

  1. Управление версиями для машинного обучения
Чем отличаются версии программного обеспечения и машинного обучения?

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

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

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

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

Непрерывный мониторинг

Мониторинг также является частью практики DevOps. В последние несколько лет инженерия надежности сайта (SRE) была в моде. Разница между мониторингом в DevOps и MLOps заключается в том, что ПО не ухудшается, в отличие от моделей ML.

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

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

ИТОГ

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *