MLflow vs Kubeflow: битва MLOps-инструментов

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

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

Краткий обзор 2-х самых популярных MLOps-решений

Напомним, MLOps – это набор инженерных практик, чтобы сократить разрыв между различными специалистами, участвующими в процессах разработки, развертывания и эксплуатации систем машинного обучения. Сегодня эта концепция является одной из наиболее популярных тем в сообществе специалистов Machine Learning. Практическую реализацию этой концепции обеспечивают многие инструменты, самыми популярными из которых считаются MLflow и Kubeflow.

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

Главной альтернативой MLflow считается Kubeflow — еще одна широко распространенная специализированная MLOps-платформа для развертывания проектов машинного обучения в Kubernetes. Подобно своему конкуренту, Kubeflow состоит из нескольких модулей: пользовательский интерфейс, интерактивные блокноты Jupyter, ML-конвейеры в контейнерах Docker, Katib для настройки гиперпараметров, модуль управления метаданными и KFServing, который указывает спецификацию на сериализованный файл ML-модели в облачном хранилище, чтобы получить ее в конечной точке HTTP. Также в состав Kubeflow входит модуль Knative, который сервису KFServing управлять маршрутизацией трафика и входом в развернутую модель, и Istio для развертывания и управления бессерверными рабочими нагрузками в Kubernetes. Подробнее о том, что такое Istio, мы писали здесь.

При том, что оба фреймворка считаются MLOps-инструментами, они предоставляют разные услуги. Kubeflow больше похож на средство, упрощающее машинное обучение на платформе контейнерной виртуализации Kubernetes. А MLflow предназначен для сквозного жизненного цикла Machine Learning. Более подробно их сходства и различия рассмотрим далее.

MLflow vs Kubeflow

Прежде всего стоит отметить, что рассматриваемые платформы реализуют разный подход. Kubeflow — это система оркестровки контейнеров, поэтому все процессы выполняются в инфраструктуре Kubernetes. С одной стороны, это увеличивает сложность, но, с другой стороны, повышает воспроизводимость.

MLflow — это программа на Python, поэтому машинное обучение может проводиться в соответствии с предпочтениями разработчика. Кроме того, его можно настроить на одном сервере и легко адаптировать к ML-модели.

Помимо сведений о самой модели, метаданные Kubeflow также отслеживают платформу, что требует от разработчика дополнительных технических знаний. А MLflow позволяет разрабатывать ML-алгоритмы локально и отслеживать запуски в удаленном архиве.

Kubeflow можно развернуть через конвейер, независимо от других компонентов платформы. Конвейеры Kubeflow фокусируются на развертывании моделей и непрерывной интеграции. А MLflow использует реестр моделей и интерфейсы API/UI, чтобы создать центральное расположение для совместной работы организаций, управления жизненным циклом и развертывания моделей.

С точки зрения практического использования, типовыми сценариями для Kubeflow являются следующие:

  • развертывание и управление сложной системой машинного обучения в масштабе;
  • эксперименты с обучением модели машинного обучения;
  • сквозные гибридные и мультиоблачные рабочие нагрузки машинного обучения;
  • настройка гиперпараметров модели во время обучения;
  • непрерывная интеграция и развертывание (CI/CD) для ML-систем.

Для MLflow можно выделить следующие варианты использования:

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

Таким образом, Kubeflow фокусируется на решении вопросов оркестровки инфраструктуры, а MLflow – на отслеживании экспериментов. Поэтому Kubeflow больше подходит для больших команд, разрабатывающих собственные ML-решения. А MLflow будет отличным выбором для отдельных Data Scientist’ов, которые работают над отслеживанием экспериментов и созданием моделей Machine Learning. А чем MLflow отличается от DVC и стоит ли их использовать вместе, читайте в нашей новой статье

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

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

Источники

  1. https://royalcyberinc.medium.com/kubeflow-vs-mlflow-an-mlops-comparison-36db04a665d8
  2. https://analyticsindiamag.com/kubeflow-vs-mlflow-which-mlops-tool-should-you-use/

Поиск по сайту