Что такое MLOps
easy

Что такое MLOps

И что он делает полезного для всех

В ИТ есть разработчики, которые пишут код. Это сложная и интересная работа, но есть и другие специальности, тоже сложные и интересные. Не все из них тесно связаны с языками программирования, но в каждой нужно изучать новые технологии и разбираться в устройстве цифровых процессов.

Сегодня расскажем о MLOps-инженерах, которые работают в машинном обучении и настраивают надёжное производство ML-моделей.

Чем занимается машинное обучение

Машинное обучение (Machine Learning, или ML) — одна из областей большой сферы искусственного интеллекта.

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

Главная задача ML-инженеров — разрабатывать и запускать в использование ML-модели. Это программы, которые инженеры обучают решать заранее поставленные задачи. Решить задачу — значит сделать правильное действие на основе тех, на которые запрограммировали машину инженеры. Например, когда бот в чате поддержки правильно отвечает клиенту на запрос — это результат работы ML-модели.

Что такое MLOps

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

Такие направления есть не только в ML. У разработчиков есть DevOps-инженеры, которые ускоряют и оптимизируют их работу. Например, делают так, что код программистов сам отправляется на серверы приложений или сервисов после одобрения архитектором или тимлидом. Без DevOps разработчикам нужно выполнять много рутинной работы самостоятельно и часто, например готовить шаблон проекта и развёртывание приложений и сервисов на серверах.

У Data Science есть инженеры данных, которые выстраивают процессы доставки и обработки данных, чтобы с ними можно было работать и строить точные прогнозы в бизнесе.

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

Может показаться, что все эти специальности — помощники для других серьёзных профессий, но на самом деле это не так. DevOps-инженерами чаще всего становятся опытные бэкенд-разработчики, и в дата-инженерию и MLOps тоже обычно приходят с опытом в разработке или ML.

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

Определение и его пояснение

Единого официального определения для MLOps пока нет, потому что профессия появилась и сформировалась недавно. 

Вот как примерно можно описать это направление:

👉 MLOps — инженерная дисциплина, которая создаёт и оптимизирует стандарты в разработке и выпуске качественных ML-моделей.

Подготовка и поддержка ML-модели в актуальном состоянии — сложный процесс, во время которого многое может пойти не так, например:

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

Таких проблем может быть много. Если всё делать вручную и не установить единые правила для всего процесса, во всём процессе ML systems каждый раз будут появляться новые поломки.

MLOps-engineer внедрит устойчивый пайплайн и будет его поддерживать. В результате процесс выпуска и обновления моделей (models development) ускорится, а сами модели станут качественнее.

Это простое объяснение, но если вникать в подробности, всё намного сложнее. Вот схема, которую предложили в 2023 году в своей статье про MLOps Доминик Кройцбергер, Никлас Кюль и Себастиан Хиршль:

Что такое MLOps
Источник: arxiv.org

История появления MLOps

MLOps появилось как решение проблемы роста ML-моделей в бизнесе.

Модели становились больше и сложнее, на обновления уходило больше времени, а при работе часто появлялись ошибки из-за отсутствия единой налаженной системы. В разных командах и компаниях процессы строились по разным схемам, и даже внутри одной команды правила и принятые схемы могли меняться. Из-за того, что общепринятых правил не было, ошибки тоже могли быть разными и непредсказуемыми.

В 2015 году вышла статья Дэвида Скалли Hidden Technical Debts in the Machine Learning System, в которой описывались проблемы, предлагалось универсальное решение и впервые появился термин MLOps. Поэтому можно сказать, что MLOps официально появился в 2015 году.

Главная идея в статье Скалли — применение процесса CI/CD к MLOps.

CI/CD (Continious integration / Continious delivery) — это пайплайн автоматизированного развёртывания и обновления программного обеспечения. Обычно этой работой занимаются DevOps-инженеры. Основной принцип в следующем: когда разработчик вносит изменения в код, он автоматически тестируется, добавляется в основную кодовую базу и разворачивается на серверах, то есть деплоится. Теперь конечные пользователи будут пользоваться обновлённым приложением, а у разработчиков есть настроенный deployment-конвейер.

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

Уровни зрелости означают этапы развития компании по оценкам стандартных систем. Одна из самых популярных моделей для оценки уровней зрелости — Capability Maturity Model Integration (CMMI).С каждым уровнем процессы становятся более организованными и предсказуемыми. Это сказывается на достижении результата, рисках и оценке качества управления. Вот фрагмент описания разных уровней CMMI-модели из Википедии:

