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


Обучение с помощью проектов 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.

Предпосылки

  • Установите пакет SDK MLflow mlflow и плагин Azure Machine Learning azureml-mlflow для MLflow следующим образом:

    pip install mlflow azureml-mlflow
    

    Подсказка

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

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

  • Чтобы выполнить удаленное отслеживание или отслеживать эксперименты, выполняемые вне Azure Machine Learning, настройте MLflow так, чтобы он указывал на URI отслеживания вашего рабочего пространства Azure Machine Learning. Дополнительные сведения о подключении 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 Machine Learning.

  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 выберите Группы ресурсов в левой части окна.

    Изображение, показывающее, как удалить группу ресурсов Azure.

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

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

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

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

Записные книжки MLflow с Azure Machine Learning демонстрируют и поясняют концепции, представленные в этой статье.

Замечание

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

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