В этой статье рассматриваются сходства и различия между DevOps и MLOps, а также платформы, которые помогают включить MLOps.
По мере развития области машинного обучения в последние годы возрастает потребность в интеграции автоматической непрерывной интеграции (CI), непрерывной доставки (CD) и непрерывного обучения (CT) в системы машинного обучения. Применение философии DevOps к системе машинного обучения получило название MLOps. Цель MLOps - объединить вместе разработку системы машинного обучения (ML) и работу системы машинного обучения (Ops).
Что такое DevOps?
DevOps - это практика, используемая отдельными людьми и группами при разработке программных систем. Преимущества, которые отдельные лица и группы могут получить благодаря культуре и практике DevOps, включают:
- Жизненные циклы быстрой разработки
- Скорость развертывания
- Качество кода за счет тестирования.
Для достижения этих преимуществ на протяжении всей разработки системы программного обеспечения используются две ключевые концепции.
- Непрерывная интеграция: объединение базы кода с центральным репозиторием / расположением кода, автоматизация процесса сборки программной системы и тестирование компонентов базы кода.
- Непрерывная доставка: автоматизация развертывания программного обеспечения.
Система машинного обучения похожа, но не полностью идентична программной системе. Ключевые отличия:
- Навыки, существующие в команде: часто люди, которые разрабатывают модель / алгоритм машинного обучения, не имеют опыта разработки программного обеспечения и сосредотачиваются в первую очередь на этапе подтверждения концепции / прототипирования.
- Системы машинного обучения носят экспериментальный характер. Нет никакой гарантии, что алгоритм будет успешным заранее без предварительной попытки и проведения некоторых экспериментов. Следовательно, необходимо отслеживать различные эксперименты, этапы разработки функций, параметры модели, метрики и т. Д.
- Тестирование системы машинного обучения выходит за рамки простого модульного тестирования. Вам также необходимо учитывать такие вещи, как проверка данных, дрейф модели, оценка производительности модели, развернутой в производственной среде.
- Развертывание моделей машинного обучения очень индивидуально в зависимости от характера проблемы, которую они пытаются решить. Он может включать в себя многоэтапные конвейеры, которые включают обработку данных, разработку функций, обучение модели, реестр моделей и развертывание модели.
- Необходимо отслеживать статистику и распределение данных во времени, чтобы гарантировать, что то, что модель видит сегодня в производственной среде, согласуется с данными, на которых она была обучена.
Сходство MLOps и DevOps
- Непрерывная интеграция базы кода между разработчиками, специалистами по обработке данных и инженерами по данным.
- Тестирование кода и компонентов кода системы машинного обучения.
- Постоянная поставка системы в производство.
Различия между MLOps и DevOps
- В MLOps, помимо тестирования кода, вам также необходимо обеспечить поддержание качества данных на протяжении всего жизненного цикла проекта машинного обучения.
- В MLOps не обязательно развертывать только артефакт модели. Для развертывания системы машинного обучения может потребоваться конвейер машинного обучения, который включает извлечение данных, обработку данных, разработку функций, обучение модели, реестр моделей и развертывание модели.
- В MLOps есть третья концепция, которой нет в DevOps, а именно непрерывное обучение (CT). Этот шаг предназначен для автоматического определения сценариев / событий, требующих повторного обучения модели и ее повторного развертывания в производственной среде из-за снижения производительности в развернутой в настоящее время модели / системе машинного обучения.
Если вам интересно узнать о различных способах развертывания модели машинного обучения, ознакомьтесь с моей статьей (https://towardsdatascience.com/machine-learning-model-deployment-options-47c1f3d77626).
Платформы и инструменты для помощи в MLOps
- mlflow (https://mlflow.org/): это платформа с открытым исходным кодом, которая помогает и помогает в отслеживании моделей, реестре моделей и этапах развертывания модели. Я также считаю, что это то, что Azure Machine Learning использует на своей платформе. Databricks включила mlflow на свою платформу.
- система контроля версий, такая как:
- github
- gitlab
- Azure DevOps - Облачный сервис для проведения экспериментов и развертывания конвейера машинного обучения:
- 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)