MLOps и ТОП-5 практик работы с MLflow

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

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

Компоненты Mlflow для разработки и развертывания ML-систем

Сегодня MLOps считается одним из самых перспективных и востребованных направлений в области Machine Learning и Big Data. Эта концепция объединяет набор инженерных практик, направленных на сокращение разрыва между различными специалистами, участвующими в процессах разработки, развертывания и эксплуатации систем машинного обучения. Существует множество инструментов и платформ MLOps, которые обещают частичную или полную эволюцию управления конвейером машинного обучения. Одним из таких средств является MLflow – универсальная платформа от Databricks с открытым исходным кодом, которая помогает управлять сквозными конвейерами машинного обучения. MLflow не зависит от библиотеки и языка, поэтому его можно использовать с любой ML-библиотекой и любым языком программирования благодаря REST API и CLI-интерфейсу, а также поддержке Python, R и Java. Что нового ожидается в свежей версии MLflow 2.0, мы рассказывали здесь.

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

  • воспроизведение результатов – поскольку ML-проекты сильно эволюционируют и обычно начинаются с простых MVP, невозможность повторения экспериментов часто приводит к ошибкам;
  • нестандартная упаковка решения, в которых участвуют разные разработчики и команды. Не существует стандартного способа объединения различных модулей вместе, что может нарушить этапы обслуживания и переобучения ML-модели.
  • Сложность мониторинга этапов машинного обучения, от сбора и очистки данных до настройки гиперпараметров. Например, на этапе настройки модели разработчик может поэкспериментировать с набором фичей и наоборот. Трудно отслеживать различные маршруты и варианты, когда одновременно происходит много изменений.
  • большое время простоя из-за отсутствия централизованного и легкодоступного хранилища артефактов модели и высокодетализированной системы отслеживания. Доступ к подробным сведениям о модели, данных и коде на всех этапах жизненного цикла ML-системы может помочь разработчикам найти и устранить ошибки, которые нарушили работу решения.

MLflow решает все отмеченные проблемы сквозного конвейера с помощью своих ключевых модулей:

  • Tracking для отслеживания различных параметров конвейера, таких как метрики, гиперпараметры, параметры фичей, версии кода и другие артефакты. Логи можно использовать для визуализации или сравнения результатов между экспериментами, пользователями или средами. Эти логи могут храниться как на любой локальной системе, так и на удаленных серверах.
  • Projects — соглашение для упаковки или структурирования проектов машинного обучения и повторно используемых кодов. По сути, проект представляет собой каталог вместе с файлом дескриптора, который определяет структуру и зависимости. При использовании API MLflow автоматически запоминает параметры или сведения о проекте.
  • Models — модели MLflow, которые позволяют упаковать ML-модели в формат или структура, например, TensorFlow DAG или Python-функция, знакомую файлу дескриптора. Так можно использовать модель в других инструментах и платформах, таких как Docker или AWS SageMaker, что упрощает обработку и управление жизненным циклом ML-системы.
  • Registry — реестр MLflow действует как ядро ​​и обеспечивает API, пользовательский интерфейс и централизованное хранилище моделей. Он направлен на управление сквозным конвейером машинного обучения через отслеживание происхождения модели и возможностей управления версиями.

5 лучших практик MLflow для MLOps

Чтобы эффективно использовать MLflow для задач MLOps, рекомендуется применять следующие практики:

  • Выделить специальное хранилище для параметров ML-конвейера, которые отслеживаются в модуле трекинга (Tracking). По мере развития проекта этих параметров становится очень много. Чтобы преодолеть сложности управления этими артефактами, включая метаданные, гиперпараметры, базы данных и метрики, особенно в производственной среде, развернутой в облаке, важно зарезервировать выделенное облачное хранилище для беспрепятственного отслеживания.
  • Вести тестирование в промежуточных средах. Под промежуточной средой понимается реплика производственной, в которой ML-модели можно протестировать и скорректировать перед запуском в production. Это позволит обнаружить ошибки и потенциальные сбои в коде.
  • Централизовано отслеживать эксперименты. Одним из важнейших требований MLOps является отслеживание экспериментов, и MLflow позволяет сделать это за счет централизации сведений об отслеживании для пользователей и систем. API модуля Tracking может напрямую регистрировать сведения из блокнотов Jupyter и собирать данные от других пользователей, использующих тот же эксперимент. Затем данные сохраняются в общей таблице для быстрого анализа и сравнения.
  • Использовать AWS для сервера MLflow, чтобы упростить настройку и сократить эксплуатационные расходы. AWS предлагает набор бесплатных сервисов, которые можно использовать для настройки MLflow, а т.к. сервер не выполняет никаких тяжелых задач, затраты минимальны. В среднем настройка MLflow занимает около 10 минут, что оптимизирует цикл MLOps.
  • Настраивать весь ML-конвейер комплексно. Вместо настройки отдельных или изолированных модулей лучше настроить весь конвейер машинного обучения, чтобы использовать весь потенциал различных комбинаций гиперпараметров. При этом создается огромное количество комбинаций, которые можно отслеживать, хранить и анализировать с помощью API модуля Tracking и централизованного хранилища MLflow.‍

Начать работу с MLflow можно, выполнив следующие 5 шагов:

  • Установить платформу с помощью команды pip install mlflow. При установке пакета MLflow Python также устанавливается набор основных зависимостей, необходимых для использования большей части функций MLflow (отслеживание, проекты, API-интерфейсы моделей). Для использования определенных API-интерфейсов MLflow или параметров конфигурации, специфичных для платформы, необходимо установить дополнительные, зависимости. Например, API сохранения модели в модуле sklearn требуют установки Python-библиотеки scikit-learn. Некоторые из наиболее распространенных дополнительных зависимостей MLflow можно установить с помощью pip install mlflow[extras]. Полный набор дополнительных зависимостей вместе с зависимыми от них модулями задокументирован в файле extra-ml-requirements.txt, где указаны ML-библиотеки для использования сохраняемости модели и API вывода, а также test-requirements.txt, где указаны библиотеки для использования нестандартных конфигураций сервера регистрации и отслеживания артефактов.
  • Клонировать код быстрого запуска MLflow, который проводит пользователя через модули MLflow и обеспечивает быстрое обучение. Код можно клонировать из репозитория git. После клонирования код можно сохранить в подкаталоге репозитория с примерами (examples).
  • Запустить API модуля Tracking. Python-скрипт, включенный в файл quickstart/mlflow_tracking.py, можно использовать для запуска и просмотра журналов отслеживания. После запуска программы логи отслеживания можно посмотреть с помощью команды mlflow ui, которая запустит пользовательский интерфейс, доступный по адресу http://localhost:5000/. Если обычный порт 5000 недоступен, для запуска модели можно использовать другие открытые порты с помощью параметра -port.‍
  • Запустить проект MLflow, куда можно упаковать программный код в соответствии с установленным шаблоном и повторно использовать. Для запуска локального или полученного проекта пригодятся следующие команды:
mlflow run sklearn_elasticnet_wine -P alpha=0.5
mlflow run https://github.com/mlflow/mlflow-example.git -P alpha=5.0
  • сохранить ML-модель с помощью функции sklearn.log_model(lr, “model”). Для обслуживания модели пригодится команда mlflow models serve -m runs:/<RUN_ID>/model

Таким образом, MLflow может превращать плохо управляемые проекты машинного обучения в организованные, оптимизированные и высокопроизводительные ML-конвейеры. А благодаря поддержке лучших практик MLOps этот инструмент позволяет командам специалистов Machine Learning работать особенно эффективно. Читайте в нашей новой статье, как управлять различными LLM-моделями от разных провайдеров с помощью сервиса MLflow AI Gateway, появившемся в MLflow 2.5.

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

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

Источники

  1. https://mlflow.org/docs/latest/index.html
  2. https://samadritaghosh.medium.com/5-best-practices-for-mlops-with-mlflow-133c588dd908
  3. https://github.com/mlflow/mlflow/blob/master/EXTRA_DEPENDENCIES.rst
  4. https://github.com/mlflow/mlflow
Поиск по сайту