Эксперименты машинного обучения в Microsoft Fabric

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

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

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

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

  • Подписка Power BI Premium. Если у вас его нет, см. статью "Как приобрести Power BI Premium".
  • Рабочая область Power BI с назначенной емкостью premium.

Создание эксперимента

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

Создание эксперимента с помощью пользовательского интерфейса

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

  1. Создайте новую рабочую область для обработки и анализа данных или выберите существующую.

  2. Выберите "Эксперимент " в разделе "Создать".

  3. Укажите имя эксперимента и нажмите кнопку "Создать". Это действие создает пустой эксперимент в рабочей области.

    Screenshot showing where to select Experiment in the New menu.

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

Создание эксперимента с помощью API MLflow

Вы также можете создать эксперимент машинного обучения непосредственно из интерфейса разработки с помощью mlflow.create_experiment() api или mlflow.set_experiment() API. В следующем коде замените <EXPERIMENT_NAME> имя эксперимента.

import mlflow
 
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")

# This will set the given experiment as the active experiment. 
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")

Управление выполнением в эксперименте

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

Отслеживание запусков

Запуск машинного обучения соответствует одному выполнению кода модели.

Screenshot of machine learning run detail page.

Каждый запуск содержит следующие сведения:

  • Источник: имя записной книжки, созданной при выполнении.
  • Зарегистрированная версия: указывает, сохранен ли запуск в качестве модели машинного обучения.
  • Дата начала: время начала выполнения.
  • Состояние: ход выполнения.
  • Гиперпараметры: гиперпараметры, сохраненные в виде пар "ключ-значение". Ключи и значения являются строками.
  • Метрики: выполнение метрик, сохраненных в виде пар "ключ-значение". Значение является числом.
  • Выходные файлы: выходные файлы в любом формате. Например, можно записывать изображения, среды, модели и файлы данных.

Просмотр последних запусков

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

Screenshot of machine learning recent runs and Spark application view.

Сравнение и фильтрация запусков

Чтобы сравнить и оценить качество выполнения машинного обучения, можно сравнить параметры, метрики и метаданные между выбранными запусками в эксперименте.

Визуальное сравнение запусков

Визуальное сравнение и фильтрация выполняется в существующем эксперименте. Визуальное сравнение позволяет легко перемещаться между несколькими запусками и сортировать по ним.

Screenshot showing a list of runs and the chart view.

Чтобы сравнить запуски, выполните приведенные ниже действия.

  1. Выберите существующий эксперимент машинного обучения, содержащий несколько запусков.
  2. Выберите вкладку "Вид", а затем перейдите в представление списка "Запуск". Кроме того, можно выбрать параметр просмотра списка выполнения непосредственно в представлении сведений о выполнении.
  3. Настройте столбцы в таблице, разверните область "Настройка столбцов ". Здесь можно выбрать свойства, метрики и гиперпараметры, которые вы хотите просмотреть.
  4. Разверните область фильтра, чтобы сузить результаты на основе определенных выбранных критериев.
  5. Выберите несколько запусков, чтобы сравнить результаты в области сравнения метрик. На этой панели можно настроить диаграммы, изменив название диаграммы, тип визуализации, ось X, ось Y и многое другое.

Сравнение запусков с помощью API MLflow

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

Получение всех запусков

Api mlflow.search_runs() поиска MLflow можно использовать для получения всех запусков в эксперименте, заменив <EXPERIMENT_NAME> его именем <EXPERIMENT_ID> или идентификатором эксперимента в следующем коде:

import mlflow

# Get runs by experiment name: 
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])

# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])

Совет

Вы можете выполнять поиск по нескольким экспериментам, предоставляя список идентификаторов экспериментов параметру experiment_ids . Аналогичным образом, предоставление списка имен экспериментов параметру experiment_names позволит MLflow выполнять поиск по нескольким экспериментам. Это может быть полезно, если вы хотите сравнить между запусками в различных экспериментах.

Порядок и ограничение запусков

max_results Используйте этот параметр, search_runs чтобы ограничить количество возвращенных запусков. Параметр order_by позволяет перечислять столбцы для упорядочивания и содержать необязательное DESC или ASC значение. Например, в следующем примере возвращается последний запуск эксперимента.

mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])

Сравнение запусков в записной книжке Fabric

Мини-приложение разработки MLFlow в записных книжках Fabric можно использовать для отслеживания запусков MLflow, созданных в каждой ячейке записной книжки. Мини-приложение позволяет отслеживать запуски, связанные метрики, параметры и свойства прямо до отдельного уровня ячейки.

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

Screenshot showing how to use the MLFlow authoring widget.

Сохранение запуска в качестве модели машинного обучения

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

Screenshot showing where to select Create a new model.