Управление жизненным циклом машинного обучения с помощью MLflow

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

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

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

Что такое MLflow?

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

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

MLflow поддерживает API Java, Python, R и REST.

Данные MLflow шифруются Azure Databricks с помощью ключа, управляемого платформой. Шифрование с помощью ключей, управляемых клиентом для управляемых служб , не поддерживается.

Отслеживание MLflow

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

Управление жизненным циклом модели

Реестр моделей MLflow — это централизованный репозиторий моделей, пользовательский интерфейс и набор API, которые позволяют управлять полным жизненным циклом моделей MLflow. Databricks предоставляет размещенную версию реестра моделей MLflow в каталоге Unity. Каталог Unity обеспечивает централизованное управление моделями, доступ между рабочими областями, происхождение и развертывание. Дополнительные сведения об управлении жизненным циклом модели в каталоге Unity см. в разделе "Управление жизненным циклом модели" в каталоге Unity.

Если рабочая область не включена для каталога Unity, можно использовать реестр моделей рабочей области.

Основные понятия реестра модели

  • Модель: модель MLflow, зарегистрированная из эксперимента или запуска в журнале с одним из методов варианта приложения модели mlflow.<model-flavor>.log_model. После регистрации модели его можно зарегистрировать в реестре моделей.
  • Зарегистрированная модель: модель MLflow, зарегистрированная в реестре модели. Зарегистрированная модель имеет уникальное имя, версии, журнал происхождения модели и другие метаданные.
  • Версия модели: версия зарегистрированной модели. При добавлении новой модели в реестр модели она добавляется как «Версия 1». Каждая модель, зарегистрированная с одним и тем же именем, увеличивает номер версии.
  • Псевдоним модели: псевдоним — это изменяемая именованной ссылкой на определенную версию зарегистрированной модели. Типичным использованием псевдонимов является указание версий модели, развернутых в заданной среде в рабочих процессах обучения модели, или для записи рабочих нагрузок вывода, предназначенных для конкретного псевдонима. Например, вы можете назначить псевдоним "Чемпион" зарегистрированной модели модели "Обнаружение мошенничества" версии модели, которая должна служить большинству рабочего трафика, а затем записывать рабочие нагрузки вывода, предназначенные для псевдонима (то есть делать прогнозы с помощью версии "Чемпион").
  • Этап модели (только реестр моделей рабочей области): можно назначить одну или несколько этапов. MLflow предоставляет предопределенные этапы для распространенных вариантов использования: нет, промежуточное создание, производство и архивирование. С соответствующим разрешением можно перевести версию модели между этапами или запросить переход на модели на определенный этап. Этапы версии модели не используются в каталоге Unity.
  • Описание. Вы можете анимировать намерение модели, включая описание и любую соответствующую информацию, полезную для команды, например описание алгоритма, использование набора данных или методологию.

Примеры записных книжек

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

Развертывание модели

Служба моделей Databricks предоставляет единый интерфейс для развертывания, управления и запроса моделей ИИ. Каждая модель, которую вы обслуживаете, доступна в качестве REST API, которую можно интегрировать в веб-приложение или клиентское приложение.

Обслуживание модели поддерживает обслуживание:

  • Настраиваемые модели. Это модели Python, упакованные в формате MLflow. Их можно зарегистрировать в каталоге Unity или в реестре моделей рабочей области. Примеры включают scikit-learn, XGBoost, PyTorch и модели преобразователя распознавания лиц.
  • Современные открытые модели, доступные API-интерфейсами модели Foundation. Эти модели являются курируемыми архитектурами базовых моделей, поддерживающими оптимизированное вывод. Базовые модели, такие как Llama-2-70B-chat, BGE-Large и Mistral-7B, доступны для немедленного использования с ценами на токен , а рабочие нагрузки, требующие гарантий производительности и точно настроенных вариантов модели, можно развернуть с подготовленной пропускной способностью.
  • Внешние модели. Это модели, размещенные за пределами Databricks. К примерам относятся базовые модели, такие как, GPT-4 OpenAI, Anthropic в Клоде и другие. Конечные точки, обслуживающие внешние модели, могут централизованно управляться, и клиенты могут устанавливать ограничения скорости и элементы управления доступом для них.

Вы также можете развернуть модели MLflow для автономного вывода, см. статью "Развертывание моделей для пакетного вывода".