Инструментарий MLOps c MLflow и DVC: versus или вместе?

MLflow vs Kubeflow vs DVC примеры курсы обучение сравнение MLOps, MLOPS примеры курсы обучение, MLflow Kubeflow DVC примеры курсы обучение, курсы MLOps MLFlow DVC Machine Learning DevOps Для дата-инженеров, MLFlow MLOps, обучение инженеров Machine Learning, Школа Больших Данных Учебный Центр Коммерсант

Продолжая разбираться с популярными MLOps-инструментами, сегодня рассмотрим, как MLflow реализует управление версиями модели и данных, а также чем это отличается от DVC. Преимущества и недостатки популярных MLOps-инструментов с возможностями их совместного использования.

Плюсы и минусы MLflow для MLOps-инженера

Концепция MLOps, направленная на сокращение разрыва между различными специалистами, участвующими в процессах разработки, развертывания и эксплуатации систем машинного обучения, инструментально поддерживается многими технологиями. Одной из наиболее востребованных среди них считается MLflow – комплексная платформа от Databricks с открытым исходным кодом для управления сквозными конвейерами машинного обучения. Она не зависит от библиотеки и языка, а потому может применяться с любыми ML-библиотеками и языками программирования. Дополнительным преимуществом MLflow является наличие REST API и CLI-интерфейса, а также поддержка Python, R и Java. Полноценную автоматизацию всего MLOps-цикла обеспечивают 4 модуля MLflow: Tracking, Project, Models и Registry, о которых мы писали здесь. На практике MLflow широко используется многими крупными корпорациями типа Databricks, Microsoft, Toyota, МТС, ВК, а также небольшими инженерными компаниями по всему миру.

Главными преимуществами MLflow считаются следующие:

  • простая настройка механизма отслеживания моделей;
  • удобные API;
  • автоматизация сбора и подготовки данных, обучения и запуска модели в производство;
  • стандартизированные компоненты для каждого этапа жизненного цикла машинного обучения, что упрощает разработку ML-приложений;
  • интеграция со множеством Data Science инструментов, в т.ч. возможность развертывания моделей в Amazon SageMaker, Microsoft Azure ML и Kubernetes;
  • стандартный формат для упаковки моделей Machine Learning.

Впрочем, как мы уже отмечали в прошлой статье, в отличие от Kubeflow, MLflow больше подходит для отдельных Data Scientist’ов, которые работают над отслеживанием экспериментов и созданием моделей Machine Learning. Это обусловлено отсутствием многопользовательской среды с ролевой моделью доступа и другими настройками безопасности. Кроме того, в Mlflow есть сложности с добавлением дополнительных заданий к моделям и их развертыванием на разных платформах.

Впрочем, несмотря на богатый набор функциональных возможностей, MLflow – далеко не единственный инструмент современного MLOps-инженера. Еще одним востребованным средством считается DVC (Data Version Control), о которой мы поговорим далее.

Что такое DVC

Как следует из названия, DVC – это система контроля версий с открытым исходным кодом, используемая в проектах машинного обучения. Это своего рода Git для машинного обучения, который работает с версиями данных, а не версиями кода. DVC помогает работать с большими моделями и файлами данных, которые невозможно обработать с помощью Git, позволяя хранить информацию о различных версиях данных, чтобы правильно отслеживать работу ML-модели. Для совместной работы в команде можно определить удаленный репозиторий отправки данных и моделей.

Важно, что DVC разгружает MLOps-инженера, избавляя от необходимости следить, какая модель использует какой набор данных и каким образом. DVC состоит из набора инструментов и процессов, которые отслеживают изменяющиеся версии текущих данных и коллекции предыдущих. Репозитории DVC содержат файлы, на которые распространяется действие системы контроля версий. Классифицированное состояние поддерживается для каждого изменения, зафиксированного в любом файле данных. Дополнительным плюсом использования DVC для MLOps-инженера является автоматическая маркировка датасета. Кроме того, этот инструмент позволяет пользователям работать там, где они привыкли: на настольных компьютерах, ноутбуках с GPU и облачных ресурсах. DVC исключает необходимость в электронных таблицах, инструментах и ​​​​специальных сценариях обмена документами: достаточно команд push/pull для перемещения согласованных пакетов ML-моделей, данных и кода в рабочую среду, на удаленные машины или на компьютер коллеги.

Главными преимуществами DVC считаются:

  • возможность отслеживать модели и конвейеры данных наряду с управлением версиями данных;
  • совместная работа – можно делиться моделями через облачное хранилище, что упрощает командное взаимодействие в проведении экспериментов и оптимизирует использование общих ресурсов;
  • простота работы со множеством моделей и метрик данных, т.к. DVC следит за тем, какая модель была обучена с какой версией данных;
  • возможность работать с локальными файлами, что решает проблему именования файлов для нескольких версий.

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

MLflow и DVC: versus или вместе?

Разобравшись с назначением, возможностями, достоинствами и недостатками обоих MLOps-инструментов с открытым исходным кодом, можно сделать вывод об их применении. Будучи направленными на разные аспекты поддержки MLOps-задач, DVC и MLflow не исключают, а дополняют друг друга. DVC используется для наборов данных, а MLflow — для отслеживания жизненного цикла машинного обучения.

Data Scientist может использовать их совместно следующим образом: загружать данные из MLflow-репозитория Git вместе с кодом, а затем инициализировать локальный репозиторий с помощью Git и DVC, чтобы отслеживать датасет. С другой стороны, Git будет следовать набору данных, созданному DVC, а затем передавать его в удаленное хранилище. Если нужно получить доступ к исполнительной версии данных с помощью кода, можно использовать API DVC. Это позволит отслеживать детали набора данных вместе с показателями ML-модели с помощью MLflow. Таким образом, совместное применение популярных MLOps-инструментов позволит повысить воспроизводимость проекта Machine Learning в целом.

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

Узнайте, как выбрать и внедрить наиболее подходящие инструменты MLOps в реальные проекты аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://censius.ai/blog/dvc-vs-mlflow
  2. https://dvc.org/
Поиск по сайту