Aller au contenu principal

Référence des tables système MLflow

info

Aperçu

Les tables système MLflow sont en aperçu public.

Les tables système mlflow recueillent les métadonnées d'expérimentation gérées au sein du service de suivi MLflow. Ces tables permettent aux utilisateurs privilégiés de tirer parti des outils lakehouse Databricks sur leurs données MLflow dans tous les workspaces de la région. Vous pouvez utiliser les tables pour créer des tableaux de bord AI/BI personnalisés, configurer des alertes SQL ou exécuter des requêtes analytiques à grande échelle.

Grâce aux tables système mlflow, les utilisateurs peuvent répondre à des questions telles que :

  • Quelles expérimentations ont la fiabilité la plus faible ?
  • Quelle est l'utilisation moyenne du GPU à travers les différentes expérimentations ?
remarque

Les tables système mlflow ont commencé à enregistrer les données MLflow de toutes les régions le 2 septembre 2025. Les données antérieures à cette date pourraient ne pas être disponibles.

Tables disponibles

Le schéma mlflow comprend les tables suivantes :

  • system.mlflow.experiments_latest: Enregistre les noms d'expérimentation et les événements de suppression logicielle. Ces données sont similaires à la page d'expérimentations de l'interface utilisateur MLflow.
  • system.mlflow.runs_latest: Enregistre les informations sur le cycle de vie des exécutions, les paramètres et les balises associés à chaque exécution, ainsi que les statistiques agrégées des valeurs minimales, maximales et les plus récentes de toutes les métriques. Ces données sont similaires à la page de recherche ou de détails des exécutions.
  • system.mlflow.run_metrics_history: Enregistre le nom, la valeur, le timestamp et l'étape de toutes les métriques enregistrées lors des exécutions, qui peuvent être utilisés pour tracer des séries chronologiques détaillées à partir des exécutions. Ces données sont similaires à l'onglet des métriques sur la page de détails des exécutions.

Voici un exemple de traçage des informations d'exécution à l'aide d'un tableau de bord :

tableau de bord des détails d'exécution

Schémas de table

Vous trouverez ci-dessous les schémas de table avec les descriptions et les données d'exemple.

Diagramme ER

system.mlflow.experiments_latest

Nom de colonne

Type de données

Description

Exemple

Autorise les valeurs nulles

account_id

chaîne

L'ID du compte contenant l'expérience MLflow

"bd59efba-4444-4444-443f-44444449203"

Non

update_time

Horodatage

L’heure système de la dernière mise à jour de l’Experimentation.

2024-06-27T00:58:57.000+00:00

Non

delete_time

Horodatage

L'heure système à laquelle l'expérimentation MLflow a été supprimée de manière réversible par l'utilisateur.

2024-07-02T12:42:59.000+00:00

Oui

experiment_id

chaîne

L'ID de l'Expérimentation MLflow.

"2667956459304720"

Non

workspace_id

chaîne

L'ID du Workspace contenant l'expérience MLflow

"6051921418418893"

Non

name

chaîne

Nom de l'expérimentation fourni par l'utilisateur

"/Users/first.last@databricks.com/myexperiment"

Non

create_time

Horodatage

L'heure système à laquelle l'Expérimentation a été créée

2024-06-27T00:58:57.000+00:00

Non

Nom de colonne

Type de données

Description

Exemple

Autorise les valeurs nulles

account_id

chaîne

L'ID du compte contenant l'expérience MLflow

"bd59efba-4444-4444-443f-44444449203"

Non

update_time

Horodatage

L’heure système de la dernière mise à jour de l’Experimentation.

2024-06-27T00:58:57.000+00:00

Non

delete_time

Horodatage

L'heure système à laquelle l'expérimentation MLflow a été supprimée de manière réversible par l'utilisateur.

2024-07-02T12:42:59.000+00:00

Oui

experiment_id

chaîne

L'ID de l'Expérimentation MLflow.

"2667956459304720"

Non

workspace_id

chaîne

L'ID du Workspace contenant l'expérience MLflow

"6051921418418893"

Non

name

chaîne

Nom de l'expérimentation fourni par l'utilisateur

"/Users/first.last@databricks.com/myexperiment"

Non

create_time

Horodatage

L'heure système à laquelle l'Expérimentation a été créée

2024-06-27T00:58:57.000+00:00

Non

system.mlflow.runs_latest

Nom de colonne

Type de données

Description

Exemple

