В этой статье рассматриваются сходства и различия между DevOps и MLOps, а также платформы, которые помогают включить MLOps.

По мере развития области машинного обучения в последние годы возрастает потребность в интеграции автоматической непрерывной интеграции (CI), непрерывной доставки (CD) и непрерывного обучения (CT) в системы машинного обучения. Применение философии DevOps к системе машинного обучения получило название MLOps. Цель MLOps - объединить вместе разработку системы машинного обучения (ML) и работу системы машинного обучения (Ops).

Что такое DevOps?

DevOps - это практика, используемая отдельными людьми и группами при разработке программных систем. Преимущества, которые отдельные лица и группы могут получить благодаря культуре и практике DevOps, включают:

  1. Жизненные циклы быстрой разработки
  2. Скорость развертывания
  3. Качество кода за счет тестирования.

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

  1. Непрерывная интеграция: объединение базы кода с центральным репозиторием / расположением кода, автоматизация процесса сборки программной системы и тестирование компонентов базы кода.
  2. Непрерывная доставка: автоматизация развертывания программного обеспечения.

Система машинного обучения похожа, но не полностью идентична программной системе. Ключевые отличия:

  1. Навыки, существующие в команде: часто люди, которые разрабатывают модель / алгоритм машинного обучения, не имеют опыта разработки программного обеспечения и сосредотачиваются в первую очередь на этапе подтверждения концепции / прототипирования.
  2. Системы машинного обучения носят экспериментальный характер. Нет никакой гарантии, что алгоритм будет успешным заранее без предварительной попытки и проведения некоторых экспериментов. Следовательно, необходимо отслеживать различные эксперименты, этапы разработки функций, параметры модели, метрики и т. Д.
  3. Тестирование системы машинного обучения выходит за рамки простого модульного тестирования. Вам также необходимо учитывать такие вещи, как проверка данных, дрейф модели, оценка производительности модели, развернутой в производственной среде.
  4. Развертывание моделей машинного обучения очень индивидуально в зависимости от характера проблемы, которую они пытаются решить. Он может включать в себя многоэтапные конвейеры, которые включают обработку данных, разработку функций, обучение модели, реестр моделей и развертывание модели.
  5. Необходимо отслеживать статистику и распределение данных во времени, чтобы гарантировать, что то, что модель видит сегодня в производственной среде, согласуется с данными, на которых она была обучена.

Сходство MLOps и DevOps

  1. Непрерывная интеграция базы кода между разработчиками, специалистами по обработке данных и инженерами по данным.
  2. Тестирование кода и компонентов кода системы машинного обучения.
  3. Постоянная поставка системы в производство.

Различия между MLOps и DevOps

  1. В MLOps, помимо тестирования кода, вам также необходимо обеспечить поддержание качества данных на протяжении всего жизненного цикла проекта машинного обучения.
  2. В MLOps не обязательно развертывать только артефакт модели. Для развертывания системы машинного обучения может потребоваться конвейер машинного обучения, который включает извлечение данных, обработку данных, разработку функций, обучение модели, реестр моделей и развертывание модели.
  3. В MLOps есть третья концепция, которой нет в DevOps, а именно непрерывное обучение (CT). Этот шаг предназначен для автоматического определения сценариев / событий, требующих повторного обучения модели и ее повторного развертывания в производственной среде из-за снижения производительности в развернутой в настоящее время модели / системе машинного обучения.

Если вам интересно узнать о различных способах развертывания модели машинного обучения, ознакомьтесь с моей статьей (https://towardsdatascience.com/machine-learning-model-deployment-options-47c1f3d77626).

Платформы и инструменты для помощи в MLOps

  1. mlflow (https://mlflow.org/): это платформа с открытым исходным кодом, которая помогает и помогает в отслеживании моделей, реестре моделей и этапах развертывания модели. Я также считаю, что это то, что Azure Machine Learning использует на своей платформе. Databricks включила mlflow на свою платформу.
  2. система контроля версий, такая как:
    - github
    - gitlab
    - Azure DevOps
  3. Облачный сервис для проведения экспериментов и развертывания конвейера машинного обучения:
    - AWS SageMaker (https://aws.amazon.com/sagemaker/)
    - Машинное обучение Azure (https: // docs .microsoft.com / en-us / azure / machine-learning / overview-what-is-azure-ml )
    - Databricks ( https://databricks.com/ )

Если вам интересно узнать больше о сходствах и различиях между AWS SageMaker и Azure Machine Learning, ознакомьтесь с моей статьей (https://towardsdatascience.com/aws-sagemaker-vs-azure-machine-learning-3ac0172495da)