Aller au contenu principal

Lire les expérimentations MLflow

La source de données mlflow-experiment fournit une API Spark DataFrameReader pour charger les données d'exécution d'Experimentation MLflow dans un DataFrame. Les utilisateurs de Databricks l’utilisent couramment pour analyser les résultats d’exécution d’entraînement, comparer les métriques entre les expérimentations et créer des tableaux de bord sur l’historique des expérimentations. Pour plus d'informations, consultez Organiser les exécutions d'entraînement avec les expérimentations MLflow.

Prérequis

La lecture des données d'exécution d'Experimentation MLflow nécessite Databricks Runtime 6.0 ML et versions supérieures.

Utilisation

Les exemples suivants montrent comment charger et filtrer des données d'expérimentation MLflow à l'aide de l'API Spark DataFrame.

Charger les données de l'Experimentation du Notebook

Pour charger des données à partir de l'expérimentation du notebook actuel, appelez load() sans arguments.

Python
df = spark.read.format("mlflow-experiment").load()
display(df)

Charger des données à l'aide d'ID d'Experimentation

Pour charger des données à partir d'une ou plusieurs expérimentations de workspace, transmettez les ID d'expérimentation sous forme de chaîne séparée par des virgules à load().

Python
df = spark.read.format("mlflow-experiment").load("3270527066281272")
display(df)

Charger des données à l'aide d'un nom d'Experimentation

Pour charger des données par nom d’expérience, résolvez le nom en un ID à l’aide du client MLflow, puis transmettez l’ID à load().

Python
expId = mlflow.get_experiment_by_name("/Shared/diabetes_experiment/").experiment_id
df = spark.read.format("mlflow-experiment").load(expId)
display(df)

Filtrer des données selon les mesures et les paramètres

Après avoir chargé les données d'Experimentation, utilisez des expressions de filtre de DataFrame standard pour query les métriques et les parameters.

Python
df = spark.read.format("mlflow-experiment").load("3270527066281272")
filtered_df = df.filter("metrics.loss < 0.01 AND params.learning_rate > '0.001'")
display(filtered_df)

Schéma de sortie

Le schéma renvoyé par la source de données mlflow-experiment est fixe quelle que soit l'expérimentation chargée :

root
|-- run_id: string
|-- experiment_id: string
|-- metrics: map
| |-- key: string
| |-- value: double
|-- params: map
| |-- key: string
| |-- value: string
|-- tags: map
| |-- key: string
| |-- value: string
|-- start_time: timestamp
|-- end_time: timestamp
|-- status: string
|-- artifact_uri: string

Ressources supplémentaires