Autorise les valeurs nulles

account_id

chaîne

L'ID du compte contenant l'exécution MLflow

"bd59efba-4444-4444-443f-44444449203"

Non

update_time

Horodatage

L'heure système à laquelle l'exécution a été mise à jour pour la dernière fois

2024-06-27T00:58:57.000+00:00

Non

delete_time

Horodatage

Heure système à laquelle l’exécution MLflow a été supprimée de manière réversible par l’utilisateur.

2024-07-02T12:42:59.000+00:00

Oui

workspace_id

chaîne

L'ID du workspace contenant l'exécution MLflow

"6051921418418893"

Non

run_id

chaîne

L'ID de l'exécution MLflow

"7716d750d279487c95f64a75bff2ad56"

Non

experiment_id

chaîne

L'ID de l'expérience MLflow contenant l'exécution MLflow

"2667956459304720"

Non

created_by

chaîne

Nom du principal Databricks, de l'utilisateur ou du groupe qui a créé l'exécution MLflow

"<user>@<domain-name>"

Oui

start_time

Horodatage

L'heure spécifiée par l'utilisateur à laquelle l'exécution MLflow a start

2024-06-27T00:58:57.000+00:00

Non

end_time

Horodatage

L'heure spécifiée par l'utilisateur à laquelle l'exécution MLflow s'est terminée.

2024-07-02T12:42:59.000+00:00

Oui

run_name

chaîne

Le nom de l'exécution MLflow

"wistful-deer-932", "my-xgboost-training-run"

Non

status

chaîne

L'état d'exécution de l'exécution MLflow

"FINISHED"

Non

params

map<string, string\>

Paramètres clé-valeur de l'exécution MLflow

{"n_layers": "5", "batch_size": "64", "optimizer": "Adam"}

Non

tags

map<string, string\>

Tags clé-valeur définis sur l'exécution MLflow

{"ready_for_review": "true"}

Non

aggregated_metrics

list<struct<string, double, double, double>>

Une vue agrégée résumant les métriques dans le run_metrics_history

[{"metric_name": "training_accuracy", "latest_value": 0.97, "min_value": 0.8, "max_value": 1.0}, ...]

Non

aggregated_metrics.metric_name

chaîne

Le nom de la métrique spécifié par l'utilisateur

"training_accuracy"

Non

aggregated_metrics.latest_value

double

La dernière valeur du metric_name dans la série temporelle de cette combinaison (exécution, metric_name) dans run_metrics_history

0.97

Non

aggregated_metrics.max_value

double

La valeur maximale du nom de la métrique dans la série chronologique de cette combinaison (exécution, nom_métrique) dans l'historique_métriques_exécutions. Si une valeur NaN a été enregistrée pour une métrique, la valeur sera NaN

1.0

Non

aggregated_metrics.min_value

double

La valeur minimale du nom_de_la_métrique dans la série temporelle de cette combinaison (exécution, nom_de_la_métrique) dans l'historique des métriques d'exécution. Si une valeur NaN a été enregistrée pour une métrique, la valeur sera NaN

0.8

Non

Nom de colonne

Type de données

Description

Exemple

Autorise les valeurs nulles

account_id

chaîne

L'ID du compte contenant l'exécution MLflow

"bd59efba-4444-4444-443f-44444449203"

Non

update_time

Horodatage

L'heure système à laquelle l'exécution a été mise à jour pour la dernière fois

2024-06-27T00:58:57.000+00:00

Non

delete_time

Horodatage

Heure système à laquelle l’exécution MLflow a été supprimée de manière réversible par l’utilisateur.

2024-07-02T12:42:59.000+00:00

Oui

workspace_id

chaîne

L'ID du workspace contenant l'exécution MLflow

"6051921418418893"

Non

run_id

chaîne

L'ID de l'exécution MLflow

"7716d750d279487c95f64a75bff2ad56"

Non

experiment_id

chaîne

L'ID de l'expérience MLflow contenant l'exécution MLflow

"2667956459304720"

Non

created_by

chaîne

Nom du principal Databricks, de l'utilisateur ou du groupe qui a créé l'exécution MLflow

"<user>@<domain-name>"

Oui

start_time

Horodatage

L'heure spécifiée par l'utilisateur à laquelle l'exécution MLflow a start

2024-06-27T00:58:57.000+00:00

Non

end_time

Horodatage

L'heure spécifiée par l'utilisateur à laquelle l'exécution MLflow s'est terminée.

