Эксперименты машинного обучения в Microsoft Fabric
Эксперимент машинного обучения является основным подразделением организации и контролем для всех связанных запусков машинного обучения. Выполнение соответствует одному выполнению кода модели. В MLflow отслеживание основано на экспериментах и запусках.
Эксперименты машинного обучения позволяют специалистам по обработке и анализу данных регистрировать параметры, версии кода, метрики и выходные файлы при выполнении кода машинного обучения. Эксперименты также позволяют визуализировать, искать и сравнивать запуски, а также скачивать файлы запуска и метаданные для анализа в других средствах.
В этой статье вы узнаете больше о том, как специалисты по обработке и анализу данных могут взаимодействовать и использовать эксперименты машинного обучения для организации процесса разработки и отслеживания нескольких запусков.
Необходимые компоненты
- Подписка Power BI Premium. Если у вас его нет, см. статью "Как приобрести Power BI Premium".
- Рабочая область Power BI с назначенной емкостью premium.
Создание эксперимента
Вы можете создать эксперимент машинного обучения непосредственно на домашней странице обработки и анализа данных в пользовательском интерфейсе Power BI или написать код, использующий API MLflow.
Создание эксперимента с помощью пользовательского интерфейса
Чтобы создать эксперимент машинного обучения из пользовательского интерфейса, выполните следующие действия.
Создайте новую рабочую область для обработки и анализа данных или выберите существующую.
Выберите "Эксперимент " в разделе "Создать".
Укажите имя эксперимента и нажмите кнопку "Создать". Это действие создает пустой эксперимент в рабочей области.
После создания эксперимента можно приступить к добавлению запусков для отслеживания метрик и параметров выполнения.
Создание эксперимента с помощью 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>")
Управление выполнением в эксперименте
Эксперимент машинного обучения содержит коллекцию запусков для упрощенного отслеживания и сравнения. В эксперименте специалист по обработке и анализу данных может перемещаться по различным запускам и изучать базовые параметры и метрики. Специалисты по обработке и анализу данных также могут сравнивать запуски в эксперименте машинного обучения, чтобы определить, какой подмножество параметров обеспечивает необходимую производительность модели.
Отслеживание запусков
Запуск машинного обучения соответствует одному выполнению кода модели.
Каждый запуск содержит следующие сведения:
- Источник: имя записной книжки, созданной при выполнении.
- Зарегистрированная версия: указывает, сохранен ли запуск в качестве модели машинного обучения.
- Дата начала: время начала выполнения.
- Состояние: ход выполнения.
- Гиперпараметры: гиперпараметры, сохраненные в виде пар "ключ-значение". Ключи и значения являются строками.
- Метрики: выполнение метрик, сохраненных в виде пар "ключ-значение". Значение является числом.
- Выходные файлы: выходные файлы в любом формате. Например, можно записывать изображения, среды, модели и файлы данных.
Просмотр последних запусков
Кроме того, можно просмотреть последние запуски для эксперимента непосредственно из представления списка рабочих областей. Это представление позволяет отслеживать последние действия, быстро переходить к соответствующему приложению Spark и применять фильтры на основе состояния выполнения.
Сравнение и фильтрация запусков
Чтобы сравнить и оценить качество выполнения машинного обучения, можно сравнить параметры, метрики и метаданные между выбранными запусками в эксперименте.
Визуальное сравнение запусков
Визуальное сравнение и фильтрация выполняется в существующем эксперименте. Визуальное сравнение позволяет легко перемещаться между несколькими запусками и сортировать по ним.
Чтобы сравнить запуски, выполните приведенные ниже действия.
- Выберите существующий эксперимент машинного обучения, содержащий несколько запусков.
- Выберите вкладку "Вид", а затем перейдите в представление списка "Запуск". Кроме того, можно выбрать параметр просмотра списка выполнения непосредственно в представлении сведений о выполнении.
- Настройте столбцы в таблице, разверните область "Настройка столбцов ". Здесь можно выбрать свойства, метрики и гиперпараметры, которые вы хотите просмотреть.
- Разверните область фильтра, чтобы сузить результаты на основе определенных выбранных критериев.
- Выберите несколько запусков, чтобы сравнить результаты в области сравнения метрик. На этой панели можно настроить диаграммы, изменив название диаграммы, тип визуализации, ось 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, созданных в каждой ячейке записной книжки. Мини-приложение позволяет отслеживать запуски, связанные метрики, параметры и свойства прямо до отдельного уровня ячейки.
Чтобы получить визуальное сравнение, можно также переключиться в представление сравнения запуска. Это представление представляет данные графически, помогая быстрой идентификации шаблонов или отклонений в разных запусках.
Сохранение запуска в качестве модели машинного обучения
После того как выполнение даст нужный результат, можно сохранить запуск в качестве модели для расширенного отслеживания моделей и развертывания модели, выбрав "Сохранить как модель машинного обучения".