다음을 통해 공유


MLflow 실험

MLflow 실험 데이터 원본은 MLflow 실험 실행 데이터를 로드하는 표준 API를 제공합니다. Notebook 실험에서 데이터를 로드하거나 MLflow 실험 이름 또는 실험 ID를 사용할 수 있습니다.

요구 사항

Databricks Runtime 6.0 ML 이상입니다.

Notebook 실험에서 데이터 로드

Notebook 실험에서 데이터를 로드하려면 load()를 사용합니다.

Python

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

Scala

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

실험 ID를 사용하여 데이터 로드

하나 이상의 작업 영역 실험에서 데이터를 로드하려면 표시된 대로 실험 ID를 지정합니다.

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