2024-07-02T12:42:59.000+00:00

Oui

run_name

chaîne

Le nom de l'exécution MLflow

"wistful-deer-932", "my-xgboost-training-run"

Non

status

chaîne

L'état d'exécution de l'exécution MLflow

"FINISHED"

Non

params

map<string, string\>

Paramètres clé-valeur de l'exécution MLflow

{"n_layers": "5", "batch_size": "64", "optimizer": "Adam"}

Non

tags

map<string, string\>

Tags clé-valeur définis sur l'exécution MLflow

{"ready_for_review": "true"}

Non

aggregated_metrics

list<struct<string, double, double, double>>

Une vue agrégée résumant les métriques dans le run_metrics_history

[{"metric_name": "training_accuracy", "latest_value": 0.97, "min_value": 0.8, "max_value": 1.0}, ...]

Non

aggregated_metrics.metric_name

chaîne

Le nom de la métrique spécifié par l'utilisateur

"training_accuracy"

Non

aggregated_metrics.latest_value

double

La dernière valeur du metric_name dans la série temporelle de cette combinaison (exécution, metric_name) dans run_metrics_history

0.97

Non

aggregated_metrics.max_value

double

La valeur maximale du nom de la métrique dans la série chronologique de cette combinaison (exécution, nom_métrique) dans l'historique_métriques_exécutions. Si une valeur NaN a été enregistrée pour une métrique, la valeur sera NaN

1.0

Non

aggregated_metrics.min_value

double

La valeur minimale du nom_de_la_métrique dans la série temporelle de cette combinaison (exécution, nom_de_la_métrique) dans l'historique des métriques d'exécution. Si une valeur NaN a été enregistrée pour une métrique, la valeur sera NaN

0.8

Non

system.mlflow.run_metrics_history

Nom de colonne

Type de données

Description

Exemple

Autorise les valeurs nulles

account_id

chaîne

L'ID du compte contenant l'exécution MLflow dans laquelle la métrique a été journalisée

"bd59efba-4444-4444-443f-44444449203"

Non

insert_time

Horodatage

L'heure système à laquelle la métrique a été insérée

2024-06-27T00:58:57.000+00:00

Non

record_id

chaîne

Un identifiant unique de la métrique pour distinguer les valeurs identiques

"Ae1mDT5gFMSUwb+UUTuXMQ=="

Non

workspace_id

chaîne

L'ID du workspace contenant l'exécution MLflow à laquelle la métrique a été enregistrée

"6051921418418893"

Non

experiment_id

chaîne

L'ID de l'expérimentation MLflow contenant l'exécution MLflow à laquelle la métrique a été journalisée.

"2667956459304720"

Non

run_id

chaîne

L'ID de l'exécution MLflow à laquelle la métrique a été journalisée

"7716d750d279487c95f64a75bff2ad56"

Non

metric_name

chaîne

Le nom de la métrique

"training_accuracy"

Non

metric_time

Horodatage

L'heure spécifiée par l'utilisateur à laquelle la métrique a été calculée

2024-06-27T00:55:54.1231+00:00

Non

metric_step

bigint

L'étape (par exemple, époque) de l'entraînement du modèle ou du développement de l'agent à laquelle la métrique a été enregistrée

10

Non

metric_value

double

La valeur de la métrique

0.97

Non

Nom de colonne

Type de données

Description

Exemple

Autorise les valeurs nulles

account_id

chaîne

L'ID du compte contenant l'exécution MLflow dans laquelle la métrique a été journalisée

"bd59efba-4444-4444-443f-44444449203"

Non

insert_time

Horodatage

L'heure système à laquelle la métrique a été insérée

2024-06-27T00:58:57.000+00:00

Non

record_id

chaîne

Un identifiant unique de la métrique pour distinguer les valeurs identiques

"Ae1mDT5gFMSUwb+UUTuXMQ=="

Non

workspace_id

chaîne

L'ID du workspace contenant l'exécution MLflow à laquelle la métrique a été enregistrée

"6051921418418893"

Non

experiment_id

chaîne

L'ID de l'expérimentation MLflow contenant l'exécution MLflow à laquelle la métrique a été journalisée.

"2667956459304720"

Non

run_id

chaîne

L'ID de l'exécution MLflow à laquelle la métrique a été journalisée

"7716d750d279487c95f64a75bff2ad56"

Non

metric_name

chaîne

Le nom de la métrique

