Начало работы с MLflow 3 для моделей

Замечание

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

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

Что такое MLflow 3 для моделей?

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

Что такое MLflow 3 для GenAI?

Помимо MLflow 3 для моделей, MLflow 3 для GenAI представляет широкий спектр новых функций и улучшений для разработки приложений агента и GenAI. Полный обзор см. в разделе MLflow 3 для GenAI.

Основные функции MLflow 3 для GenAI:

  • Трассировка и наблюдаемость — сквозная наблюдаемость для приложений GenAI с автоматическим инструментированием для 20+ фреймворков, включая OpenAI, LangChain, LlamaIndex и Anthropic
  • Оценка и мониторинг — всеобъемлющие возможности оценки GenAI для измерения и улучшения качества в процессе разработки и эксплуатации. Включает встроенные судьи LLM, настраиваемые судьи, управление наборами данных оценки и мониторинг в режиме реального времени.
  • Сбор отзывов о людях — настраиваемый пользовательский интерфейс проверки для сбора отзывов экспертов домена и интерактивного тестирования агентов с структурированными сеансами маркировки для организации и отслеживания хода выполнения проверки
  • Prompt Registry — централизованное управление версиями и контролем изменений, А/B тестирование с интеграцией Unity Catalog

Как MLflow 3 для моделей отличается от MLflow 2

MLflow 3 для моделей в Azure Databricks позволяет:

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

Пользовательский интерфейс отслеживания моделей.

  • Просматривайте и получайте доступ к метрикам и параметрам модели на странице версии модели в Unity Catalog и REST API во всех рабочих областях и экспериментах.

Страница версии модели в каталоге Unity с метриками из нескольких запусков.

  • Оркестрируйте рабочие процессы оценки и развертывания с помощью каталога Unity и доступа к полным журналам состояния для каждой версии модели.

Сложное задание развертывания, включающее поэтапное развертывание и коллекцию метрик.

Эти возможности упрощают и оптимизируют разработку, оценку и внедрение в производство моделей машинного обучения.

Зарегистрированные модели

Большая часть новых функций MLflow 3 является производным от новой концепции LoggedModel. Для глубокого обучения и традиционных моделей LoggedModels машинного обучения повышает концепцию модели, созданной учебным запуском, устанавливая ее в качестве выделенного объекта для отслеживания жизненного цикла модели в разных запусках обучения и оценки.

LoggedModels фиксирует метрики, параметры и трассировки на этапах разработки (обучение и оценка) и в разных средах (разработка, стейджинг и продакшн). LoggedModel При продвижении в каталоге Unity в качестве версии модели все данные о производительности из исходного LoggedModel становятся видимыми на странице версии модели Unity Catalog (UC), обеспечивая видимость во всех рабочих областях и экспериментах. Дополнительные сведения см. в разделе "Отслеживание и сравнение моделей" с помощью моделей MLflow Logged.

Задания развертывания

MLflow 3 также представляет концепцию задания развертывания. Задания развертывания используют задания Lakeflow для управления жизненным циклом модели, включая шаги оценки, утверждения и развертывания. Эти рабочие процессы модели управляются каталогом Unity, и все события сохраняются в журнале действий, доступном на странице версии модели в каталоге Unity.

Миграция с MLflow 2.x

Хотя в MLflow 3 есть много новых функций, основные понятия экспериментов и запусков, а также их метаданные, такие как параметры, теги и метрики, все остаются одинаковыми. Миграция с MLflow 2.x на 3.0 очень проста и должна требовать минимальных изменений кода в большинстве случаев. В этом разделе рассматриваются некоторые ключевые отличия от MLflow 2.x и то, что следует учитывать для простого перехода.

Модели ведения журнала

При логировании моделей в версии 2.x используется параметр artifact_path.

with mlflow.start_run():
    mlflow.pyfunc.log_model(
        artifact_path="model",
        python_model=python_model,
        ...
    )

