Введение в отслеживание MLflow

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

MLflow — это платформа с открытым исходным кодом, которая помогает управлять жизненным циклом машинного обучения от начала до конца с помощью четырех основных компонентов: Отслеживание MLflow, Проекты MLflow, Модели MLflow и Реестр моделей. В этой статье, в частности, мы увидим, как мы можем управлять/отслеживать различные итерации обучения модели с помощью отслеживания MLflow. Мы рассмотрим простой пример линейной регрессии Sklearn с набором данных Boston Housing. Если вы хотите сразу перейти к коду, вот репозиторий Github.

Оглавление

  1. Установка/настройка
  2. Пример отслеживания MLflow
  3. Дополнительные ресурсы и заключение

Установка/настройка

Настройка здесь довольно проста, поскольку MLflow — это пакет с открытым исходным кодом, с которым вы можете работать.

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

Чтобы начать работу с нашей моделью, создайте образец файла Python и добавьте в свою среду следующие пакеты, если они не установлены.

Пример отслеживания MLflow

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

Здесь мы устанавливаем активный эксперимент для отслеживания, если эксперимент не существует, он создается для нас. Теперь мы можем построить нашу модель, которую мы будем отслеживать с помощью MLflow. Для набора данных Boston Housing мы будем строить простую модель линейной регрессии с использованием Sklearn.

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

Затем мы можем отслеживать эту метрику с помощью MLflow, используя вызов API log_metric. Здесь мы указываем RMSE для вызова log_metric, чтобы MLflow отслеживал наши итерации модели.

Еще одна ключевая функция, которая здесь не рассматривается, заключается в том, что вы можете указать гиперпараметры, которые вы хотите, чтобы MLflow отслеживал в экспериментах. Это можно сделать аналогичным вызовом в log_param. Это особенно полезно при работе с более сложными алгоритмами и при сравнительном анализе/сравнении различных гиперпараметров в экспериментах.

Теперь мы можем работать с Model Registry для регистрации нашей модели. MLflow поставляется с вызовом API, сделанным специально для моделей Sklearn.

Теперь, если мы запустим этот файл Python несколько раз, мы должны увидеть отображаемый RMSE. Наряду с этим запуски будут записаны в каталог с именем mlruns, который будет создан при выполнении вашего файла Python.

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

После того, как вы откроете пользовательский интерфейс, вы сможете увидеть созданный нами эксперимент на боковой панели.

Если мы нажмем на этот эксперимент, мы должны увидеть разные прогоны/количество раз, когда мы выполняли обучение модели. Мы также должны увидеть нашу метрику, которую мы зарегистрировали в RMSE.

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

Дополнительные ресурсы и заключение

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

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

Если вам понравилась эта статья, не стесняйтесь связаться со мной в LinkedIn и подписаться на мою Информационную рассылку. Если вы новичок в Medium, зарегистрируйтесь с помощью моего Реферала для участников.