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


Справочник по системным таблицам MLflow

Это важно

Таблицы системы MLflow находятся в общедоступной предварительной версии.

Системные mlflow таблицы записывают метаданные эксперимента, управляемые в службе отслеживания MLflow. Эти таблицы позволяют привилегированным пользователям воспользоваться преимуществами инструментов Databricks lakehouse для данных MLflow во всех рабочих областях в регионе. Таблицы можно использовать для создания пользовательских панелей мониторинга ИИ/BI, настройки оповещений SQL или выполнения крупномасштабных аналитических запросов.

С помощью системных mlflow таблиц пользователи могут отвечать на такие вопросы:

  • Какие эксперименты имеют самую низкую надежность?
  • Что такое среднее использование GPU в разных экспериментах?

Замечание

Системные mlflow таблицы начали записывать данные MLflow из всех регионов 2 сентября 2025 года. Данные до этой даты могут быть недоступны.

Доступные таблицы

Схема mlflow содержит следующие таблицы:

  • system.mlflow.experiments_latest: записывает имена экспериментов и события обратимого удаления. Эти данные похожи на страницу экспериментов в пользовательском интерфейсе MLflow.
  • system.mlflow.runs_latest: записывает сведения о жизненном цикле выполнения, парам и тегам, связанным с каждым выполнением, и агрегированным статистическим статистикой min, max и последними значениями всех метрик. Эти данные похожи на страницу сведений о выполнении поиска или выполнения.
  • system.mlflow.run_metrics_history: записывает имя, значение, метку времени и шаг всех метрик, зарегистрированных во время выполнения, которые можно использовать для построения подробных таймерий из запусков. Эти данные похожи на вкладку метрик на странице сведений о выполнении.

Ниже приведен пример построения сведений о выполнении с помощью панели мониторинга:

Панель мониторинга сведений о выполнении

Схемы таблиц

Ниже приведены схемы таблиц с описаниями и примерами данных.

Схема ER

system.mlflow.experiments_latest

Имя столбца Тип данных Description Example Нуллибельный
account_id струна Идентификатор учетной записи, содержащей эксперимент MLflow "bd59efba-4444-4444-443f-44444449203" нет
update_time отметка времени Системное время последнего обновления эксперимента 2024-06-27T00:58:57.000+00:00 нет
delete_time отметка времени Системное время, когда эксперимент MLflow был обратимо удален пользователем 2024-07-02T12:42:59.000+00:00 Да
experiment_id струна Идентификатор эксперимента MLflow "2667956459304720" нет
workspace_id струна Идентификатор рабочей области, содержащей эксперимент MLflow "6051921418418893" нет
name струна Имя эксперимента, предоставленное пользователем "/Users/first.last@databricks.com/myexperiment" нет
create_time отметка времени Системное время создания эксперимента 2024-06-27T00:58:57.000+00:00 нет

system.mlflow.runs_latest

Имя столбца Тип данных Description Example Нуллибельный
account_id струна Идентификатор учетной записи, содержащей запуск MLflow "bd59efba-4444-4444-443f-44444449203" нет
update_time отметка времени Системное время последнего обновления запуска 2024-06-27T00:58:57.000+00:00 нет
delete_time отметка времени Системное время выполнения MLflow было обратимо удалено пользователем. 2024-07-02T12:42:59.000+00:00 Да
workspace_id струна Идентификатор рабочей области, содержащей запуск MLflow "6051921418418893" нет
run_id струна Идентификатор запуска MLflow "7716d750d279487c95f64a75bff2ad56" нет
experiment_id струна Идентификатор эксперимента MLflow, содержащего запуск MLflow "2667956459304720" нет
created_by струна Имя субъекта или пользователя Databricks, создавшего запуск MLflow "<user>@<domain-name>" Да
start_time отметка времени Указанное пользователем время запуска MLflow 2024-06-27T00:58:57.000+00:00 нет
end_time отметка времени Указанное пользователем время окончания выполнения MLflow 2024-07-02T12:42:59.000+00:00 Да
run_name струна Имя запуска MLflow "wistful-deer-932", "my-xgboost-training-run" нет
status струна Состояние выполнения запуска MLflow "FINISHED" нет
params строка карты<, строка> Параметры "Ключ-значение" запуска MLflow {"n_layers": "5", "batch_size": "64", "optimizer": "Adam"} нет
tags строка карты<, строка> Теги "Ключ-значение", заданные в выполнении MLflow {"ready_for_review": "true"} нет
aggregated_metrics строка структуры<списка<, double, double, double, double>> Агрегированное представление, обобщающее метрики в run_metrics_history [{"metric_name": "training_accuracy", "latest_value": 0.97, "min_value": 0.8, "max_value": 1.0}, ...] нет
aggregated_metrics.metric_name струна Указанное пользователем имя метрики "training_accuracy" нет
aggregated_metrics.latest_value двойной Последнее значение metric_name в временных рядах этого сочетания (запуск, metric_name) в run_metrics_history 0.97 нет
aggregated_metrics.max_value двойной Максимальное значение metric_name в временных рядах этого сочетания (run, metric_name) в run_metrics_history. Если для метрики записано какое-либо значение NaN, значение будет naN 1.0 нет
aggregated_metrics.min_value двойной Минимальное значение metric_name в временных рядах этого сочетания (run, metric_name) в run_metrics_history. Если для метрики записано какое-либо значение NaN, значение будет naN 0.8 нет

