Organize トレーニング 実行 with MLflow エクスペリメント
エクスペリメントは、 モデル トレーニング 実行の組織の単位です。 エクスペリメントには、ワークスペースとノートブックの2種類があります。
- ワークスペース エクスペリメントは、 Databricks Mosaic AI UI または MLflow APIから作成できます。 ワークスペース エクスペリメントはどのノートブックにも関連付けられておらず、どのノートブックでもエクスペリメント ID またはエクスペリメント名を使用して、これらのエクスペリメントに実行をログに記録できます。
- ノートブック エクスペリメントは、特定のノートブックに関連付けられています。 Databricks は、 mlflow.start_run() を使用して実行を開始したときにアクティブなエクスペリメントがない場合、ノートブック エクスペリメントを自動的に作成します。
アクセス権のあるワークスペース内のすべてのエクスペリメントを表示するには、サイドバーで [Machine Learning] > [エクスペリメント ] を選択します。
ワークスペース エクスペリメントを作成する
このセクションでは、 Databricks UI を使用してワークスペース エクスペリメントを作成する方法について説明します。 ワークスペース エクスペリメントは、 ワークスペース から直接作成することも 、エクスペリメント ページから作成することもできます。
MLflowAPI、またはDatabricksTerraformエクスペリメント と プロバイダー を使用することもできます。
ワークスペース エクスペリメントへの実行のログ記録の手順については、「 エクスペリメントへの実行のログ記録」を参照してください。
GDPRコンプライアンスのために、古いエクスペリメントはワークスペースから消去されます。顧客管理キーが使用されているワークスペースの場合、古いエクスペリメントは、Databricksによって顧客管理キーにアクセスできる場合にのみ消去されます。「 顧客管理の暗号化キーを設定して アクセス権を付与する」を参照してください。
ワークスペースからエクスペリメントを作成する
-
サイドバーの「 ワークスペース 」をクリックします。
-
エクスペリメントを作成するフォルダに移動します。
-
フォルダを右クリックして、[ エクスペリメントの作成]> MLflow 選択します。
-
「エクスペリメント MLflow を作成」ダイアログで、エクスペリメントの名前とオプションのアーティファクトの場所を入力します。 アーティファクトの場所を指定しない場合、アーティファクトは MLflow で管理されるアーティファクト ストレージ (
dbfs:/databricks/mlflow-tracking/<experiment-id>
) に格納されます。Databricks は、 Unity Catalog ボリューム と S3 アーティファクトの場所をサポートしています。
MLflow 2.15.0 以降では、アーティファクトをUnity Catalogボリュームに保存できます。MLflow エクスペリメントを作成するときは、次のコードに示すように、MLflow エクスペリメント アーティファクトの場所として
dbfs:/Volumes/catalog_name/schema_name/volume_name/user/specified/path
形式のボリューム パスを指定します。PythonEXP_NAME = "/Users/first.last@databricks.com/my_experiment_name"
CATALOG = "my_catalog"
SCHEMA = "my_schema"
VOLUME = "my_volume"
ARTIFACT_PATH = f"dbfs:/Volumes/{CATALOG}/{SCHEMA}/{VOLUME}"
mlflow.set_tracking_uri("databricks")
mlflow.set_registry_uri("databricks-uc")
if mlflow.get_experiment_by_name(EXP_NAME) is None:
mlflow.create_experiment(name=EXP_NAME, artifact_location=ARTIFACT_PATH)
mlflow.set_experiment(EXP_NAME)アーティファクトをS3 に格納するには、 という形式の URI
s3://<bucket>/<path>
を指定します。MLflow S3は、クラスターのインスタンスプロファイル から にアクセスするための資格情報を取得します。S3 に格納されたアーティファクトは、MLflow UI に表示されません。これらは、オブジェクトストレージクライアントを使用してダウンロードする必要があります。アップロードとダウンロードのファイルサイズの上限はどちらも5GBです。
アーティファクトを DBFS以外の場所に保存した場合、アーティファクトは MLflow UI に表示されません。 DBFS以外の場所に保存されているモデルは、Model Registryに登録できません。
-
「作成 」をクリックします。新しいエクスペリメントのエクスペリメントの詳細ページが表示されます。
-
このエクスペリメントに実行をログに記録するには、エクスペリメント パスを使用して
mlflow.set_experiment()
を呼び出します。 エクスペリメントのパスを表示するには、エクスペリメント名の右側にある情報アイコンをクリックします。 詳細とノートブックの例については、「 エクスペリメントへのログ実行 」を参照してください。
エクスペリメントページからエクスペリメントを作成する
基盤モデル ファインチューニング、 AutoML、またはカスタム エクスペリメントを作成するには、[ エクスペリメント ] をクリックするか、左側のサイドバーで [エクスペリメント>新規 ] を選択します。
ページの上部で、次のいずれかのオプションを選択してエクスペリメントを設定します。
- 基盤モデル ファインチューニング . 基盤モデル ファインチューニング ダイアログが表示されます。詳細については、「 基盤モデル ファインチューニング UI を使用してトレーニング 実行を作成する」を参照してください。
- 予測。 「Configure Forecasting エクスペリメント 」ダイアログが表示されます。詳細については、「AutoML エクスペリメントの構成」を参照してください。
- 分類。 [Configure Classification エクスペリメント ] ダイアログが表示されます。詳細については、「 UI を使用した分類エクスペリメントの設定」を参照してください。
- 回帰 。 [Configure Classification エクスペリメント ] ダイアログが表示されます。詳細については、「 UI を使用した回帰エクスペリメントの設定」を参照してください。
- カスタム 。 「エクスペリメントMLflow作成 」ダイアログが表示されます。詳細については、「 ワークスペースからエクスペリメントを作成する」のステップ 4 を参照してください。
ノートブック エクスペリメントを作成
ノートブックで mlflow.start_run() コマンド を使用すると、実行はメトリクスとパラメーターをアクティブなエクスペリメントに記録します。 アクティブなエクスペリメントがない場合、 Databricks はノートブック エクスペリメントを作成します。 ノートブック エクスペリメントは、対応するノートブックと同じ名前と ID を共有します。 ノートブック ID は、 ノートブックの URL と ID の末尾にある数値識別子です。
または、Databricksmlflow.set_experiment() で既存のノートブックへの ワークスペース パスを渡して、そのノートブック エクスペリメントを作成することもできます。
ノートブック エクスペリメントへの実行のログ記録手順については、「 エクスペリメントへの実行のログ記録」を参照してください。
API を使用してノートブック エクスペリメントを削除すると (たとえば、Pythonの MlflowClient.tracking.delete_experiment()
)、ノートブック自体は [ごみ箱] フォルダに移動されます。
エクスペリメントを見る
アクセス権を持つ各エクスペリメントは、エクスペリメントページに表示されます。 このページから、任意のエクスペリメントを表示できます。 エクスペリメント名をクリックすると、エクスペリメントの詳細ページが表示されます。
エクスペリメントの詳細ページにアクセスするその他の方法:
- ワークスペース エクスペリメントの詳細ページには、ワークスペースメニューからアクセスできます。
- ノートブック エクスペリメントのエクスペリメント詳細ページには、ノートブックからアクセスできます。
エクスペリメントを検索するには、[ エクスペリメントのフィルター ] フィールドにテキストを入力して Enter キーを押すか、虫眼鏡アイコンをクリックします。 エクスペリメント リストが変更され、[ 名前 ]、[ 作成者 ]、[ 場所 ]、または [説明 ] 列に検索テキストを含むエクスペリメントのみが表示されます。
テーブル内のエクスペリメントの名前をクリックすると、そのエクスペリメントの詳細ページが表示されます。
エクスペリメントの詳細ページには、エクスペリメントに関連付けられているすべての実行が一覧表示されます。 このテーブルから、エクスペリメントに関連付けられている任意の実行の実行ページを開くことができます。これには、 その実行名 をクリックします。 [ソース ] 列では、実行を作成したノートブックのバージョンにアクセスできます。また、メトリクスまたはパラメーターの設定によって実行を検索して フィルタリング することもできます。
View ワークスペース エクスペリメント
サイドバーの「 ワークスペース 」をクリックします。
- エクスペリメントを含むフォルダに移動します。
- エクスペリメント名をクリックします。
ノートブック エクスペリメントを見る
ノートブックの右側のサイドバーで、 エクスペリメント アイコン をクリックします。
エクスペリメント 実行 サイドバーが表示され、ノートブック エクスペリメントに関連付けられている各実行の概要 (実行 パラメーターやメトリクスなど) が表示されます。 サイドバーの上部には、ノートブックが最後にログに記録した実行先のエクスペリメントの名前が表示されます (ノートブック エクスペリメントまたはワークスペース エクスペリメント)。
サイドバーから、エクスペリメントの詳細ページに移動するか、直接実行に移動できます。
- エクスペリメントを表示するには、右端の
「エクスペリメント 実行 」の横にある「 」をクリックします。
- 実行を表示するには、実行の名前をクリックします。
エクスペリメントの管理
所有しているエクスペリメントの名前変更、削除、または権限の管理は、エクスペリメントページ、 エクスペリメント詳細ページ、またはワークスペースメニューから行うことができます。
MLflowフォルダ内のノートブックによって作成された エクスペリメントの権限を直接名前変更、削除、または管理することはできません。DatabricksGitこれらのアクションは、Git フォルダー レベルで実行する必要があります。
エクスペリメントの名前を変更する
所有しているエクスペリメントの名前は、 エクスペリメント ページ またはそのエクスペリメントの詳細ページから変更できます。
- エクスペリメント ページで、右端の列にあるケバブメニュー
をクリックし、[ 名前の変更 ]をクリックします。
- エクスペリメントの詳細ページで、[ 権限] の横にあるケバブ メニュー
をクリックし、[ 名前の変更] をクリックします。
ワークスペースからワークスペースエクスペリメントの名前を変更できます。 エクスペリメント名を右クリックし、[ 名前の変更 ] をクリックします。
エクスペリメントIDとエクスペリメントへのパスを取得する
エクスペリメントの詳細ページでは、エクスペリメント名の右側にある情報アイコン をクリックすると、ノートブック エクスペリメントへのパスを取得できます。 エクスペリメントへのパス、エクスペリメント ID、およびアーティファクトの場所を示すポップアップ ノートが表示されます。 MLflow コマンド
set_experiment
のエクスペリメント ID を使用して、アクティブ MLflow エクスペリメントを設定できます。
ノートブックから、ノートブックのエクスペリメントサイドバーで をクリックすることで、エクスペリメントのフルパスをコピーできます。
Delete ノートブック エクスペリメント
ノートブック エクスペリメントはノートブックの一部であり、個別に削除することはできません。 ノートブックを削除すると、関連付けられているノートブック エクスペリメントも削除されます。UI を使用してノートブック エクスペリメントを削除すると、ノートブックも削除されます。
APIを使用してノートブック エクスペリメントを削除するには、ワークスペース APIを使用して、ノートブックとエクスペリメントの両方がワークスペースから削除されるようにします。
ワークスペースまたはノートブック エクスペリメントを削除する
所有しているエクスペリメントは、 エクスペリメントページ またはエクスペリメント詳細ページから削除できます。
ノートブック エクスペリメントを削除すると、ノートブックも削除されます。
- エクスペリメント ページで、右端の列にあるケバブメニュー
をクリックし、[ 削除 ]をクリックします。
- エクスペリメントの詳細ページで、[ 権限] の横にあるケバブ
メニュー をクリックし、[ 削除] をクリックします。
ワークスペース エクスペリメント をワークスペースから削除できます。 エクスペリメント名を右クリックし、[ ごみ箱に移動 ] をクリックします。
エクスペリメントの権限を変更する
エクスペリメントの詳細ページからエクスペリメントの権限を変更するには、[ 権限] をクリックします。
エクスペリメントのページから、所有しているエクスペリメントの権限を変更できます。右端の列にあるケバブメニュー をクリックし、[ 権限] をクリックします。
エクスペリメントのアクセス許可レベルについては、「エクスペリメント ACLMLflow」を参照してください。
ワークスペース間でエクスペリメントをコピーする
ワークスペース間でエクスペリメントMLflow移行するには、コミュニティ主導のオープンソース プロジェクト MLflow Export-Import を使用できます。
これらのツールを使用すると、次のことができます。
- 同じまたは別のトラッキングサーバー内の他の data scientists と共有し、共同作業します。 たとえば、他のユーザーのエクスペリメントをワークスペースに複製できます。
- エクスペリメント MLflow をコピーして、ローカルの追跡サーバーから Databricks ワークスペースに実行します。
- ミッションクリティカルなエクスペリメントとモデルを別の Databricks ワークスペースにバックアップします。