В MLflow 3 используйте name вместо этого, что позволяет модели позже выполнять поиск по имени. Параметр artifact_path по-прежнему поддерживается, но не рекомендуется. Кроме того, для логирования модели в MLflow больше не требуется активный запуск, потому что модели стали полноправными объектами в MLflow 3. Вы можете напрямую зарегистрировать модель без выполнения запуска.

mlflow.pyfunc.log_model(
    name="model",
    python_model=python_model,
    ...
)

Артефакты модели

В MLflow 2.x артефакты модели сохраняются как артефакты запуска в каталоге артефактов данного запуска. В MLflow 3 артефакты модели теперь хранятся в другом месте, в соответствии с путем артефактов модели.

# MLflow 2.x
experiments/
  └── <experiment_id>/
    └── <run_id>/
      └── artifacts/
        └── ... # model artifacts are stored here
# MLflow 3
experiments/
  └── <experiment_id>/
    └── models/
      └── <model_id>/
        └── artifacts/
          └── ... # model artifacts are stored here

Рекомендуется загрузить модели с mlflow.<model-flavor>.load_model, используя URI модели, возвращаемый mlflow.<model-flavor>.log_model, чтобы избежать каких-либо проблем. Этот URI модели имеет формат models:/<model_id> (а не runs:/<run_id>/<artifact_path> как в MLflow 2.x) и может быть создан вручную, если доступен только идентификатор модели.

Реестр моделей

В MLflow 3 теперь используется URI реестра по умолчанию, то есть databricks-ucбудет использоваться реестр моделей MLflow в каталоге Unity (дополнительные сведения см. в разделе "Управление жизненным циклом модели в каталоге Unity "). Имена моделей, зарегистрированных в каталоге Unity, имеют форму <catalog>.<schema>.<model>. При вызове API, требующих зарегистрированного имени модели, например mlflow.register_model, используется полное трехуровневое имя.

Для рабочих областей с включенным Unity Catalog и каталога по умолчанию в Unity Catalog, вы также можете использовать <model> в качестве имени, и каталог по умолчанию и схема будут автоматически выводиться (без изменения поведения по сравнению с MLflow 2.x). Если в рабочей области активирован Unity Catalog, но его каталог по умолчанию не настроен для использования вместе с Unity Catalog, необходимо указать полное трехуровневое имя.

Databricks рекомендует использовать реестр моделей MLflow в каталоге Unity для управления жизненным циклом моделей.

Если вы хотите продолжить использование реестра моделей рабочего пространства (устаревшая версия), используйте один из следующих методов, чтобы задать URI реестра следующим образом: databricks

Другие важные изменения

  • Клиенты MLflow 3 могут загружать все запуски, модели и трассировки, зарегистрированные с помощью клиентов MLflow 2.x. Однако обратное не обязательно верно, поэтому модели и трассировки, зарегистрированные с помощью клиентов MLflow 3, могут не быть загружены с более старыми версиями клиента 2.x.
  • API mlflow.evaluate устарел. Для традиционных моделей машинного обучения или глубокого обучения используйте mlflow.models.evaluate, который поддерживает полную совместимость с исходным mlflow.evaluate API. Вместо этого используйте mlflow.genai.evaluate API для приложений LLMs или GenAI.
  • Атрибут run_uuid был удален из RunInfo объекта. Используйте run_id вместо этого в вашем коде.

Установка MLflow 3

Чтобы использовать MLflow 3, необходимо обновить пакет, чтобы использовать правильную версию (>= 3.0). При каждом запуске записной книжки должны выполняться следующие строки кода:

%pip install mlflow>=3.0 --upgrade
dbutils.library.restartPython()

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

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

Limitation

Хотя логирование модели Spark (mlflow.spark.log_model) продолжает работать в MLflow 3, оно не использует новую LoggedModel концепцию. Модели, зарегистрированные с помощью ведения журнала моделей Spark, продолжают использовать запуски MLflow 2.x и артефакты выполнения.

Дальнейшие шаги

Дополнительные сведения о новых возможностях MLflow 3 см. в следующих статьях: