Как построить и запустить свой MLOps-конвейер с MyMLOps

MLOps инструменты проектирование конвейера примеры курсы обучение, курсы дата-инженеров ML, Machine Learning для инженеров и архитекторов примеры курсы обучение, архитектура и инфраструктура MLOps, Школа Больших Данных Учебный Центр Коммерсант

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

Что такое MyMLOps: новый сервис для MLOps

Чтобы реализовать идеи концепции MLOps автоматизации всего жизненного цикл системы машинного обучения, от подготовки данных и обучения модели до ее развертывания и мониторинга, необходимо обеспечить соответствующую инфраструктуру. К компонентам такой инфраструктуры относятся средства контроля версий ПО и датасетов, инструменты непрерывной интеграции и непрерывного развертывания (CI/CD), а также системы мониторинга производительности и качества ML-модели. Чтобы организовать такую инфраструктуру, необходимо сперва спроектировать MLOps-конвейер. Обычно это делается в виде примитивного рисунка от руки или визуальной схемы в графическом редакторе. Также можно заполнить шаблон, который отражает структуру взаимодействия основных MLOps-компонентов. Такое примитивное проектирование хоть и позволяет определиться с технологиями и начать действовать, оно не слишком приближает момент запуска MLOps-конвейера.

Поэтому ребята из стартапа MyMLOps запустили сервис, позволяющий спроектировать архитектуру поддержки жизненного цикла ML-модели и запустить ее в инфраструктурных решениях.

Начать пользоваться сервисом можно без регистрации. Одна из ключевых возможностей – построитель стека технологий (Stack builder). Благодаря тому, что в шаблоне уже выделены основные компоненты, поддерживающие этапы жизненного цикла ML-модели, работа пользователя сводится к выбору используемых инструментов. Выделив определенный компонент, можно указать, с помощью какого фреймворка или библиотеки он будет реализован. Например, для регистрации ML-моделей в централизованном репозитории, чтобы их отслеживать и разворачивать, предлагается использовать ClearML, BentoML и другие подобные инструменты.

MyMLOps MLOps
Проектирование MLOpsконвейера в MyMLOps

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

MyMLOps MLOps pipeline
Проектирование MLOpsконвейера в MyMLOps

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

стек технологий MLOps
Стек технологий по спроектированной архитектуре

Но, что особенно полезно, сразу генерируется Python-код для установки выбранных пакетов.

mlops dependencies
Пакеты для установки

Например, к моей схеме, включающей Apache AirFlow, Spark, Ray, Grafana и другие технологии, был сгенерирован следующий код установки этих пакетов:

#!/bin/bash
# MLOps stack installation script
# This script does NOT install: TensorBoard, Apache Spark

# -----------------------
# Misc tools
# -----------------------

echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list
curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add -
apt-get update && apt-get install tensorflow-model-server
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_8.5.5_amd64.deb
sudo dpkg -i grafana_8.5.5_amd64.deb

# -----------------------
# Python packages
# -----------------------

pip install fastds
pip install neptune-client
pip install ray
pip install mlflow
pip install jupyterlab
pip install apache-airflow

Также у зарегистрированного пользователя есть пространство, в котором можно запустить облачную инфраструктуру спроектированного конвейера. Разумеется, запуск облачных сервисов не бесплатный. После регистрации каждому новому пользователю даются кредиты в размере $2,5, которые можно потратить на запуск своего или чужого конвейера. В частности, я довольно быстро потратила выданные при регистрации кредиты на запуск примера с NLP-системой идентификации токсичных комментариев.

Пример стека технологий MLOps
Пример стека технологий

Стек этого примера включает следующий набор технологий:

  • Jupyter Notebook для разработки и запуска Python-кода;
  • Git для контроля версий кода;
  • DVC для управления версиями данных машинного обучения;
  • MLFlow для отслеживания экспериментов, артефактов и поддержки реестра моделей;
  • Apache AirFlow для оркестрации конвейеров;
  • BentoML для управления ML-моделью и ее развертывания;
  • Grafana и Prometheus для мониторинга системных метрик.

AirFlow + Mlflow
Пример стека AirFlow + Mlflow

Пример содержит подробные иллюстрации и комментарии по коду ML-модели.

ML-model code NLP example
Код ML-модели распознавания токсичных комментариев в соцсетях

Посмотрев описание, я запустила этот конвейер.

Запуск схемы в MyMLOps
Запуск схемы в MyMLOps

И перешла в его пространство, где собраны все аспекты ЖЦ этой MLOps-инфраструктуры. В частности, можно посмотреть Python-код модели машинного обучения.

Пространство проекта MyMLOps
Пространство проекта MyMLOps

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

GUI AirFlow
Веб-интерфейс Apache AirFlow

Аналогично можно перейти в веб-интерфейс платформы мониторинга системных метрик Grafana.

Grafana
Веб-интерфейс Grafana

За время переходов по этим сервисам я успела потратить выданные мне кредиты. Чтобы продолжить пользоваться возможностями MyMLOps, следует пополнить счет.

MyMLOps account
Пополнение счета в MyMLOps

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

Из недостатков проекта MyMLOps хочу отметить зависание и быстрое отключение сервисов. Впрочем, это может быть связано с исчерпанием моих кредитов. В любом случае, это довольно интересный инструмент, который стоит попробовать. Впрочем, можно не строить собственный конвейер и не разрабатывать свои ML-модели, а воспользоваться ранее разработанными решениями, например, TAO Toolkit от NVIDIA, чтобы получить эффективный рабочий процесс с помощью лучших практик MLOps и возможностей трансферного обучения. Как это работает, читайте в новой статье.

Узнайте больше про использование MLOps-средств в системах аналитики больших данных и машинного обучения на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://mymlops.com/
Поиск по сайту