Эксперимент MLflow

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

Requirements

Databricks Runtime 6.0 ML или более поздней версии.

Загрузка данных из эксперимента записной книжки

Чтобы загрузить данные из эксперимента записной книжки, используйте load().

Python

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

Scala

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

Загрузка данных с использованием идентификаторов экспериментов

Чтобы загрузить данные из одного или нескольких экспериментов рабочей области, укажите идентификаторы экспериментов, как показано ниже.

Python

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

Scala

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

Загрузка данных с использованием имени эксперимента

Можно также передать имя эксперимента в метод 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)

Фильтрация данных на основе метрик и параметров

В примерах в этом разделе показано, как фильтровать данные после их загрузки из эксперимента.

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)

Схема

Схема объекта DataFrame, возвращаемого источником:

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