Expérience MLflow

La source de données d’expérience MLflow fournit une API standard pour charger les données d’exécution d’expériences MLflow. Vous pouvez charger des données à partir de l’expérience du notebook, ou vous pouvez utiliser le nom ou l’ID de l’expérience MLflow.

Spécifications

Databricks Runtime 6.0 ML ou version ultérieure.

Charger des données à partir de l’expérience du notebook

Pour charger des données à partir de l’expérience du notebook, utilisez load().

Python

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

Scala

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

Charger des données à l’aide des ID des expériences

Pour charger les données d’une ou plusieurs expériences de l’espace de travail, spécifiez les ID des expériences comme indiqué.

Python

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

Scala

val df = spark.read.format("mlflow-experiment").load("3270527066281272,953590262154175")
display(df)

Charger des données à l’aide du nom de l’expérience

Vous pouvez également transmettre le nom de l’expérience à la méthode load().

Python

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

Scala

val expId = mlflow.getExperimentByName("/Shared/diabetes_experiment/").get.getExperimentId
val df = spark.read.format("mlflow-experiment").load(expId)
display(df)

Filtrer les données en fonction des métriques et des paramètres

Les exemples de cette section montrent la manière dont vous pouvez filtrer les données après les avoir chargées à partir d’une expérience.

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)

Scala

val df = spark.read.format("mlflow-experiment").load("3270527066281272")
val filtered_df = df.filter("metrics.loss < 1.85 AND params.num_epochs > '30'")
display(filtered_df)

schéma

Le schéma du DataFrame renvoyé par la source de données est le suivant :

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