system.mlflow.run_metrics_history

Имя столбца Тип данных Description Example Нуллибельный
account_id струна Идентификатор учетной записи, содержащей запуск MLflow, в который была зарегистрирована метрика. "bd59efba-4444-4444-443f-44444449203" нет
insert_time отметка времени Системное время вставки метрик 2024-06-27T00:58:57.000+00:00 нет
record_id струна Уникальный идентификатор метрики для различения идентичных значений "Ae1mDT5gFMSUwb+UUTuXMQ==" нет
workspace_id струна Идентификатор рабочей области, содержащей запуск MLflow, в котором зарегистрирована метрика. "6051921418418893" нет
experiment_id струна Идентификатор эксперимента MLflow, содержащего запуск MLflow, в котором зарегистрирована метрика. "2667956459304720" нет
run_id струна Идентификатор запуска MLflow, в который была зарегистрирована метрика. "7716d750d279487c95f64a75bff2ad56" нет
metric_name струна Имя метрики "training_accuracy" нет
metric_time отметка времени Указанное пользователем время вычисления метрики 2024-06-27T00:55:54.1231+00:00 нет
metric_step Бигинт Шаг (например, эпоха) обучения модели или разработки агента, с которой регистрировались метрики. 10 нет
metric_value двойной Значение метрики 0.97 нет

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

По умолчанию только администраторы учетных записей имеют доступ к системным схемам. Чтобы предоставить дополнительным пользователям доступ к таблицам, администратор учетной записи должен предоставить им разрешения USE и SELECT разрешения на схему system.mlflow. . Ознакомьтесь с привилегиями каталога Unity и защищаемыми объектами.

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

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

Замечание

Невозможно напрямую синхронизировать разрешения эксперимента MLflow с разрешениями каталога Unity.

Примеры вариантов использования метаданных MLflow

В следующих разделах приведены примеры использования системных таблиц MLflow для ответов на вопросы о экспериментах И запусках MLflow.

Настройка оповещения SQL для низкой надежности экспериментов

С помощью оповещений Databricks SQL (общедоступная предварительная версия) можно запланировать регулярно повторяющийся запрос и получать уведомления, если определенные ограничения больше не выполнены.

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

Замечание

Функция оповещений SQL в настоящее время доступна в общедоступной предварительной версии, и вы также можете использовать устаревшие оповещения .

  1. Щелкните оповещения значков оповещений на боковой панели и нажмите кнопку "Создать оповещение".

  2. Скопируйте и вставьте следующий запрос в редакторе запросов.

     SELECT
       experiment_id,
       AVG(CASE WHEN status = 'FINISHED' THEN 1.0 ELSE 0.0 END) AS success_ratio,
       COUNT(status) AS run_count
     FROM system.mlflow.runs_latest
     WHERE status IS NOT NULL
     GROUP BY experiment_id
     ORDER BY run_count DESC
     LIMIT 20;
    
  3. В поле "Условие" задайте для условий MIN success_ratio < 0.9значение . Это вызовет оповещение, если любой из первых 20 экспериментов (по количеству запусков) имеет отношение успешности менее 90%.

Кроме того, можно протестировать условие, задать расписание и настроить уведомления. Дополнительные сведения о настройке оповещения см. в статье о настройке оповещения SQL. Ниже приведен пример конфигурации с помощью запроса.

Конфигурация оповещений SQL

Примеры запросов

Для получения сведений о действиях MLflow в учетной записи с помощью Databricks SQL можно использовать следующие примеры запросов. Вы также можете использовать такие инструменты, как записные книжки Python, с помощью Spark.

Получение сведений о выполнении из runs_latest

SELECT
  run_name,
  date(start_time) AS start_date,
  status,
  TIMESTAMPDIFF(MINUTE, start_time, end_time) AS run_length_minutes
FROM system.mlflow.runs_latest
WHERE
  experiment_id = :experiment_id
  AND run_id = :run_id
LIMIT 1

Это возвращает сведения о заданном выполнении:

Сведения о выполнении результатов запроса

Получение сведений о эксперименте и выполнении из experiments_latest и runs_latest

SELECT
  runs.run_name,
  experiments.name,
  date(runs.start_time) AS start_date,
  runs.status,
  TIMESTAMPDIFF(MINUTE, runs.start_time, runs.end_time) AS run_length_minutes
FROM system.mlflow.runs_latest runs
  JOIN system.mlflow.experiments_latest experiments ON runs.experiment_id = experiments.experiment_id
  WHERE
    runs.experiment_id = :experiment_id
    AND runs.run_id = :run_id
LIMIT 1

Получение сводной статистики для заданного запуска из run_metrics_history

SELECT
  metric_name,
  count(metric_time) AS num_data_points,
  ROUND(avg(metric_value), 1) AS avg,
  ROUND(max(metric_value), 1) AS max,
  ROUND(min(metric_value), 1) AS min,
  ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY metric_value), 1) AS pct_25,
  ROUND(PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY metric_value), 1) AS median,
  ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY metric_value), 1) AS pct_75
FROM
  system.mlflow.run_metrics_history
WHERE
  run_id = :run_id
GROUP BY
  metric_name, run_id
LIMIT 100

При этом возвращается сводка метрик для заданного:run_id

Результаты запроса выполняют сводные метрики

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

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

Дополнительные сведения см. в разделе "Создание панелей мониторинга с метаданными MLflow" в системных таблицах