Введение в MLflow

Основы MLflow и с чего начать.

В этом посте мы рассмотрим основы MLflow и с чего начать. Короче говоря, MLflow — это платформа с открытым исходным кодом для управления вашими проектами машинного обучения.

Отлично, но что именно будет освещено в этом сообщении в блоге? Хороший вопрос!

  1. Во-первых, мы начнем с небольшой мотивации того, почему использование MLflow может иметь для вас смысл.
  2. Во-вторых, мы рассмотрим некоторые основные концепции MLflow, такие как эксперименты и запуски, а также способы их разумного объединения.
  3. Наконец, мы рассмотрим пример настройки того, как вы можете легко интегрировать MLflow в свое приложение. Примеры кода будут предоставлены для каждого шага. Однако мы рассмотрим только API Python, предоставляемый MLflow. CLI не будет подробно обсуждаться. Эту тему можно оценить (по запросу) в отдельном сообщении в блоге.

Хорошо, теперь давайте погрузимся!

Мотивация

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

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

Основные концепции

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

Параметры

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

Теги

Подобно параметрам, теги помогают вам добавлять в эксперимент/запуск всю информацию, с которой вы хотели бы его связать. В Википедии говорится, что в информационных системах «тег — это ключевое слово или термин, присвоенный части информации», для аннотирования данных и обогащения информации, которую они предоставляют. Использование такого рода метаданных упрощает поиск информации, связанной с конкретным тегом. Та же цель достигается с помощью тегов, которые вы можете назначать экспериментам и запускам.

Давайте рассмотрим короткий пример, охватывающий недавно изученные основные понятия.

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

Звучит здорово! Как мне начать? Продолжай читать!

Как использовать Млфлоу?

Монтаж

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

pip install mlflow

Это установит MLflow и его зависимости. После успешной установки MLflow готов к использованию. Да, никаких дополнительных настроек не требуется!

Чтобы запустить интерактивный пользовательский интерфейс, используйте эту команду:

MLflow ui

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

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

Для отслеживания экспериментов у вас есть несколько вариантов. Первый — это встроенный интерфейс командной строки. После активации вашей виртуальной среды и установки MLflow вы можете использовать интерфейс командной строки следующим образом:

mlflow experiments create — experiment-name fraud-detection

Это создаст новый эксперимент с названием «обнаружение мошенничества».

Вторая возможность — задать имя эксперимента с помощью переменной среды, например:

export MLFLOW_EXPERIMENT_NAME=fraud-detection

Наконец-то вы можете использовать API Python:

experiment_id = mlflow.create_experiment("fraud-detection")

Эта команда вернет идентификатор эксперимента для вновь созданного эксперимента.

Вы можете выбирать между всеми вышеупомянутыми возможностями, и выбор зависит от вашего приложения; нет правильного или неправильного.

В этой статье мы сосредоточимся на общем обзоре, поэтому дополнительные примеры кода не приводятся. В следующей статье мы подробно рассмотрим практические подходы с использованием API Python.

Краткое содержание

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

Мы в Origin Audio используем MLflow во всех наших (исследовательских) приложениях. Если у вас есть вопросы, пожалуйста, не стесняйтесь обращаться в любое время, либо здесь, либо присоединившись к нашему Discord Серверу. Кроме того, не забудьте подписаться, чтобы получать информацию о новых выпусках нашей серии, посвященной python, TensorFlow, MLflow и streamlit.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.