Что такое MLOps
Источник: wikipedia.org

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

Модель Google — одна из самых простых и лаконичных. Состоит из трёх уровней:

  • Уровень 0: Ручной процесс.
  • Уровень 1: Автоматизация ML-пайплайна.
  • Уровень 2: Автоматизация CI/CD-пайплайна.

Это обобщённое и очень упрощённое понимание развития MLOps в бизнесе. Если смотреть только на эти три уровня, процесс налаживания работы с моделями машинного обучения не становится понятнее.

У Google есть более подробное хорошо составленное официальное описание, прочитать которое можно на английском на странице cloud.google.com/architecture.

Модель Azure похожа на Google, но основных уровней больше:

  • Уровень 0: отсутствие MLOps.
  • Уровень 1: DevOps, но без MLOps.
  • Уровень 2: автоматизация обучения.
  • Уровень 3: автоматизация развёртывания моделей.
  • Уровень 4: полная автоматизация операций MLOps.

Модель GigaOm более сложная. У неё пять показателей:

  • стратегия;
  • архитектура;
  • моделирование;
  • процессы;
  • управление.

Каждый из этих показателей находится на одном из пяти уровней зрелости. Получается матрица 5 × 5, которая выглядит так:

Что такое MLOps
Источник: gigaom.com

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

MLOps-инженеры работают в нескольких направлениях, которые усиливают развитие ML-моделей компании.

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

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

Если в одной из версий что-то пойдёт не так, команда инженеров и разработчиков может откатиться к предыдущей стабильно работающей версии.

Внедряют тестирование моделей. Так же, как DevOps внедряют автоматическое тестирование нового кода, MLOps создают проверки ML-моделей. При каждом изменении модели она проходит все проверки, которые заложат в процесс инженеры.

Автоматизируют работу. Это ещё одна черта, которая объединяет DevOps и MLOps. Везде, где это возможно, инженеры этих специальностей освобождают руки разработчиков и других инженеров и оптимизируют процессы так, чтобы всю работу — или большую её часть — делала программа.

Подключают мониторинг. Это наблюдение за всеми компонентами системы, чтобы всегда знать, если что-то сломалось, и получать максимум информации для дальнейшего совершенствования продукта и процессов.

Инструменты для внедрения MLOps

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

Kubeflow. Изначально был создан в Google как открытая платформа для запуска библиотеки TensorFlow на Kubernetes. Сейчас он расширился, и теперь Kubeflow — платформа машинного обучения, управляющая развёртыванием моделей ML на Kubernetes.

Algorithmia — фреймворк с искусственным интеллектом для создания приложений, которые используют модели машинного обучения. Algorithmia поддерживает подключение к различным источникам данных и доступен в облаке и на локальных инфраструктурах.

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

MLflow — ещё один проект Apache. С MLflow специалисты по данным могут легко автоматизировать сложное отслеживание моделей. MLflow автоматизирует разработку моделей, а выбор оптимальной модели становится проще.

DataRobot — полезный инструмент для автоматизации всего процесса развёртывания, поддержки и создания моделей ИИ в масштабе. Особенно пригодится пользователям без технического опыта, которые хотят разрабатывать ИИ, не осваивая сложный цикл работы с данными.

Главное преимущество DataRobot — универсальность. Можно получить доступ к платформе с любого устройства и использовать её различными способами, адаптируя под конкретный бизнес.

Зачем бизнесу использовать MLOps

Для небольших компаний MLOps может не принести ощутимой выгоды, а в крупном бизнесе развитая MLOps-система даёт многое:

  • Экономит бюджет, автоматизируя повторяющиеся задачи.
  • Освобождает время дата-сайентистов и ML-инженеров для обучения и экспериментирования с моделями.
  • Снижает количество ошибок, вводя единую систему развития и внедрения моделей.
  • Повышает надёжность моделей.
  • Ускоряет процесс обновления.

Как внедрить MLOps-инструменты в компанию

MLOps внедряют, когда становится понятно, что работа с ML-моделями в компании хаотична и может быть лучше.

Для внедрения можно пойти по нескольким путям:

  • Переобучить одного или нескольких членов существующей ИТ-команды.
  • Нанять новых специалистов.
  • Отдать это направление на аутсорс другой компании.

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

Будущее MLOps

ИИ — область с большим потенциалом, и до создания настоящего человекоподобного искусственного интеллекта ещё много работы. Поэтому вполне возможно, что и для самого MLOps через 5–10 лет понадобится отдельное направление для оптимизации.

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
easy