MLflow エクスペリメントを使用してトレーニングのランを整理する
エクスペリメントは、 モデルのトレーニングを実行するための組織の単位です。 エクスペリメントには、ワークスペースとノートブックの 2 種類があります。
ワークスペース エクスペリメントは、 Databricks Mosaic AI UI または MLflow APIから作成できます。 ワークスペース エクスペリメントはどのノートブックにも関連付けられておらず、どのノートブックでもエクスペリメント ID またはエクスペリメント名を使用して、これらのエクスペリメントに実行をログに記録できます。
ノートブック エクスペリメントは、特定のノートブックに関連付けられています。 Databricks は、 mlflow.start_run() を使用して実行を開始するときにアクティブなエクスペリメントがない場合、ノートブック エクスペリメントを自動的に作成します。
アクセスできるワークスペース内のすべてのエクスペリメントを表示するには、サイドバーで [ 機械学習] > [エクスペリメント ] を選択します。
ワークスペースのエクスペリメントの作成
このセクションでは、Databricks UI を使用してワークスペースエクスペリメントを作成する方法について説明します。 ワークスペースエクスペリメントは、 ワークスペース から直接作成することも 、[エクスペリメント] ページから作成することもできます。
MLflow API 、または databricks_mlflow_experiment を使った Databricks Terraform プロバイダー を使用することもできます。
ワークスペース エクスペリメントへの実行のログ記録の手順については、「 ログ記録のサンプル ノートブック」を参照してください。
注
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
形式のボリューム パスを指定します。EXP_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 に保存するには、
s3://<bucket>/<path>
という形式の URI を指定します。MLflow は、クラスターの インスタンスプロファイルから S3 にアクセスするための認証情報を取得します。 S3 に格納された成果物は、MLflow UI には表示されません。オブジェクト・ストレージ・クライアントを使用してダウンロードする必要があります。アップロードとダウンロードのファイルサイズ制限はどちらも5GBです。
注
成果物を DBFS 以外の場所に格納すると、成果物は MLflow UI に表示されません。 DBFS以外の場所に格納されているモデルは、モデルレジストリに登録できません。
[ 作成] をクリックします。 空のエクスペリメントが表示されます。
このエクスペリメントへの実行をログに記録するには、エクスペリメント パスを指定して
mlflow.set_experiment()
を呼び出します。 エクスペリメントのパスは、エクスペリメント ページの上部に表示されます。 詳細とノートブックの例については、「 ログ記録のサンプル ノートブック 」を参照してください。
エクスペリメントページからエクスペリメントを作成する
基盤モデル ファインチューニング、 AutoML、またはカスタム エクスペリメントを作成するには、[ エクスペリメント ] をクリックするか、左側のサイドバーで [エクスペリメント>新規 ] を選択します。
ページの上部で、次のいずれかのオプションを選択してエクスペリメントを設定します。
基盤モデル ファインチューニング. 基盤モデル ファインチューニング ダイアログが表示されます。詳細については、「 基盤モデル ファインチューニング UI を使用してトレーニング 実行を作成する」を参照してください。
予測。「Configure Forecasting エクスペリメント」ダイアログが表示されます。詳細については、「AutoML エクスペリメントの構成」を参照してください。
分類。[Configure Classification エクスペリメント] ダイアログが表示されます。詳細については、「 UI を使用した分類エクスペリメントの設定」を参照してください。
回帰。 [Configure Classification エクスペリメント] ダイアログが表示されます。詳細については、「 UI を使用した回帰エクスペリメントの設定」を参照してください。
カスタム。 「エクスペリメントMLflow作成」ダイアログが表示されます。詳しくは、「 ワークスペースからエクスペリメントを作成する」のステップ 4 をご覧ください。
ノートブックエクスペリメントの作成
ノートブックで mlflow.start_run() コマンド を使用すると、実行によってメトリクスとパラメータがアクティブなエクスペリメントに記録されます。 アクティブなエクスペリメントがない場合、Databricks はノートブック エクスペリメントを作成します。 ノートブック エクスペリメントは、対応するノートブックと同じ名前と ID を共有します。 ノートブック ID は、 ノートブックの URL と ID の末尾にある数値識別子です。
または、 mlflow.set_experiment() で既存のノートブックへの Databricks ワークスペース パスを渡して、そのノートブック エクスペリメントを作成することもできます。
ノートブック エクスペリメントへの実行のログ記録の手順については、「 ノートブックのサンプルのログ記録」を参照してください。
注
API (Python の MlflowClient.tracking.delete_experiment()
など) を使用してノートブックエクスペリメントを削除すると、ノートブック自体がごみ箱フォルダーに移動されます。
エクスペリメントの表示
アクセスできる各エクスペリメントは、[エクスペリメント] ページに表示されます。 このページから、任意のエクスペリメントを表示できます。 エクスペリメント名をクリックすると、エクスペリメントのページが表示されます。
エクスペリメントページにアクセスするその他の方法:
ワークスペースのエクスペリメントページには、ワークスペースメニューからアクセスできます。
ノートブックエクスペリメントのページには、ノートブックからアクセスできます。
エクスペリメントを検索するには、[ エクスペリメントのフィルター ] フィールドにテキストを入力して Enter キーを押すか、虫眼鏡アイコンをクリックします。 エクスペリメント リストが変更され、[ 名前]、[ 作成者]、[ 場所]、または [ 説明 ] 列に検索テキストを含むエクスペリメントのみが表示されます。
テーブル内のエクスペリメントの名前をクリックして、そのエクスペリメントページを表示します。
エクスペリメント ページには、エクスペリメントに関連付けられているすべての実行が一覧表示されます。 テーブルから、エクスペリメントの実行 名をクリックすると、エクスペリメントに関連付けられている実行の実行ページを開くことができます。 [ ソース ] 列では、実行を作成したノートブックのバージョンにアクセスできます。 また、メトリクスまたはパラメーター設定で実行を 検索およびフィルター処理 することもできます。
ノートブックエクスペリメントの表示
ノートブックの右側のサイドバーで、 エクスペリメント アイコン をクリックします。
エクスペリメント Runs サイドバーが表示され、ノートブック エクスペリメントに関連付けられている各実行の概要(実行パラメーターやメトリクスなど) が表示されます。 サイドバーの上部には、最後にログに記録されたノートブックの実行先であるエクスペリメントの名前 (ノートブックのエクスペリメントまたはワークスペースのエクスペリメント) が表示されます。
サイドバーから、エクスペリメントページに移動することも、実行に直接移動することもできます。
エクスペリメントを表示するには、右端の [エクスペリメント の実行] の横にある [エクスペリメントの実行] をクリックします 。
実行を表示するには、 実行の名前をクリックします。
エクスペリメントの管理
所有するエクスペリメントの名前変更、削除、または権限の管理は、[エクスペリメント] ページ、[ エクスペリメント] ページ、またはワークスペース メニューから行うことができます。
注
Databricks Git フォルダー内のノートブックによって作成された MLflow エクスペリメントの権限を直接名前変更、削除、または管理することはできません。 これらのアクションは Git フォルダー レベルで実行する必要があります。
エクスペリメント一覧ページまたはエクスペリメントページからエクスペリメントの名前を変更する
エクスペリメント ページまたはエクスペリメント ページからエクスペリメントの名前を変更するには、 をクリックして [ 名前の変更] を選択します。
エクスペリメント名のコピー
エクスペリメント名をコピーするには、エクスペリメント ページの上部をクリックします 。 MLflow コマンド set_experiment
でこの名前を使用して、アクティブな MLflow エクスペリメントを設定できます。
ノートブックのエクスペリメントサイドバーから エクスペリメント名をコピーすることもできます。
ノートブックエクスペリメントの削除
ノートブック エクスペリメントはノートブックの一部であり、個別に削除することはできません。 ノートブックを削除すると、関連付けられている ノートブック エクスペリメントが削除されます。 UI を使用してノートブック エクスペリメントを削除すると、ノートブックも削除されます。
API を使用してノートブック エクスペリメントを削除するには、ワークスペース API を使用して、ノートブックとエクスペリメントの両方が ワークスペース から削除されていることを確認します。
ワークスペースまたはノートブックのエクスペリメントを [エクスペリメント] ページまたは [エクスペリメント] ページから削除します。
エクスペリメント ページまたはエクス ペリメント ページからエクスペリメントを削除するには、 をクリックして [ 削除] を選択します。
ノートブック エクスペリメントを削除すると、ノートブックも削除されます。
エクスペリメントのアクセス許可を変更する
エクスペリメントのアクセス許可を [ エクスペリメント] ページから変更するには、[ 共有] をクリックします。
所有するエクスペリメントのアクセス許可は、 エクスペリメント ページから変更できます。 [ アクション] 列をクリックし 、[アクセス許可 ] を選択します。
拡張機能のアクセス許可レベルの詳細については、 MLflow拡張機能 ACL」を参照してください。
ワークスペース間でエクスペリメントをコピーする
ワークスペース間で MLflow エクスペリメントを移行するには、コミュニティ主導の オープンソース プロジェクト MLflow エクスポート/インポートを使用できます。
これらのツールを使用すると、次のことができます。
同じトラッキング サーバーまたは別のトラッキング サーバー内の他のデータサイエンティストと共有および共同作業します。 たとえば、エクスペリメントを別のユーザーからワークスペースに複製できます。
MLflow エクスペリメントをコピーし、ローカル追跡サーバーから Databricks ワークスペースに実行します。
ミッション クリティカルなエクスペリメントとモデルを別の Databricks ワークスペースにバックアップします。