LoginSignup
2
0

More than 1 year has passed since last update.

DatabricksにおけるSparkを用いたMLflowエクスペリメントへのアクセス

Posted at

MLflow experiment | Databricks on AWS [2022/11/9時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

MLflowエクスペリメントデータソースは、MLflowエクスペリメントのランデータをロードするための標準APIを提供します。ノートブックエクスペリメントから、あるいはエクスペリメント名、エクスペリメントIDを用いてデータをロードすることができます。

要件

Databricks機械学習ランタイム6.0以降。

ノートブックエクスペリメントからデータのロード

ノートブックエクスペリメントからデータをロードするには、load()を使います。

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

エクスペリメントIDによるデータのロード

1つ以上のワークスペースエクスペリメントからデータをロードするには、以下の様にエクスペリメント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)

スキーマ

データソースによって返却されるデータフレームのスキーマは以下の様になります。

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

Databricks 無料トライアル

Databricks 無料トライアル

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0