MLOps
Что такое MLOps
MLOps (Machine Learning Operations) — это набор инженерных практик для управления жизненным циклом моделей машинного обучения: от подготовки данных и экспериментов до развертывания модели, мониторинга ее работы и переобучения.
MLOps помогает превратить ML-модель из эксперимента в стабильный сервис, которым можно управлять в production-среде. Подход объединяет задачи Data Science, ML Engineering и эксплуатации инфраструктуры и во многом развивает идеи DevOps применительно к машинному обучению.
Расшифровка MLOps образована от Machine Learning и Operations. Также можно встретить написание ML Ops.
Зачем нужен MLOps
Обучить модель недостаточно. После эксперимента ее необходимо перенести в production, обеспечить доступ к нужным данным, контролировать версии, следить за качеством работы и регулярно обновлять.
Без единого процесса часть операций выполняется вручную. Разработчики могут использовать разные версии данных и библиотек, результаты экспериментов становится сложнее воспроизводить, а развертывание новой модели занимает больше времени.
MLOps позволяет организовать этот процесс системно:
- хранить версии кода, данных и моделей;
- автоматически запускать ML-пайплайны;
- тестировать модели перед развертыванием;
- переносить новые версии в production;
- контролировать качество и производительность;
- обнаруживать изменения входных данных;
- запускать переобучение моделей.
В итоге ML-разработка становится более воспроизводимой, а эксплуатация моделей — предсказуемой.
Как работает MLOps
Жизненный цикл MLOps включает несколько связанных этапов. Конкретная реализация зависит от проекта, но общая логика остается похожей.
Подготовка данных
Данные собирают из источников, очищают, проверяют качество и преобразуют в формат, подходящий для обучения.
Эксперименты и обучение
Data Scientist тестирует алгоритмы, гиперпараметры и разные наборы данных. Результаты экспериментов и полученные метрики сохраняются.
Валидация модели
Перед развертыванием проверяют качество модели и сравнивают ее с предыдущими версиями.
Регистрация модели
Подготовленную модель сохраняют в Model Registry вместе с информацией о версии, параметрах и результатах тестирования.
Развертывание
Модель переносится в production и становится доступной приложениям или пользователям, например через API.
Мониторинг
После запуска отслеживаются технические показатели, входные данные и качество прогнозов модели.
Переобучение
Если данные или условия работы меняются, модель обучают заново на актуальном наборе данных и выпускают новую версию.
Уровни зрелости MLOps
Google выделяет три уровня зрелости MLOps, которые различаются степенью автоматизации процессов.
Ручной процесс
Подготовка данных, обучение, проверка и передача модели в production в основном выполняются вручную.
Автоматизация ML-пайплайна
Обучение и валидация объединяются в автоматизированный pipeline, появляется Continuous Training — регулярное переобучение модели.
Автоматизация CI/CD
Автоматизируется не только обучение модели, но и тестирование, сборка и развертывание компонентов ML-пайплайна.
Переход к следующему уровню не является обязательной целью для каждой компании. Степень автоматизации зависит от количества моделей, частоты их обновления и требований к скорости вывода изменений в production.
DevOps и MLOps: в чем разница
MLOps появился под влиянием DevOps, но задачи этих подходов различаются.
Главное отличие заключается в том, что поведение обычного приложения определяется прежде всего кодом. Работа ML-модели зависит еще и от данных, на которых она обучалась и которые получает после запуска.
Поэтому в MLOps необходимо управлять сразу несколькими изменяющимися компонентами.
Основные компоненты MLOps
Версионирование
Для воспроизводимости необходимо фиксировать версии исходного кода, данных, параметров эксперимента и обученных моделей. Если новая модель работает хуже предыдущей, команда может определить, на каких данных она обучалась, и вернуться к стабильной версии.
ML-пайплайны
MLOps-пайплайн объединяет подготовку данных, обучение, тестирование, регистрацию модели и развертывание в единый последовательный процесс.
Model Registry
Хранилище, в котором сохраняются версии ML-моделей и связанные с ними метаданные: параметры, метрики качества и статус модели.
CI/CD и Continuous Training
Практики непрерывной интеграции и доставки дополняются Continuous Training (CT) — автоматическим переобучением модели при появлении новых данных, снижении качества или наступлении заданного события.
Model Serving
Отвечает за предоставление доступа к готовой модели после развертывания. Например, модель может работать как сервис, принимающий запрос через API и возвращающий результат инференса.
Мониторинг ML-моделей
После запуска контролируют не только CPU, GPU, память и задержку ответа, но и качество модели, а также изменения входных данных.
Характеристики входных данных могут меняться со временем. Такое явление называют data drift. Если изменения влияют на качество прогнозов, модель может потребовать повторного обучения.
Инструменты MLOps
MLOps — это не отдельная программа или конкретная платформа. Для построения процесса используются разные инструменты в зависимости от задачи.
На практике MLOps-платформа может объединять несколько таких компонентов в единую среду.
Кто такой MLOps-инженер
MLOps-инженер помогает выстроить инфраструктуру и процессы, необходимые для промышленной эксплуатации моделей машинного обучения.
В его задачи могут входить настройка ML-пайплайнов, автоматизация развертывания, управление версиями, мониторинг моделей и инфраструктуры, интеграция Kubernetes и систем CI/CD.
Работа находится на стыке машинного обучения, разработки и DevOps. Поэтому MLOps engineer обычно должен понимать как особенности ML-моделей, так и принципы эксплуатации IT-инфраструктуры.
Когда компании нужен MLOps
Полноценный MLOps имеет смысл не во всех ML-проектах.
Если команда проводит единичный эксперимент или создает Proof of Concept, сложная платформа автоматизации может оказаться избыточной.
MLOps становится особенно полезен, когда:
- модели работают в production;
- моделей становится много;
- их требуется регулярно обновлять;
- над ML-проектами работает несколько команд;
- необходима воспроизводимость экспериментов;
- модели нужно быстро развертывать и масштабировать;
- важно контролировать изменение качества моделей после запуска.
Какая инфраструктура нужна для MLOps
Конкретная архитектура зависит от моделей, объемов данных и характера нагрузки.
Для MLOps-среды могут потребоваться вычислительные серверы, CPU и GPU, объектное хранилище, Kubernetes-кластер, системы мониторинга, средства CI/CD и сетевые сервисы.
Например, обучение ресурсоемких моделей может выполняться на GPU, а предварительная обработка данных — преимущественно на CPU. Для хранения датасетов, моделей и других артефактов может использоваться объектное хранилище.
По мере роста ML-проектов инфраструктуру часто разделяют по задачам: отдельно выделяют мощности для экспериментов и обучения, production-инференса и обработки данных. Для переменных нагрузок можно использовать облачные GPU-ресурсы, а для длительных ресурсоемких задач — выделенные серверы с GPU.
FAQ
MLOps — это организация полного процесса работы с ML-моделью: ее обучение, проверка, развертывание, мониторинг и дальнейшее обновление. Подход помогает перевести работу с моделями из разрозненных экспериментов в управляемый production-процесс.
DevOps в основном автоматизирует разработку и эксплуатацию программного обеспечения. В MLOps дополнительно приходится управлять данными, ML-моделями, экспериментами, качеством прогнозов и процессом переобучения.
MLOps-платформа — набор взаимосвязанных инструментов для управления жизненным циклом моделей машинного обучения. Она может включать среды разработки, ML-пайплайны, Model Registry, инструменты развертывания, мониторинга и управления данными.
Для MLOps используют MLflow, Kubeflow, DVC, Airflow, Feast, Docker, Kubernetes и другие инструменты. Конкретный стек зависит от архитектуры проекта, процессов ML-команды и требований к инфраструктуре.
MLOps-инженер выстраивает и поддерживает процессы промышленной эксплуатации ML-моделей: автоматизирует пайплайны, развертывание и переобучение, организует мониторинг и помогает управлять инфраструктурой для машинного обучения.
Принципы MLOps можно применять и при работе с большими языковыми моделями. Для LLM появляются дополнительные процессы: управление промптами, оценка качества генерации, RAG, fine-tuning и контроль работы модели. Для этого направления также используется термин LLMOps.