Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La source de données mlflow-experiment fournit une API Spark DataFrameReader permettant de charger les données d’exécution d’expériences MLflow dans un DataFrame. Les utilisateurs d’Azure Databricks l’utilisent couramment pour analyser les résultats des exécutions d’entraînement, comparer les mesures d’une expérience à l’autre et créer des tableaux de bord à partir de l’historique des expériences. Pour plus d’informations, consultez Organiser les exécutions d’entraînement à l’aide des expériences MLflow.
Prérequis
La lecture des données d’exécution d’expérience MLflow nécessite Databricks Runtime 6.0 ML et versions ultérieures.
Utilisation
Les exemples suivants montrent comment charger et filtrer des données d’expérience MLflow à l’aide de l’API DataFrame Spark.
Charger des données à partir de l’expérience du notebook
Pour charger des données à partir de l’expérience du notebook en cours, appelez load() sans aucun argument.
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 d’identifiants d’expérience
Pour charger des données à partir d’une ou plusieurs expériences d’espace de travail, transmettez les ID d’expérience sous forme de chaîne séparée par des virgules.load()
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 d’un nom d’expérience
Pour charger des données par nom d’expérience, résolvez le nom en 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)
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
Après avoir chargé des données d’expérience, utilisez des expressions de filtre DataFrame standard pour interroger des métriques et des paramètres.
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 de sortie
Le schéma retourné par la source de données mlflow-experiment est fixe, quelle que soit l’expérience 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 additionnelles
-
Lire des tables partagées OpenSharing à l’aide d’Apache Spark DataFrames : si vos données sont partagées via le partage Delta plutôt que stockées dans MLflow, utilisez le
deltasharingformat pour lire les tables partagées avec la même API DataFrameReader.