Обучение с помощью проектов MLflow в Машинное обучение Azure (предварительная версия)

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

Предупреждение

MLproject Поддержка файлов (MLflow Projects) в Машинное обучение Azure будет полностью прекращена в сентябре 2026 года. MLflow по-прежнему полностью поддерживается и по-прежнему рекомендуется отслеживать рабочие нагрузки машинного обучения в Машинное обучение Azure.

Продолжая использовать MLflow, рекомендуется перейти из файлов в MLproject задания Машинное обучение Azure с помощью Azure CLI или пакета SDK Машинное обучение Azure для Python (версии 2). Дополнительные сведения о заданиях Машинное обучение Azure см. в разделе "Отслеживание экспериментов и моделей машинного обучения" с помощью MLflow.

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

Важно!

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

Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Узнайте больше об интеграции MLflow и Машинное обучение Azure.

Необходимые компоненты

  • Установите пакет mlflow SDK MLflow и подключаемый модуль Машинное обучение Azure для MLflowazureml-mlflow.

    pip install mlflow azureml-mlflow
    

    Совет

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

  • Рабочая область Машинного обучения Azure. Вы можете создать его, следуя руководству по созданию ресурсов машинного обучения.

  • Если вы выполняете удаленное отслеживание (то есть выполняется отслеживание экспериментов, выполняемых вне Машинное обучение Azure), настройте MLflow для указания URI отслеживания рабочей области Машинное обучение Azure. Дополнительные сведения о подключении MLflow к рабочей области см. в разделе "Настройка MLflow" для Машинное обучение Azure.

  • Использование Машинное обучение Azure в качестве серверной части для проектов MLflow требует пакетаazureml-core:

    pip install azureml-core
    

Подключение к рабочей области

Если вы работаете вне Машинное обучение Azure, необходимо настроить MLflow, чтобы указать URI отслеживания Машинное обучение Azure рабочей области. Инструкции по настройке MLflow для Машинное обучение Azure см. в статье "Настройка MLflow".

Отслеживание проектов MLflow в рабочих областях Машинное обучение Azure

В этом примере показано, как отправлять проекты MLflow и отслеживать их Машинное обучение Azure.

  1. Добавьте пакет azureml-mlflow в качестве зависимости PIP в файл конфигурации окружения, чтобы отслеживать метрики и ключевые артефакты в рабочей области.

    conda.yaml

    name: mlflow-example
    channels:
      - defaults
    dependencies:
      - numpy>=1.14.3
      - pandas>=1.0.0
      - scikit-learn
      - pip:
        - mlflow
        - azureml-mlflow
    
  2. Отправьте локальный запуск и убедитесь, что вы задали параметр backend = "azureml", который добавляет поддержку автоматического отслеживания, записи модели, файлов журналов, моментальных снимков и печатных ошибок в рабочей области. В этом примере предполагается, что проект MLflow, который вы пытаетесь запустить, находится в той же папке, uri="."что и сейчас.

    mlflow run . --experiment-name  --backend azureml --env-manager=local -P alpha=0.3
    

    Просматривайте запуски и метрики в Студии машинного обучения Azure.

Обучение проектов MLflow в заданиях Машинное обучение Azure

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

  1. Создайте объект конфигурации серверной части, в этом случае мы будем указывать COMPUTE. Этот параметр ссылается на имя удаленного вычислительного кластера, который вы хотите использовать для запуска проекта. Если COMPUTE он присутствует, проект будет автоматически отправлен в качестве задания Машинное обучение Azure указанному вычислению.

    backend_config.json

    {
        "COMPUTE": "cpu-cluster"
    }
    
    
  2. Добавьте пакет azureml-mlflow в качестве зависимости PIP в файл конфигурации окружения, чтобы отслеживать метрики и ключевые артефакты в рабочей области.

    conda.yaml

    name: mlflow-example
    channels:
      - defaults
    dependencies:
      - numpy>=1.14.3
      - pandas>=1.0.0
      - scikit-learn
      - pip:
        - mlflow
        - azureml-mlflow
    
  3. Отправьте локальный запуск и убедитесь, что вы задали параметр backend = "azureml", который добавляет поддержку автоматического отслеживания, записи модели, файлов журналов, моментальных снимков и печатных ошибок в рабочей области. В этом примере предполагается, что проект MLflow, который вы пытаетесь запустить, находится в той же папке, uri="."что и сейчас.

    mlflow run . --backend azureml --backend-config backend_config.json -P alpha=0.3
    

    Примечание.

    Так как Машинное обучение Azure задания всегда выполняются в контексте сред, параметр env_manager игнорируется.

    Просматривайте запуски и метрики в Студии машинного обучения Azure.

Очистка ресурсов

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

  1. На портале Azure выберите Группы ресурсов в левой части окна.

    Image showing how to delete an Azure resource group.

  2. В списке выберите созданную группу ресурсов.

  3. Выберите команду Удалить группу ресурсов.

  4. Введите имя группы ресурсов. Затем выберите Удалить.

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

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

Примечание.

Репозиторий примеров использования MLflow, поддерживаемый сообществом, можно найти здесь: https://github.com/Azure/azureml-examples.

Следующие шаги