"training_accuracy"

Non

metric_time

Horodatage

L'heure spécifiée par l'utilisateur à laquelle la métrique a été calculée

2024-06-27T00:55:54.1231+00:00

Non

metric_step

bigint

L'étape (par exemple, époque) de l'entraînement du modèle ou du développement de l'agent à laquelle la métrique a été enregistrée

10

Non

metric_value

double

La valeur de la métrique

0.97

Non

Partage de l'accès avec les utilisateurs

By default, seuls les administrateurs de compte ont accès aux schémas système. Pour donner aux utilisateurs supplémentaires l'accès aux tables, un administrateur de compte doit leur accorder les autorisations USE et SELECT sur le schéma system.mlflow.. Voir référence des privilèges Unity Catalog.

Tout utilisateur ayant accès à ces tables peut visualiser les métadonnées sur toutes les expérimentations MLflow pour tous les Workspaces du compte . Pour configurer l'accès à la table pour un groupe donné plutôt que pour des utilisateurs individuels, consultez les bonnes pratiques d'Unity Catalog.

Si vous avez besoin d'un contrôle plus granulaire que l'octroi d'un accès à tous les utilisateurs à la table, vous pouvez utiliser des vues dynamiques avec des critères personnalisés pour accorder un certain accès à des groupes. Par exemple, vous pourriez créer une vue qui n'affiche que les enregistrements d'un ensemble particulier d'ID d'Experimentation. Après avoir configuré une vue personnalisée, donnez le nom de la vue à vos utilisateurs afin qu'ils puissent interroger la vue dynamique plutôt que la table système directement.

remarque

Vous ne pouvez pas synchroniser directement les autorisations d'expérience MLflow avec les autorisations Unity Catalog.

Exemples de cas d'utilisation des métadonnées MLflow

Les sections suivantes donnent des exemples de la façon dont vous pouvez utiliser les tables système MLflow pour répondre à des questions sur vos expérimentations et exécutions MLflow.

Configurer une alerte SQL pour une faible fiabilité d'expérimentation

À l'aide des alertes Databricks SQL, vous pouvez planifier une query récurrente et être averti si certaines contraintes ne sont plus respectées.

Cet exemple crée une alerte qui examine les expérimentations les plus fréquemment exécutées au sein de votre workspace afin de déterminer si elles connaissent une faible fiabilité et nécessitent une attention particulière. La query utilise la table runs_latest pour calculer le nombre d'exécutions par expérimentation qui sont marquées comme terminées, divisé par le nombre total d'exécutions.

remarque

Vous pouvez également utiliser les anciennes alertes.

  1. Cliquez sur Icône d&#39;alertes Alertes dans la barre latérale, puis sur Créer une alerte .

  2. Copiez et collez la query suivante dans l'éditeur de requêtes.

    SQL
     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. Dans le champ Condition , définissez les conditions sur MIN success_ratio < 0.9. This will Trigger the alert si l'une des 20 premières Expérimentations (par nombre d'exécutions) a un taux de réussite inférieur à 90 %.

De plus, vous pouvez tester la condition, définir un calendrier et configurer des notifications. Pour plus d'informations sur la configuration de l'alerte, consultez la configuration d'une alerte SQL. Voici un exemple de configuration utilisant la query.

Configuration de l&#39;alerte SQL

Exemples de query

Vous pouvez utiliser les requêtes d'exemple suivantes pour obtenir des informations sur l'activité MLflow dans votre compte en utilisant Databricks SQL. Vous pouvez également tirer parti d'outils comme les notebooks Python avec Spark.

Obtenir des informations sur l'exécution à partir de runs_latest

SQL
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

Ceci renvoie des informations sur l'exécution donnée :

Informations sur l&#39;exécution des résultats de la query

Obtenez des informations sur l'Experiment et l'exécution de experiments_latest et runs_latest

SQL
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

Obtenez des statistiques récapitulatives pour une exécution donnée depuis run_metrics_history

SQL
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

Ceci renvoie un résumé des métriques pour le run_id donné :

Métriques récapitulatives d&#39;exécution des résultats de query

Tableaux de bord pour les expérimentations et les exécutions

Vous pouvez créer des tableaux de bord à partir des données des tables système MLflow pour analyser vos expériences et exécutions MLflow depuis l'ensemble du workspace.

Pour plus de détails, consultez Créer des tableaux de bord avec les métadonnées MLflow dans les tables système