Вчера я нашла очень интересный MLOps-проект, который позволяет построить конвейер поддержки жизненного цикла системы машинного обучения, используя более 50 популярных инструментов. Что такое MyMLOps и как это пригодится ML-инженерам.
Что такое MyMLOps: новый сервис для MLOps
Чтобы реализовать идеи концепции MLOps автоматизации всего жизненного цикл системы машинного обучения, от подготовки данных и обучения модели до ее развертывания и мониторинга, необходимо обеспечить соответствующую инфраструктуру. К компонентам такой инфраструктуры относятся средства контроля версий ПО и датасетов, инструменты непрерывной интеграции и непрерывного развертывания (CI/CD), а также системы мониторинга производительности и качества ML-модели. Чтобы организовать такую инфраструктуру, необходимо сперва спроектировать MLOps-конвейер. Обычно это делается в виде примитивного рисунка от руки или визуальной схемы в графическом редакторе. Также можно заполнить шаблон, который отражает структуру взаимодействия основных MLOps-компонентов. Такое примитивное проектирование хоть и позволяет определиться с технологиями и начать действовать, оно не слишком приближает момент запуска MLOps-конвейера.
Поэтому ребята из стартапа MyMLOps запустили сервис, позволяющий спроектировать архитектуру поддержки жизненного цикла ML-модели и запустить ее в инфраструктурных решениях.
Начать пользоваться сервисом можно без регистрации. Одна из ключевых возможностей – построитель стека технологий (Stack builder). Благодаря тому, что в шаблоне уже выделены основные компоненты, поддерживающие этапы жизненного цикла ML-модели, работа пользователя сводится к выбору используемых инструментов. Выделив определенный компонент, можно указать, с помощью какого фреймворка или библиотеки он будет реализован. Например, для регистрации ML-моделей в централизованном репозитории, чтобы их отслеживать и разворачивать, предлагается использовать ClearML, BentoML и другие подобные инструменты.
Зарегистрировавшись в сервисе MyMLOps, можно расширить предлагаемый стек технологий, добавив собственные инструменты. Также после регистрации можно сохранить созданную схему MLOps-конвейера. Например, я создала следующую схему.
Созданная схема конвейера сохраняется в стеках пользователя с возможностью поделиться ссылкой на эту MLOps-архитектуру.
Но, что особенно полезно, сразу генерируется Python-код для установки выбранных пакетов.
Например, к моей схеме, включающей 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-системой идентификации токсичных комментариев.
Стек этого примера включает следующий набор технологий:
- Jupyter Notebook для разработки и запуска Python-кода;
- Git для контроля версий кода;
- DVC для управления версиями данных машинного обучения;
- MLFlow для отслеживания экспериментов, артефактов и поддержки реестра моделей;
- Apache AirFlow для оркестрации конвейеров;
- BentoML для управления ML-моделью и ее развертывания;
- Grafana и Prometheus для мониторинга системных метрик.
Пример содержит подробные иллюстрации и комментарии по коду ML-модели.
Посмотрев описание, я запустила этот конвейер.
И перешла в его пространство, где собраны все аспекты ЖЦ этой MLOps-инфраструктуры. В частности, можно посмотреть Python-код модели машинного обучения.
Также можно перейти в веб-интерфейс Apache AirFlow, где отображаются направленные ациклические графы задач, управляемых с помощью этого фреймворка.
Аналогично можно перейти в веб-интерфейс платформы мониторинга системных метрик Grafana.
За время переходов по этим сервисам я успела потратить выданные мне кредиты. Чтобы продолжить пользоваться возможностями MyMLOps, следует пополнить счет.
В заключение еще раз отмечу, что мне очень понравилась сама идея проекта MyMLOps. Хорошо выделены ключевые компоненты MLOps-инфраструктуры и возможность наполнения этого шаблона подходящими технологиями. Группировка технологий по назначению тоже существенно экономит время на поиск подходящего фреймворка. Наконец, генерация кода по установке зависимостей снижает вероятность ошибок из-за неподходящих версий инструментов.
Из недостатков проекта MyMLOps хочу отметить зависание и быстрое отключение сервисов. Впрочем, это может быть связано с исчерпанием моих кредитов. В любом случае, это довольно интересный инструмент, который стоит попробовать. Впрочем, можно не строить собственный конвейер и не разрабатывать свои ML-модели, а воспользоваться ранее разработанными решениями, например, TAO Toolkit от NVIDIA, чтобы получить эффективный рабочий процесс с помощью лучших практик MLOps и возможностей трансферного обучения. Как это работает, читайте в новой статье.
Узнайте больше про использование MLOps-средств в системах аналитики больших данных и машинного обучения на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники