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

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

MLFLow

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

Ядро MLFlow состоит из 4 основных компонентов:

  • Отслеживание MLFlow
    Этот компонент предоставляет API и интерфейс пользовательского интерфейса. Интерфейс API позволяет MLFlow регистрировать параметры, метрики, версии кода и артефакты во время выполнения кода машинного обучения. Интерфейс пользовательского интерфейса обеспечивает различную визуализацию результатов, зарегистрированных параметров, других показателей и сравнения моделей. Отслеживание потока машинного обучения может выполняться в любой среде, например, в виде отдельного скрипта или записной книжки, и регистрировать результаты в локальном каталоге или в централизованных базах данных. Он также предоставляет централизованную точку доступа для команд, чтобы сравнивать результаты для разных пользователей.
  • Проекты MLFlow
    Он предоставляет стандартный механизм упаковки для хранения настроек среды машинного обучения и базы кода. В MLFlow каждый проект представляет собой простой каталог с кодом или репозиторием git и файлом дескриптора для указания его зависимостей и способа запуска кода. Когда вы используете API отслеживания MLFlow в проекте, MLFlow автоматически запоминает версию проекта. В MLFlow проекты можно легко объединять в многоэтапные рабочие процессы.
  • Модели MLFlow
    Он предлагает соглашение для упаковки моделей машинного обучения в различных вариантах (разных форматах). Каждая модель сохраняет каталог, содержащий двоичные файлы модели и файл дескриптора, в котором перечислены различные разновидности, в которых модель может использоваться. Например, модель PyTorch можно загрузить как двоичный файл PyTorch или как функцию Python для применения входных данных. MLFLow предоставляет различные инструменты для развертывания многих распространенных типов моделей на различных платформах: любую модель, поддерживающую «функцию Python», можно развернуть на сервере REST на основе Docker, на облачных платформах, таких как AWS Sagemaker и Azure ML.
  • Реестр MLFlow
    Он предлагает централизованное хранилище моделей, набор API и пользовательский интерфейс для совместного управления всем жизненным циклом модели MLFlow. Реестр MLFlow предоставляет различные функции, такие как переход между этапами модели, управление версиями модели, происхождение модели и аннотации модели.

Установка MFLow

  1. Настройте среду anaconda (Следуйте документации)
  2. Используйте conda install -c conda-forge mlflow для установки mlflow

Если установка работает нормально,

mlflow --version

выход будет,

mlflow, version 1.24.0

В зависимости от времени и используемой версии вывод может отличаться.

Быстрый старт с MLFlow

Давайте проведем эксперимент и обучим модель классификации на наборе данных IRIS. Я собираюсь использовать библиотеку cikit-learn для загрузки наборов данных, преобразования, обучения модели AllaNumPynd.

Давайте начнем.

Код без API MLFlow

Простой рабочий процесс MFLow для Scikit-Learn

  1. Начните эксперимент с помощью mlflow.start_run(), который переключает контекст кода существующей модели, чтобы включить отслеживание млфлов.
  2. Определите все важные параметры для входа в MLFlow Tracking.
  3. После обучения и оценки модели я зарегистрировал модель с помощью mlflow.sklearn.log_model(). Поскольку я использую scikit-learn для обучения модели, поэтому с помощью пакета sklearn mlflow для регистрации модель. Как и в других фреймворках, MLFlow имеет широкий спектр пакетов. (подробнее здесь)

Код с интегрированным MLFlow API

Я добавил несколько понятных строк для начала эксперимента, параметров регистрации и деталей модели.

Интерфейс MLFlow

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

Чтобы включить отслеживание, перейдите к проекту curselfrent в Терминале и используйте приведенную ниже команду.

mlflow ui

Выход,

[2022-03-14 13:04:07 +0530] [65940] [INFO] Starting gunicorn 20.1.0
[2022-03-14 13:04:07 +0530] [65940] [INFO] Listening at: http://127.0.0.1:5000 (65940)
[2022-03-14 13:04:07 +0530] [65940] [INFO] Using worker: sync
[2022-03-14 13:04:07 +0530] [65942] [INFO] Booting worker with pid: 65942

Он будет размещать пользовательский интерфейс в локальной сети и на порту 5000.

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

Он будет перенаправлен на выбранный запуск и покажет все детали, показанные ниже. Для повторного использования модель будет иметь все параметры с автоматически сгенерированным кодом, который позволяет делать прогнозы.

Заключение

  • MLFlow — это платформа с открытым исходным кодом для управления жизненным циклом машинного обучения.
  • Он состоит из 4 основных компонентов, которые работают синхронно для обеспечения работы конвейера.
  • MLFlow предоставляет простой пользовательский интерфейс для навигации, понимания и отслеживания хода выполнения модели.
  • Поддержка более 10 популярных платформ машинного обучения и различных подключаемых модулей развертывания.
  • Обеспечьте современные интерфейсы API, такие как REST API, gRPC
  • Простота регистрации моделей и производственного развертывания.

Рекомендации

Интересно увидеть больше таких. Купи мне кофе