С помощью машинного обучения можно автоматизировать рутинные процессы, улучшить принятие решений, ускорить работу команды. Но многие компании сталкиваются с трудностями при внедрении и масштабировании ML-моделей. На помощь приходит MLOps — что это такое, разбираемся в статье с руководителем группы машинного обучения в VK Александром Немальцевым.
Что такое MLOps
MLOps — это DevOps для ML, специальные практики для управления жизненным циклом моделей машинного обучения. MLOps помогает эффективнее использовать модели и ускорять процесс разработки.
Обычно MLOps включает:
- управление данными;
- разработку и обучение моделей;
- управление версионнностью моделей;
- тестирование и валидацию полученных результатов, а также входных данных;
- выпуск обученных моделей в продакшен;
- мониторинг качества работы моделей и бизнес-метрик ML-проектов.

Как появился MLOps
В начале 2000-х с развитием Agile-методов и увеличением скорости разработки появилась потребность в более тесной интеграции между разработчиками и операционными командами. Решением стал DevOps, который обеспечивал более быструю и надежную доставку программного обеспечения.
В 2010-е бизнес стал активно использовать машинное обучение. Однако многие компании столкнулись с трудностями в развертывании моделей. Так начали появляться первые MLOps-практики. Они объединили принципы DevOps с особенностями разработки моделей машинного обучения.
По одной из версий, впервые инструменты MLOps использовали в Google. Опыт компании подробно описан в статье «Hidden Technical Debt in Machine Learning Systems» — именно с нее начался современный MLOps.
В начале 2020-х появились первые специализированные MLOps-платформы для стандартизации процессов, например MLflow, Kubeflow и TFX. Сегодня MLOps продолжает развиваться и охватывает новые аспекты работы, например управление данными, мониторинг моделей и обеспечение этичности использования ИИ.
Чем занимаются MLOps-инженеры
Чаще всего MLOps-инженеры в компаниях:
- проверяют гипотезы и проводят эксперименты, чтобы получить новые ML-модели для решения актуальных задач;
- обеспечивают воспроизводимость, чтобы модель точно повторяла результаты эксперимента;
- тестируют модели машинного обучения;
- занимаются версионированием, следят за изменениями и фиксируют все этапы эволюции. Например, если новая версия модели будет работать некорректно, то команда сможет быстро вернуться к предыдущей;
- автоматизируют процессы, чтобы освободить разработчиков и других специалистов от рутинных задач;
- занимаются мониторингом и следят за метриками, чтобы оперативно реагировать на сбои и дообучить модель при необходимости или заменить ее на новую.

Уровни зрелости MLOps
Выделяют пять уровней зрелости MLOps. Они показывают, на каком этапе развития находится компания.
- Начальный уровень: MLOps практически отсутствует. Разработка и развертывание моделей выполняются вручную и не стандартизированы. Нет версионирования, мониторинга или автоматизации.
- Уровень формализации: компания начинает внедрять базовые практики MLOps. Процессы становятся более формализованными, используются инструменты для управления проектами (например, Git), начинается документирование процессов, но часть работы все еще выполняется вручную.
- Уровень автоматизации: компания активно автоматизирует процессы. Используются инструменты для мониторинга и управления версиями, внедряют CI/CD для автоматического тестирования и развертывания.
- Уровень интеграции: MLOps становится частью процесса разработки ПО. Используются платформы для управления моделями, например MLflow или Kubeflow.
- Уровень оптимизации: компания достигает высокого уровня зрелости в MLOps. Применяются методы A/B-тестирования, происходит автоматический мониторинг производительности, внедряются практики обеспечения этичности и соблюдения нормативных требований в области ИИ.
Понимание уровня зрелости MLOps помогает компании лучше оценивать текущее состояние и разработать стратегию для перехода на следующий уровень.
Также многие крупные компании разработали собственные модели для определения уровня зрелости MLOps. Например, есть:
- Модель Google: состоит всего из трех уровней (ручное управление процессами, автоматизация ML-пайплайнов, автоматизация CI/CD-пайплайнов).
- Модель Azure: включает пять уровней (отсутствие MLOps, DevOps без MLOps, автоматизированное обучение, автоматизированное развертывание модели, полная автоматизация MLOps-операций).
- Модель GigaOm: самая подробная модель. Включает пять уровней и оценивает процессы в компании по пяти разным показателям: стратегия, архитектура, моделирование, процессы и управление.

Платфорты MLOps
Инструменты MLOps используются на разных этапах работы с моделью — от сбора и подготовки данных до вывода ее в продакшен. Самые популярные инструменты сегодня:
- Kubeflow: платформа для MLOps-инженеров. Автоматизирует обучение, тестирование и развертывание моделей. Также включает инструменты для создания и управления ML-пайплайнами и интеграции с фреймворками, например TensorFlow и PyTorch.
- Kubernetes: система управления контейнерами. Автоматизирует развертывание, масштабирование и управление приложениями в контейнерах. Позволяет MLOps-инженерам легко управлять инфраструктурой своих моделей.
- Algorithmia: MLOps-платформа для развертывания и управления алгоритмами и моделями машинного обучения. Позволяет интегрировать модели в приложения, предоставляя API для доступа.
- Pachyderm: платформа для управления данными и версиями в проектах машинного обучения. Позволяет отслеживать изменения, что особенно важно для воспроизводимости результатов. Также интегрируется с Kubernetes и предоставляет возможности для построения сложных ML-пайплайнов.
- MLflow: MLOps-платформа для управления жизненным циклом моделей. Позволяет отслеживать эксперименты, управлять моделями и упрощает процесс развертывания.
- DataRobot: коммерческая платформа для MLOps-инженеров. Предоставляет инструменты для подготовки данных, выбора моделей, их обучения и развертывания. Подходит пользователям без глубоких знаний в области машинного обучения.

Зачем бизнесу MLOps
MLOps обычно развивают крупные компании с большим количеством сотрудников и процессов. С его помощью можно:
- снизить расходы за счет автоматизации рутинных задач;
- сосредоточиться на обучении и экспериментах с моделями;
- сократить количество ошибок;
- повысить стабильность и производительность моделей;
- ускорить путь до продакшена.
MLOps необходимо внедрять, когда работа с моделями занимает много времени и требует улучшения.
Главное про MLOps
- MLOps — это специальные практики и инструменты, которые упрощают разработку и выпуск моделей в продакшен.
- MLOps-инженеры проводят эксперименты с моделями и обеспечивают их воспроизводимость.
- Есть разные уровни зрелости MLOps. В одних компаниях он почти полностью отсутствует, в других происходит постоянная оптимизация процессов.
- Есть специальные MLOps-платформы. С их помощью можно управлять процессами машинного обучения, заниматься версионированием и интегрировать модели в приложения.
- MLOps помогает бизнесу повысить надежность моделей и сократить расходы за счет автоматизации рутинных задач.