Поделиться через


Начало работы с MLflow 3

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

Что такое MLflow 3 и как отличается от существующей версии MLflow?

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

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

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

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

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

  • Аннотируйте запросы и ответы (трассировки) для комплексного наблюдения за всеми вашими генеративными AI приложениями и агентами, что позволяет экспертам и автоматизированным методам LLM в качестве судьи предоставлять богатую обратную связь. Эти отзывы можно использовать для оценки и сравнения производительности версий приложений и создания наборов данных для улучшения качества.

Вкладка трассировки страницы модели с подробными сведениями о нескольких трассировках.

  • Оценивайте приложения GenAI в большом масштабе с помощью нового mlflow.genai.evaluate() API с встроенными и пользовательскими судьями LLM для точности, релевантности, безопасности и многого другого, оценивая качество приложений GenAI во время разработки и на этапе производства.

Вкладка

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

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

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

Наблюдаемость и оценка GenAI

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

MLflow 3 обеспечивает высокоуровневую поддержку для LLM-судьи и человеческой обратной связи непосредственно в трассировках MLflow с помощью новой функции оценок. Новый mlflow.genai.evaluate() API предлагает более простой, более мощный подход к оценке, интегрируя судей LLM при помощи Agent Evaluation в пакет SDK MLflow. С поддержкой как готовых, так и пользовательских оценщиков вы можете быть уверены в качестве ваших приложений GenAI перед развертыванием. Кроме того, API оценки агента Databricks для арбитров, наборов данных и сессий маркировки (Review App) теперь унифицированы под mlflow.genai пространством имен для беспрепятственного опыта. Дополнительные сведения см. в разделе MLflow 3 для GenAI.

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

Большая часть новых функций MLflow 3 является производным от новой концепции LoggedModel. При разработке генеративных приложений или агентов ИИ разработчики могут создавать LoggedModels фиксации изменений в git или наборы параметров в качестве объектов, которые могут быть связаны с трассировками и метриками. Для глубокого обучения и классических приложений 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 и каталогом по умолчанию в каталоге Unity, можно также использовать <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.genai.evaluate API для приложений LLMs или GenAI. Для традиционных моделей машинного обучения или глубокого обучения используйте mlflow.models.evaluate, который обеспечивает полную совместимость с оригинальным mlflow.evaluate API.
  • Атрибут run_uuid был удален из RunInfo объекта. Используйте run_id вместо этого в вашем коде.

Установка MLflow 3

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

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

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

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

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

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