Шаблон стека MLOps-инструментов и ТОП-5 практик его внедрения

Шаблон стека MLOps-инструментов и ТОП-5 практик его внедрения

    Как внедрить ключевые идеи MLOps и определиться с набором инструментов для непрерывной разработки и поставки систем машинного обучения. Лучшие практики и шаблон представления техстека.

    С чего начать: определение структуры проекта

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

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

    Стек MLOps-инструментов

    Понимая функциональные и нефункциональные требования к итоговому продукту, техлид принимает решение об используемых технологиях, учитывая опыт команды. Например, здесь мы писали, почему Kubeflow больше подходит для больших команд, разрабатывающих собственные ML-решения, а MLflow будет отличным выбором для отдельных Data Scientist’ов, которые работают над отслеживанием экспериментов и созданием моделей Machine Learning. Чтобы визуализировать выбранный стек и спроектировать необходимый MLOps-конвейер, можно интерактивно определить стек технологий, используя сервис MyMLOps или воспользоваться статическим шаблоном от Valohai.

    MLOps tech stack template
    Шаблон стека MLOps-инструментов

    Хотя статическая картинка уступает интерактивной схеме на платформе MyMLOps, она позволяет визуализировать выбранные технологии и построить MLOps-конвейер. А чтобы обосновать выбор технологического стека, целесообразно сопроводить графическую схему текстовой таблицей:

    MLOps-компонент

    Требования

    Выбранный инструмент

    Анализ данных

    ·       поддержка Python

    ·       локальная работа

    ·       совместная работа в облаке

    Jyputer Notebook

    Отслеживание экспериментов

    ·       трекинг параметров

    ·       упаковка ML-модели в транспортируемый формат

    MLflow

    Хранилище фичей

    ·       версионирование фичей

    ·       поддержка потоковой обработки

    Feast

    Репозиторий кода

    ·       версионирование

    ·       поддержка CI/CD

    GitLab

    Оркестрация ML-конвейера

    ·       запуск заданий по расписанию

    ·       поддержка Python

    Apache AirFlow

    Хранилище метаданных

    ·       версионирование

    ·       неограниченный объем

    AWS S3

    Реестр моделей

    ·       отслеживание происхождения модели

    ·       версионирование

    MLflow

    Обслуживание ML-моделей

    ·       автоматическое масштабирование рабочих процессов

    ·       облачное развертывание ML-моделей

    ClearML

    Мониторинг ML-моделей

    ·       автоматическое логирование

    ·       визуализация показателей на дэшбордах

    ClearML

    В качестве примера представим стек технологий MLOps-платформы Valohai, разработчики которой предложили вышепоказанный шаблон:

    • Jupyter Notebook для анализа данных и экспериментов;
    • Tecton для хранилища фичей;
    • GitLab для репозиториев кода;
    • Fiddler Labs для мониторинга моделей;
    • Valohai для обучения конвейеров, обслуживания моделей и связанных с ними хранилищ.
    MLOps Valohai
    Стек инструментов MLOps-платформы Valohai

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

    Отслеживание расходов и стандартизация подходов

    Одна из целей внедрения MLOps – это сокращение техдолга. Однако, это не должно достигаться за счет чрезмерных трат на MLOps-инструменты. Многие MLOps-средства основаны на подписке или оплате по факту использования. Платные сервисы обычно гораздо удобнее open-source инструментов, которые следует настраивать. Но, выбирая коммерческий инструмент, следует понимать, какую экономию времени он принесет, повышая итоговую ценность создаваемого продукта. Важно считать и отслеживать расходы, сопоставляя их с выручкой от создаваемой ML-системы.

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

    Наконец, именно стандартизация подходов является основой для оценки зрелости MLOps. О том, какие бывают модели оценки зрелости MLOps и как их применить к своим проектам, мы рассказывали здесь и здесь.

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

    [elementor-template id=»13619″]

    Источники

    1. https://www.kdnuggets.com/2023/04/mlops-best-practices-know/
    2. https://valohai.com/blog/the-mlops-stack/