Что такое MLOps: операции машинного обучения для облегчения задач Data Science и ML-разработки

Data Science и машинное обучение стали частями IT-индустрии сравнительно недавно. Однако несмотря на новизну они успели обрести большую популярность и применяются во многих сферах. Но как организовать работу, чтобы обучение моделей происходило максимально быстро и качественно? В этом может помочь MLOps.

Что такое MLOps

MLOps (Machine Learning Operations) — это подход, который нацелен на организацию машинного обучения. Он позволяет развертывать и поддерживать ML-модели на всех этапах жизненного цикла.

MLOps как отдельный набор практик зародился не сразу: всё началось с Дэвида Скалли, специалиста по машинному обучению в компании Google. Он стремился ускорить обучение моделей и минимизировать количество ошибок за счет автоматизации процессов. В основу было заложено понятие «технического долга». Оно значит, что быстрый выпуск моделей часто несет за собой значительные финансовые траты на их поддержку и обслуживание.

В 2015 году Дэвид Скалли подготовил статью под названием «Скрытый технический долг в системах машинного обучения» для конференции NeurIPS. Это стало первым шагом к разработке нового подхода к машинному обучению.

MLOps максимально полезен в тех отраслях, где необходимо прогнозирование и подбор нескольких вариантов, например:

  1. настройка рекомендаций в соцсетях и интернет-магазинах,
  2. генерация гипотез,
  3. игры с несколькими ветками сюжета в зависимости от выбранного варианта и многое другое.

MLOps и DevOps: разница

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

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

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

Преимущества MLOps

MLOps — сравнительно новый подход в машинном обучении. Он обладает большим количеством преимуществ, среди которых:

  • высокая скорость и качество обучения. Процессы MLOps автоматизированы при помощи методологии CI/CD. Это ускоряет развертывание в производственную среду и минимизирует ошибки;
  • надежность. Частью подхода MLOps является непрерывный мониторинг. Это помогает вовремя выявлять проблемы и оперативно их устранять;
  • отлаженная коммуникация. Методология подразумевает тесную коммуникацию между разработчиками, операционными командами и специалистами по Data Science: так эти члены команд смогут обмениваться опытом, чтобы усовершенствовать процесс обучения.

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

Источник: Shutterstock. MLOps позволяет развертывать и поддерживать ML-модели на всех этапах жизненного цикла

Уровни зрелости MLOps

Модели зрелости позволяют понять, на каком этапе находится тот или иной IT-процесс на данный момент. Также с их помощью можно определить действия, которые нужно выполнить для перехода на следующий уровень.

Существует несколько популярных моделей оценки уровня зрелости: среди них модели от Google, GigaOm и Azure. Как правило, в компаниях с ML-разработкой используются разные системы оценки. Они могут включать до пяти пунктов:

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

Количество критериев может варьироваться в зависимости от модели оценки. Ниже мы расскажем о наиболее популярных моделях.

Модель Google

Эта модель уровней зрелости была построена в компании Google. Согласно ее структуре зрелость MLOps можно оценить по трем критериям:

  1. Ручной процесс (Manual process), при котором машинное обучение моделей только начинается: все действия (например, мониторинг инфраструктуры) выполняются вручную.
  2. Автоматизация пайплайна машинного обучения (ML pipeline automation), в процессе которой внедряются новые инструменты. Они помогают автоматизировать работу на всех этапах работы с проектом.
  3. CI/CD автоматизация пайплайна (CI/CD pipeline automation) — по сути отлаженная работа с проектом.

Модель GigaOm

В отличие от предыдущей модели, GigaOm учитывает не только жизненный цикл машинного обучения, но и корпоративную культуру. Оценка зрелости MLOps по методике GigaOm выполняется по пяти критериям:

  1. Стратегия — насколько MLOps подходит компании: как соотносится с приоритетами, организацией работы и корпоративной культурой.
  2. Архитектура — можно ли управлять данными, моделями, средами разработки и тестирования как одним целым.
  3. Моделирование — по этой характеристике оцениваются навыки и опыт в Data Science: то есть умение работать с большими данными.
  4. Процессы — насколько эффективно сотрудники компании выполняют рабочие задачи по машинному обучению.
  5. Управление — какие решения принимаются в отношении ML-разработки: насколько они безопасны и предсказуемы.

Модель Azure

Так как компания Microsoft поддерживает инструменты для машинного обучения из линейки Azure, она также имеет собственную модель оценки зрелости. Она состоит из пяти критериев:

  1. Отсутствие MLOps (No MLOps) — все процедуры выполняются в ручном режиме.
  2. DevOps без MLOps (DevOps but no MLOps). Промежуточный этап, на котором подключаются инструменты автоматизации.
  3. Автоматизированное обучение (Automated Training). Модели обучаются при помощи преднастроенных инструментов.
  4. Автоматизированное развертывание (Automated Model Deployment), когда проект готовится к запуску на целевой платформе.
  5. Полная автоматизация операций MLOps (Full MLOps Automated Operations), когда инфраструктура полностью подготовлена для машинного обучения и автоматизации процессов.
Источник: Shutterstock. Количество критерниев в моделях уровней зрелости может варьироваться в зависимости от модели оценки

Основные процессы MLOps

Как упоминалось ранее, MLOps — инженерный подход, который помогает оптимизировать все этапы жизненного цикла разрабатываемого продукта. Чтобы это работало корректно, в MLOps заложены несколько основных взаимосвязанных процессов: их количество зависит от выбранной модели зрелости. Мы описали девять таких процессов:

  1. Методология CI/CD. Непрерывная интеграция и доставка автоматизируют разработку и развертывание ML-моделей.
  2. Оркестрация. Для определения зависимостей между задачами в MLOps используются направленные ациклические графы. Такая автоматизация позволяет лучше контролировать рабочие процессы.
  3. Воспроизводимость. MLOps подразумевает, что любую операцию можно повторить и получить идентичные данные: так можно убедиться в точности и надежности результатов.
  4. Контроль версий. Версионирование позволяет отслеживать изменения в коде, а также по необходимости откатиться к прошлой версии проекта.
  5. Коммуникация с другими членами команды. В машинном обучении важны навыки всех специалистов группы разработки. Так грамотно построенная коммуникация позволяет обмениваться знаниями и объединить усилия в работе над ML-проектом.
  6. Регулярное обучение. Периодическое переобучение модели на новых наборах данных полезно для поддержания актуальности ML-продукта.
  7. Ведение логов. Хранение информации о каждом этапе жизненного цикла продукта позволяет подсчитать производительность и выявить слабые места.
  8. Мониторинг. Постоянное наблюдение за проектом и инфраструктурой в целом помогает выявлять ошибки и оперативно их исправлять.
  9. Получение обратной связи. Отзывы в процессе разработки и использования модели полезны для ее развития: так модель будет быстро адаптироваться к текущим условиям.
Источник: Shutterstock. MLOps помогает оптимизировать все этапы жизненного цикла разрабатываемого продукта

Инструменты MLOps

Чтобы начать работу по методологии MLOps, необходимо выбрать подходящий инструмент. Существует две группы инструментов:

  1. Комплексные решения, где всё необходимое размещено в пределах одной платформы.
  2. Отдельные компоненты, которые можно сочетать друг с другом в зависимости от потребностей проекта.

Ниже мы опишем два комплексных MLOps-решения.

Kubeflow

Kubeflow — комплексный набор инструментов MLOps. Основная особенность Kubeflow заключается в том, что он является частью Kubernetes. Это значит, что решение из коробки может работать в Kubernetes без каких-либо дополнительных настроек, затрагивающих механизмы оркестрации.

Какие компоненты входят в состав Kubeflow:

  • Jupyter Notebook — редактор для записи, передачи и выполнения кода;
  • Seldon Core — инструмент Data Science для развертывания моделей машинного обучения;
  • KServe — помогает пользоваться моделями машинного обучения при помощи фреймворков;
  • Kubeflow Pipelines — компонент для обучения модели и многие другие.

MLflow

MLflow — еще один популярный набор инструментов для разработки и обучения ML-моделей. В сравнении с Kubeflow это решение имеет меньше основных элементов и, как следствие, проще в управлении и настройке.

Какие компоненты входят в состав MLflow:

  • MLflow Tracking — инструмент для логирования (кода, параметров, метрик и др.);
  • MLflow Models — компонент для упаковки моделей в контейнеры и их деплоя;
  • Model Registry — централизованное хранилище разных ML-моделей;
  • MLflow Projects — функционал, который обеспечивает воспроизводимость кода.

Галина Петрова

Кейс Stworka: как создать ERP в облаке для 5000 строительных компаний

А также запустить маркетплейс для строителей и обрабатывать 1,5 млн артикулов ежедневно. Рассказываем, как компания Stworka развернула IT-инфраструктуру в Облаке...
Read More

Системы контроля версий: зачем они нужны и как их использовать

Мир разработки ПО издалека кажется непонятным и запутанным, но существуют инструменты, которые значительно упрощают жизнь и делают работу более эффективной....
Read More

Соглашение об уровне обслуживания (SLA)

Поговорим о документе, который может серьезно повлиять на успех проекта, будь то интернет-магазин, SaaS-платформа или любой другой онлайн-сервис. Речь пойдет...
Read More

Что такое S3 (Simple Storage Service)

Если вы только начинаете свой путь в разработке, вам обязательно нужно познакомиться с S3. Это краеугольный камень многих современных приложений...
Read More

Полный обзор NoSQL: особенности и использование

Развитие интернета диктует новые правила в разработке. Традиционные базы данных, которые называются реляционными (RDBMS), не справляются с задачами, которые требуют...
Read More

Как использовать DataSphere. Датасеты в DataSphere

Данные нужны в любой сфере: магазины анализируют продажи, в медцентры — истории болезней, ученые — результаты экспериментов. Чем больше информации,...
Read More

Основные задачи машинного обучения: классификация, регрессия, кластеризация и уменьшение размерности

Machine Learning ― это уже часть нашей повседневной жизни. От рекомендаций фильмов на Кинопоиске до спам-фильтров в почте — за...
Read More

Обзор CLI: командная строка и ее возможности

Когда были созданы первые компьютеры, операционной системой на них можно было управлять только при помощи ввода текстовых команд. Со временем...
Read More

Шардирование в базах данных: обзор концепции

В условиях стремительного роста объемов данных и увеличения нагрузок на информационные системы эффективность их масштабирования становится критически важной. Одним из...
Read More

Графический процессор (GPU): что это, для кого, разновидности

Дизайнерам, проектировщикам и разработчикам требуются мощные вычислительные ресурсы для работы. Обычный процессор (CPU) не справится с такими задачами, как обработка...
Read More