MLflow и DVC — это два инструмента MLOps, которые сегодня широко используются в машинном обучении. Эта сравнительная статья поможет вам понять их основное использование, а также их плюсы и минусы.
Знакомство с MLflow и DVC
MLflow – это платформа, играющая важную роль в любом непрерывном жизненном цикле машинного обучения. Это помогает отслеживать ваши эксперименты с машинным обучением, включая отслеживание ваших моделей, параметров моделей, наборов данных и гиперпараметров, а также их воспроизведение при необходимости. MLflow предоставляет формат упаковки для воспроизводимых запусков на любой платформе, а затем отправляет модели на выбранные вами инструменты развертывания.
Вы также можете записывать запуски, организовывать их в эксперименты и регистрировать дополнительные данные с помощью API отслеживания MLflow и пользовательского интерфейса.
Рекомендуемая литература: Как использовать MLflow для отслеживания и структурирования проектов ML?
Он имеет различные ценные компоненты для мониторинга таких процессов, как обучение моделей, хранение моделей, их загрузка в производство и создание конвейера.
Эти компоненты включают в себя:
- Отслеживание. Это позволяет отслеживать эксперименты для записи и сравнения параметров и результатов.
- Модели. Это позволяет управлять моделями из различных библиотек машинного обучения и развертывать их на различных платформах обслуживания моделей и вывода.
- Проекты. Это позволяет упаковывать код машинного обучения в повторно используемую воспроизводимую форму, чтобы делиться ею с другими специалистами по данным или передавать в рабочую среду.
- Реестр моделей: это позволяет вам централизованно хранить модели для управления переходами на всех стадиях жизненного цикла моделей: от подготовки к производству, с возможностями управления версиями и аннотирования.
- Обслуживание моделей. Это позволяет размещать модели MLflow в качестве конечных точек REST.
Контроль версий данных (DVC) – это система контроля версий с открытым исходным кодом, используемая в проектах машинного обучения. Он также известен как Git для машинного обучения. Он имеет дело с версиями данных, а не версиями кода. DVC помогает вам работать с большими моделями и файлами данных, которые невозможно обработать с помощью Git. Это позволяет вам хранить информацию о различных версиях ваших данных, чтобы правильно отслеживать данные ML и позже получать доступ к производительности вашей модели. Вы можете определить удаленный репозиторий для отправки ваших данных и моделей, упрощая совместную работу членов команды.
Для получения желаемого результата пользователям не нужно вручную запоминать, какая модель данных использует какой набор данных и какие действия были проведены; всем этим занимается DVC. Он состоит из набора инструментов и процессов, которые отслеживают изменяющиеся версии данных и коллекции предыдущих данных. Репозитории DVC содержат файлы, на которые распространяется действие системы контроля версий. Классифицированное состояние поддерживается для каждого изменения, зафиксированного в любом файле данных.
DVC состоит из набора инструментов и процессов, которые отслеживают изменяющиеся версии данных и коллекции предыдущих данных.
Использование MLflow и DVC
Млфлоу
Жизненный цикл проекта машинного обучения со временем улучшился. Раньше основное внимание уделялось повышению прогнозирующей способности алгоритмов машинного обучения, но теперь разработчики также уделяют внимание эффективному управлению жизненным циклом своих проектов машинного обучения. Это включает в себя обмен ими за пределами групп специалистов по обработке и анализу данных, где пользователи не совпадают с теми, кто их разработал, обеспечивая воспроизводимость результатов и уменьшая разрыв между специалистами по данным и операционной группой.
Итак, кто может справиться со всем этим сразу? MLflow - это ответ. Этот инструмент MLOps повышает значимость вашего жизненного цикла машинного обучения. Он предоставляет динамичный способ упростить и расширить развертывание моделей машинного обучения путем отслеживания, воспроизведения, управления и развертывания моделей при разработке программного обеспечения. Упаковка моделей независимо от используемой платформы и языка программирования осуществляется с помощью MLflow. Управление моделями и отслеживание опыта можно эффективно выполнять с помощью MLflow.
Это обеспечивает прозрачность и стандартизацию при обучении, настройке и развертывании моделей машинного обучения. Ниже перечислены компоненты MLflow, которые играют свою роль в процессе машинного обучения.
- Отслеживание MLflow: оно позволяет командам записывать и запрашивать четкий обзор эффективности обучающих запусков, поскольку все модели хранятся централизованно в ходе эксперимента.
- Проекты MLflow. Он позволяет командам быстро воспроизводить версии моделей с соответствующим кодом на любой платформе.
- Реестр моделей MLflow. Он позволяет командам управлять версиями моделей машинного обучения, изменять этапы жизненного цикла и развертывать модели в рабочей среде.
- Модели MLflow: он упаковывает модели в стандартный формат для использования в качестве конечной точки через REST API. Модели MLflow также совместимы с основными библиотеками машинного обучения.
Рекомендуемая литература: Лучшие практики MLflow
Контроль версий данных (DVC)
Отслеживание данных — необходимая вещь для любого рабочего процесса обработки данных. Тем не менее, специалистам по данным становится сложно управлять наборами данных и отслеживать их. Таким образом, существует потребность в управлении версиями данных, чего можно добиться с помощью DVC. DVC — один из удобных инструментов, которые можно использовать для ваших проектов по науке о данных. Вот некоторые из причин использования DVC:
- Это позволяет воспроизвести модели машинного обучения и обмениваться результатами между командой.
- Это помогает управлять сложностью конвейеров машинного обучения, чтобы вы могли многократно обучать одну и ту же модель.
- Это позволяет командам поддерживать файлы версий для быстрого обращения к моделям машинного обучения и их результатам.
- Он имеет всю мощь веток Git.
- Иногда члены команды путаются, если наборы данных неправильно помечены в соответствии с соглашением; DVC помогает правильно маркировать наборы данных.
- Пользователи могут работать на настольных компьютерах, ноутбуках с графическими процессорами и облачных ресурсах, если им требуется больше памяти.
- Он направлен на то, чтобы исключить необходимость в электронных таблицах, инструментах и специальных сценариях для обмена документами для общения.
- Вы используете команды push/pull для перемещения согласованных пакетов моделей машинного обучения, данных и кода в рабочую среду, на удаленные машины или на компьютер коллеги.
Взвешивание за и против
Млфлоу
Преимущества
Ниже приведены преимущества MLflow:
- В MLflow легко настроить механизм отслеживания моделей.
- Он предлагает очень интуитивно понятные API для обслуживания.
- Он обеспечивает сбор данных, подготовку данных, обучение модели и запуск модели в производство.
- Он предоставляет стандартизированные компоненты для каждого этапа жизненного цикла машинного обучения, упрощая разработку приложений машинного обучения.
- Он может легко интегрироваться с наиболее популярными инструментами, которые используют специалисты по данным.
- Вы можете развернуть модели MLflow в различных существующих инструментах, таких как Amazon SageMaker, Microsoft Azure ML и Kubernetes.
- Это помогает нам сохранить модель вместе с параметрами и анализом.
- Модели MLflow предоставляют стандартный формат для упаковки моделей машинного обучения.
Недостатки
Ниже приведены некоторые недостатки MLflow:
- Вы не можете легко делиться экспериментами или сотрудничать с ними.
- MLflow не имеет многопользовательской среды.
- Ролевой доступ отсутствует.
- В нем отсутствуют расширенные функции безопасности.
- Добавление дополнительных работ к моделям не происходит автоматически.
- Это непросто и идеально подходит для развертывания моделей на разных платформах.
Контроль версий данных (DVC)
Преимущества
Ниже приведены преимущества контроля версий данных:
- Наряду с управлением версиями данных DVC также позволяет отслеживать модели и конвейеры.
- С DVC вам не нужно перестраивать предыдущие модели или методы моделирования данных, чтобы достичь прежнего состояния результатов.
- Наряду с управлением версиями данных DVC также позволяет отслеживать модели и конвейеры.
- Этому легко научиться.
- Вы можете делиться своими моделями через облачное хранилище, упрощая для команд проведение экспериментов и оптимизируя использование общих ресурсов.
- Становится легко работать с множеством моделей и метрик данных, поскольку DVC уменьшает усилия, чтобы различать, какая модель была обучена с какой версией данных.
- Он поддерживает выдающиеся отчеты по очереди.
- DVC работает с локальными файлами, поэтому решает проблему именования файлов для нескольких версий.
Рекомендуемая литература: Важность контроля версий в ML
Недостатки
- DVC тесно связан с управлением конвейером, а это означает, что если команда уже использует другой инструмент конвейера данных, в обслуживании данных будет избыточность.
- DVC является легким, а это означает, что вашей команде может потребоваться вручную разработать дополнительные функции, чтобы упростить его использование.
- Существует риск неправильной настройки пайплайна в DVC, если ваша команда забудет добавить выходной файл.
- Проверка отсутствующих зависимостей в DVC довольно сложна.
Как лучше всего использовать MLflow и DVC?
Мы уже обсуждали разные моменты о возможностях, плюсах и минусах DVC и MLflow, теперь возникает вопрос, как их лучше использовать. Итак, DVC и MLflow не исключают друг друга. DVC используется для наборов данных, а MLflow — для отслеживания жизненного цикла машинного обучения.
Поток идет так; вы используете данные из репозитория MLflow Git вместе с кодом, а затем инициализируете локальный репозиторий с помощью Git и DVC. Он будет отслеживать ваш набор данных. С другой стороны, Git будет следовать набору данных, созданному DVC, а затем передавать набор данных в удаленное хранилище. И если вы хотите получить доступ к исполнительной версии данных с помощью своего кода, вы можете использовать API DVC. И вы будете отслеживать детали набора данных вместе с показателями нашей модели с помощью MLflow. Вы можете использовать их вместе для достижения воспроизводимости вашего проекта в целом.
Рекомендуемая литература: Почему DVC лучше, чем Git и Git-LFS в воспроизводимости машинного обучения
Вот еще несколько советов по работе с MLflow,
Обязательно сделайте ведение журнала MLflow необязательным, встроив в свой код простой переключатель ведения журнала. Это позволит избежать загрузки незавершенных или пустых запусков в ваш проект MLflow при отладке. Каждый запуск MLflow фиксирует хэш git, чтобы отслеживать версию кода. Однако было бы лучше зафиксировать все обновления кода перед отслеживанием эксперимента, чтобы обеспечить согласованность.