Просмотр результатов обучения с помощью запусков MLflow
В этой статье описывается, как использовать запуски MLflow для просмотра и анализа результатов эксперимента обучения модели, а также управления ими. Дополнительные сведения об экспериментах MLflow см. в разделе Упорядочение учебных запусков с помощью экспериментов MLflow.
Запуск MFlflow соответствует однократному выполнению кода модели. Каждый запуск фиксирует информацию, такую как записная книжка, из которой он был запущен, любые модели, созданные в ходе выполнения, модель parameters и метрики, сохраненные в виде пар "ключ-значение", теги для метаданных запуска, а также любые артефакты или выходные файлы, созданные при выполнении.
Все запуски (циклы) MLflow регистрируются в активном эксперименте. Если вы явно не set эксперимента в качестве активного эксперимента, выполняется запись в эксперимент записной книжки.
Просмотр сведений о запуске
Вы можете получить доступ к запуску на странице сведений о эксперименте или непосредственно из записной книжки, в которой был создан запуск.
На странице сведений об эксперименте щелкните имя запуска в списке запусков table.
В блокноте щелкните имя запуска на боковой панели «Запуски эксперимента».
На экране запуска отображаются использованные для запуска parameters, полученные в результате выполнения метрики и информация о выполнении, включая ссылку на исходную записную книжку. Артефакты, сохраненные после запуска, доступны на вкладке Артефакты.
Фрагменты кода для прогнозирования
Если вы регистрируете модель из запуска, модель отображается на вкладке Артефакты, а также фрагменты кода, иллюстрирующие загрузку и использование модели для прогнозирования на кадрах данных Spark и Pandas.
Просмотр записной книжки, использованной для выполнения задачи
Чтобы просмотреть версию записной книжки, в которой был создан запуск, выполните указанные ниже действия.
- На странице сведений об эксперименте нажмите ссылку в источнике column.
- На странице запуска щелкните ссылку рядом с пунктом Source (Источник).
- В записной книжке на боковой панели "Эксперимент запускается" щелкните Notebook Version Iconзначок записной книжки в поле для выполнения эксперимента.
Версия записной книжки, связанной с выполнением, отображается в главной window с панелью выделения с датой и временем выполнения.
Добавление тега для запуска
Теги — это пары "ключ-значение", которые можно создавать и использовать для поиска запусков.
В
сведений настранице запуска щелкните Добавить рядом стегами. Откроется диалоговое окно добавления и редактирования тегов. В поле ключа
введите имя ключа и щелкните Добавить тег .В поле значения введите значение для тега.
Щелкните знак "плюс", чтобы сохранить только что введенную пару "ключ-значение".
Чтобы добавить дополнительные теги, повторите шаги 2–4.
По завершении нажмите кнопку Сохранить теги.
Изменение или удаление тега для запуска
В
сведения настранице запуска щелкните значок карандаша рядом с существующими тегами.. Откроется диалоговое окно добавления и редактирования тегов.
Чтобы удалить тег, щелкните X на этом теге.
Чтобы изменить тег, выберите select ключ из раскрывающегося меню и отредактируйте значение в поле Значение. Щелкните знак плюса, чтобы сохранить изменения.
По завершении нажмите кнопку Сохранить теги.
Воспроизведение программной среды запуска
Вы можете воспроизвести точную программную среду для выполнения, щелкнув Воспроизвести запуск в правом верхнем углу страницы запуска. Откроется следующее диалоговое окно:
Если выбраны параметры по умолчанию, при нажатии кнопки Confirm (Подтвердить):
- Записная книжка клонируется в расположении, которое отображается в диалоговом окне.
- Если исходный кластер по-прежнему существует, то клонированная записная книжка присоединяется к нему, и кластер запускается.
- Если исходный кластер больше не существует, создается и запускается новый кластер с такой же конфигурацией, включая все установленные библиотеки. Записная книжка присоединяется к новому кластеру.
Можно выбрать select другое расположение для клонированной записной книжки и проверить конфигурацию кластера и установленные библиотеки.
- Выберите select другую папку для сохранения клонированной записной книжки, щелкните Изменить папку.
- Чтобы просмотреть спецификацию кластера, щелкните View Spec (Просмотр спецификации). Чтобы клонировать только записную книжку, но не кластер, снимите этот флажок.
- Если исходный кластер больше не существует, вы можете просмотреть библиотеки, установленные в исходном кластере, щелкнув просмотреть библиотеки. Если исходный кластер по-прежнему существует, этот раздел затемнён.
Переименование запуска
Чтобы переименовать запуск, щелкните меню Kebab в правом верхнем углу страницы запуска (рядом с кнопкой Разрешения) и выберите selectПереименовать.
Select columns для отображения
Чтобы управлять columns, отображаемыми в table выполнения на странице сведений об эксперименте, щелкните Columns и select в раскрывающемся меню.
Фильтрация запусков
Вы можете искать запуски в table на странице сведений о эксперименте на основе параметров или метрик values. Также можно искать запуски по тегам.
Чтобы найти запуски, соответствующие выражению, содержащему параметр и метрики values, введите запрос в поле поиска и нажмите клавишу ВВОД. Ниже приведены примеры синтаксиса запросов.
metrics.r2 > 0.3
params.elasticNetParam = 0.5
params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3
MIN(metrics.rmse) <= 1
MAX(metrics.memUsage) > 0.9
LATEST(metrics.memUsage) = 0 AND MIN(metrics.rmse) <= 1
По умолчанию метрики values фильтруются на основе последнего зарегистрированного значения. Использование
MIN
илиMAX
позволяет выполнять поиск на основе минимальной или максимальной метрики valuesсоответственно. Только запуски, зарегистрированные после августа 2024 года, имеют минимальную и максимальную метрику values.Чтобы найти запуски по тегу, введите теги в таком формате:
tags.<key>="<value>"
. Строка values должна быть заключена в кавычки, как показано ниже.tags.estimator_name="RandomForestRegressor"
tags.color="blue" AND tags.size=5
Оба ключа и values могут содержать пробелы. Если ключ содержит пробелы, его необходимо заключить в обратные кавычки, как показано в примере.
tags.`my custom tag` = "my value"
Кроме того, можно отфильтровать запуски на основе их состояния (активного или удаленного), когда был создан запуск и какие наборы данных использовались. Для этого выберите из раскрывающихся меню: времени создания, состоянияили наборов данных.
Скачивание запусков
Вы можете скачать данные о запусках на странице сведений о эксперименте, следуя следующим шагам:
Щелкните , чтобы открыть меню кебаб.
Чтобы скачать файл в формате CSV, содержащий все пробеги (не более 100), selectнажмите "Скачать"
<n>
пробеги. MLflow создает и загружает файл, в котором каждой строке соответствует один запуск и который содержит следующие поля для каждого из запусков:Start Time, Duration, Run ID, Name, Source Type, Source Name, User, Status, <parameter1>, <parameter2>, ..., <metric1>, <metric2>, ...
Если вы хотите загрузить более 100 запусков или сделать это программно, selectСкачать все запуски. Откроется диалоговое окно с фрагментом кода, который можно скопировать или открыть в записной книжке. После выполнения этого кода в ячейке записной книжки selectвыгрузите все строкииз вывода ячейки.
Удаление запусков
Вы можете удалить запуски на странице сведений о эксперименте, выполнив следующие действия.
- В эксперименте select один или несколько запусков, щелкнув флажок слева от запуска.
- Нажмите Удалить.
- Если запуск является родительским, решите, нужно ли также удалить запуски-потомки. Этот параметр выбирается по умолчанию.
- Нажмите кнопку Удалить, чтобы подтвердить операцию. Удаленные запуски сохраняются в течение 30 дней. Чтобы отобразить удаленные запуски, selectDeleted в поле "Состояние".
Выполнение массового удаления на основе времени создания
Для массового удаления экспериментов, созданных до или в метке времени UNIX, можно использовать Python.
Используя Databricks Runtime 14.1 или более поздней версии, вы можете вызвать mlflow.delete_runs
API для удаления запусков и вернуть число удаленных запусков.
Ниже приведены mlflow.delete_runs
parameters:
-
experiment_id
: идентификатор эксперимента, содержащего запуски для удаления. -
max_timestamp_millis
: максимальная метка времени создания в миллисекундах с эпохи UNIX для удаления запусков. Удаляются только запуски, созданные до или в данный момент времени. -
max_runs
: необязательный параметр. Положительное целое число, указывающее максимальное количество запусков для удаления. Максимально допустимое значение для max_runs равно 10000. Если значение не указано,max_runs
по умолчанию используется значение 10000.
import mlflow
# Replace <experiment_id>, <max_timestamp_ms>, and <max_runs> with your values.
runs_deleted = mlflow.delete_runs(
experiment_id=<experiment_id>,
max_timestamp_millis=<max_timestamp_ms>,
max_runs=<max_runs>
)
# Example:
runs_deleted = mlflow.delete_runs(
experiment_id="4183847697906956",
max_timestamp_millis=1711990504000,
max_runs=10
)
С помощью Databricks Runtime 13.3 LTS или более ранней версии можно запустить следующий клиентский код в записной книжке Azure Databricks.
from typing import Optional
def delete_runs(experiment_id: str,
max_timestamp_millis: int,
max_runs: Optional[int] = None) -> int:
"""
Bulk delete runs in an experiment that were created prior to or at the specified timestamp.
Deletes at most max_runs per request.
:param experiment_id: The ID of the experiment containing the runs to delete.
:param max_timestamp_millis: The maximum creation timestamp in milliseconds
since the UNIX epoch for deleting runs. Only runs
created prior to or at this timestamp are deleted.
:param max_runs: Optional. A positive integer indicating the maximum number
of runs to delete. The maximum allowed value for max_runs
is 10000. If not specified, max_runs defaults to 10000.
:return: The number of runs deleted.
"""
from mlflow.utils.databricks_utils import get_databricks_host_creds
from mlflow.utils.request_utils import augmented_raise_for_status
from mlflow.utils.rest_utils import http_request
json_body = {"experiment_id": experiment_id, "max_timestamp_millis": max_timestamp_millis}
if max_runs is not None:
json_body["max_runs"] = max_runs
response = http_request(
host_creds=get_databricks_host_creds(),
endpoint="/api/2.0/mlflow/databricks/runs/delete-runs",
method="POST",
json=json_body,
)
augmented_raise_for_status(response)
return response.json()["runs_deleted"]
См. документацию по API экспериментов Azure Databricks для parameters и спецификации возвращаемых значений для удаления запусков по времени их создания.
запуски Restore
Вы можете restore ранее удаленные запуски из пользовательского интерфейса следующим образом:
- На странице эксперимента
в поле состояние удалено для отображения удаленных запусков. - Select один или несколько запусков, щелкнув флажок слева от запуска.
- Щелкните Restore.
- Щелкните Restore, чтобы подтвердить. Восстановленные запуски теперь отображаются, когда в поле "Состояние" указано selectActive.
массовая restore выполняется в зависимости от времени удаления
Вы также можете использовать Python для массового restore запусков эксперимента, которые были удалены в момент или после метки времени UNIX.
С помощью Databricks Runtime 14.1 или более поздней версии можно вызвать API mlflow.restore_runs
для restore запусков и вернуть количество восстановленных запусков.
Ниже приведены mlflow.restore_runs
parameters:
-
experiment_id
: идентификатор эксперимента, содержащего запуски, предназначенные для restore. -
min_timestamp_millis
: минимальная метка времени удаления в миллисекундах с момента эпохи UNIX для восстановления запусков. Восстанавливаются только удаленные или после этого метки времени. -
max_runs
: необязательный параметр. Положительное целое число, указывающее максимальное количество запусков до restore. Максимально допустимое значение для max_runs равно 10000. Если значение не указано, max_runs по умолчанию — 10000.
import mlflow
# Replace <experiment_id>, <min_timestamp_ms>, and <max_runs> with your values.
runs_restored = mlflow.restore_runs(
experiment_id=<experiment_id>,
min_timestamp_millis=<min_timestamp_ms>,
max_runs=<max_runs>
)
# Example:
runs_restored = mlflow.restore_runs(
experiment_id="4183847697906956",
min_timestamp_millis=1711990504000,
max_runs=10
)
С помощью Databricks Runtime 13.3 LTS или более ранней версии можно запустить следующий клиентский код в записной книжке Azure Databricks.
from typing import Optional
def restore_runs(experiment_id: str,
min_timestamp_millis: int,
max_runs: Optional[int] = None) -> int:
"""
Bulk restore runs in an experiment that were deleted at or after the specified timestamp.
Restores at most max_runs per request.
:param experiment_id: The ID of the experiment containing the runs to restore.
:param min_timestamp_millis: The minimum deletion timestamp in milliseconds
since the UNIX epoch for restoring runs. Only runs
deleted at or after this timestamp are restored.
:param max_runs: Optional. A positive integer indicating the maximum number
of runs to restore. The maximum allowed value for max_runs
is 10000. If not specified, max_runs defaults to 10000.
:return: The number of runs restored.
"""
from mlflow.utils.databricks_utils import get_databricks_host_creds
from mlflow.utils.request_utils import augmented_raise_for_status
from mlflow.utils.rest_utils import http_request
json_body = {"experiment_id": experiment_id, "min_timestamp_millis": min_timestamp_millis}
if max_runs is not None:
json_body["max_runs"] = max_runs
response = http_request(
host_creds=get_databricks_host_creds(),
endpoint="/api/2.0/mlflow/databricks/runs/restore-runs",
method="POST",
json=json_body,
)
augmented_raise_for_status(response)
return response.json()["runs_restored"]
См. документацию по API экспериментов Azure Databricks для parameters и спецификации возвращаемых значений для восстановления запусков на основе времени их удаления.
Сравнение запусков
Вы можете сравнить выполнения из одного или нескольких экспериментов. На странице Сравнение выполнений представлены сведения о выбранных выполнениях в графическом и табличном форматах. Вы также можете создавать визуализации результатов выполнения, tables сведений о выполнении и метрик, запускать parameters.
Чтобы создать визуализацию:
-
Select тип графика (параллельные координаты, точечный графикили контурный график).
Для параллельных координатselectparameters и метрики для построения. Здесь можно определить связи между выбранными parameters и метриками, что помогает лучше определить пространство настройки гиперпараметров для моделей.
Для точечной диаграммы или контурной диаграммыукажите select параметр или метрику для отображения на каждой оси.
Метрики Parameters и tables отображают запуск parameters и метрики всех выбранных запусков. В этих
Сравнение выполнений из одного эксперимента
- На странице сведений о эксперименте , select два или более запусков, щелкнув флажок слева от выполнения или select все запуски, установив флажок в верхней части column.
- Щелкните Compare (Сравнить). Откроется экран сравнения
<N>
запусков.
Сравнение выполнений из нескольких экспериментов
- На странице экспериментоввыберите эксперименты, которые вы хотите сравнить, нажав на поле слева от названия эксперимента select.
- Щелкните Сравнить (n) (n — количество выбранных экспериментов). Откроется экран со всеми выполнениями из выбранных экспериментов.
- Select два или более запусков, щелкнув флажок слева от запуска или select все запуски, установив флажок в верхней части column.
- Щелкните Compare (Сравнить). Откроется экран сравнения
<N>
запусков.
Копирование выполнений между рабочими областями
Чтобы импортировать или экспортировать выполнения MLflow в рабочую область Databricks или из нее, вы можете использовать управляемый сообществом проект с открытым кодом MLflow Export-Import.