MLflow エクスペリメントを使用してトレーニングのランを整理する

エクスペリメントは、 モデルのトレーニングを実行するための組織の単位です。 エクスペリメントには、ワークスペースとノートブックの 2 種類があります。

  • ワークスペース エクスペリメントは、 Databricks Mosaic AI UI または MLflow APIから作成できます。 ワークスペース エクスペリメントはどのノートブックにも関連付けられておらず、どのノートブックでもエクスペリメント ID またはエクスペリメント名を使用して、これらのエクスペリメントに実行をログに記録できます。

  • ノートブック エクスペリメントは、特定のノートブックに関連付けられています。 Databricks は、 mlflow.start_run() を使用して実行を開始するときにアクティブなエクスペリメントがない場合、ノートブック エクスペリメントを自動的に作成します。

アクセスできるワークスペース内のすべてのエクスペリメントを表示するには、サイドバーで [ 機械学習] > [エクスペリメント ] を選択します。

エクスペリメント ページ

ワークスペースのエクスペリメントの作成

このセクションでは、Databricks UI を使用してワークスペースエクスペリメントを作成する方法について説明します。 ワークスペースエクスペリメントは、 ワークスペース から直接作成することも 、[エクスペリメント] ページから作成することもできます。

MLflow API 、または databricks_mlflow_experiment を使った Databricks Terraform プロバイダー を使用することもできます。

ワークスペース エクスペリメントへの実行のログ記録の手順については、「 エクスペリメントへの実行のログ記録」を参照してください。

GDPRコンプライアンスのために、古いエクスペリメントはワークスペースから消去されます。顧客管理キーが使用されているワークスペースの場合、古いエクスペリメントは、顧客管理キーがDatabricksによってアクセス可能な場合にのみ消去されます。「 顧客管理の暗号化キーを設定して アクセス権を付与する」を参照してください。

ワークスペースからエクスペリメントを作成する

  1. サイドバーの 「ワークスペース 」をクリックします 。 ワークスペースアイコン

  2. エクスペリメントを作成するフォルダーに移動します。

  3. フォルダーを右クリックし、[ MLflow エクスペリメントの作成] > を選択します。

  4. 「エクスペリメント MLflow を作成」ダイアログで、エクスペリメントの名前とオプションのアーティファクトの場所を入力します。 アーティファクトの場所を指定しない場合、アーティファクトは MLflow で管理されるアーティファクト ストレージ ( dbfs:/databricks/mlflow-tracking/<experiment-id>) に格納されます。

    Databricks は、 Unity Catalog ボリューム と Google Cloud Storage アーティファクトの場所をサポートしています。

    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)
    

    アーティファクトを Google Cloud Storageに格納するには、gs://<bucket-name>/<file-path-inside-bucket> という形式の URI を指定します。 Google Cloud Storage に保存されたアーティファクトは、 MLflow UI に表示されません。これらは、オブジェクトストレージクライアントを使用してダウンロードする必要があります。

    成果物を DBFS 以外の場所に格納すると、成果物は MLflow UI に表示されません。 DBFS以外の場所に格納されているモデルは、モデルレジストリに登録できません。

  5. 「作成」をクリックします。新しいエクスペリメントのエクスペリメントの詳細ページが表示されます。

  6. このエクスペリメントに実行をログに記録するには、エクスペリメント パスを使用して mlflow.set_experiment() を呼び出します。 エクスペリメントのパスを表示するには、エクスペリメント名の右側にある情報アイコン 情報アイコン をクリックします。 詳細とノートブックの例については、「 エクスペリメントへのログ実行 」を参照してください。

エクスペリメントページからエクスペリメントを作成する

基盤モデル ファインチューニング、 AutoML、またはカスタム エクスペリメントを作成するには、[ エクスペリメント ] をクリックするか、左側のサイドバーで [エクスペリメント>新規 ] を選択します。

ページの上部で、次のいずれかのオプションを選択してエクスペリメントを設定します。

ノートブックエクスペリメントの作成

ノートブックで mlflow.start_run() コマンド を使用すると、実行によってメトリクスとパラメータがアクティブなエクスペリメントに記録されます。 アクティブなエクスペリメントがない場合、Databricks はノートブック エクスペリメントを作成します。 ノートブック エクスペリメントは、対応するノートブックと同じ名前と ID を共有します。 ノートブック ID は、 ノートブックの URL と ID の末尾にある数値識別子です。

または、 mlflow.set_experiment() で既存のノートブックへの Databricks ワークスペース パスを渡して、そのノートブック エクスペリメントを作成することもできます。

ノートブック エクスペリメントへの実行のログ記録手順については、「 エクスペリメントへの実行のログ記録」を参照してください。

API (Python の MlflowClient.tracking.delete_experiment() など) を使用してノートブックエクスペリメントを削除すると、ノートブック自体がごみ箱フォルダーに移動されます。

エクスペリメントの表示

アクセス権を持つ各エクスペリメントは、エクスペリメントページに表示されます。 このページから、任意のエクスペリメントを表示できます。 エクスペリメント名をクリックすると、エクスペリメントの詳細ページが表示されます。

エクスペリメントの詳細ページにアクセスするその他の方法:

  • ワークスペース エクスペリメントの詳細ページには、ワークスペースメニューからアクセスできます。

  • ノートブック エクスペリメントのエクスペリメント詳細ページには、ノートブックからアクセスできます。

エクスペリメントを検索するには、[ エクスペリメントのフィルター ] フィールドにテキストを入力して Enter キーを押すか、虫眼鏡アイコンをクリックします。 エクスペリメント リストが変更され、[ 名前]、[ 作成者]、[ 場所]、または [ 説明 ] 列に検索テキストを含むエクスペリメントのみが表示されます。

テーブル内のエクスペリメントの名前をクリックすると、そのエクスペリメントの詳細ページが表示されます。

詳細を見る エクスペリメント

エクスペリメントの詳細ページには、エクスペリメントに関連付けられているすべての実行が一覧表示されます。 このテーブルから、エクスペリメントに関連付けられている任意の実行の実行ページを開くことができます。これには、 その実行名をクリックします。 [ソース] 列では、実行を作成したノートブックのバージョンにアクセスできます。また、メトリクスまたはパラメーターの設定によって実行を検索して フィルタリング することもできます。

ワークスペースエクスペリメントの表示

  1. サイドバーの 「ワークスペース 」をクリックします 。 ワークスペースアイコン

  2. エクスペリメントを含むフォルダーに移動します。

  3. エクスペリメント名をクリックします。

ノートブックエクスペリメントの表示

ノートブックの右側のサイドバーで、 エクスペリメント アイコン エクスペリメント アイコンをクリックします。

エクスペリメント Runs サイドバーが表示され、ノートブック エクスペリメントに関連付けられている各実行の概要(実行パラメーターやメトリクスなど) が表示されます。 サイドバーの上部には、最後にログに記録されたノートブックの実行先であるエクスペリメントの名前 (ノートブックのエクスペリメントまたはワークスペースのエクスペリメント) が表示されます。

実行パラメーターとメトリクスの表示

サイドバーから、エクスペリメントの詳細ページに移動するか、直接実行に移動できます。

  • エクスペリメントを表示するには、右端の [エクスペリメント の実行]外部リンク の横にある [エクスペリメントの実行] をクリックします

  • 実行を表示するには、 実行の名前をクリックします。

エクスペリメントの管理

所有しているエクスペリメントの名前変更、削除、または権限の管理は、エクスペリメントページ、 エクスペリメント詳細ページ、またはワークスペースメニューから行うことができます。

Databricks Git フォルダー内のノートブックによって作成された MLflow エクスペリメントの権限を直接名前変更、削除、または管理することはできません。 これらのアクションは Git フォルダー レベルで実行する必要があります。

エクスペリメントの名前を変更する

所有しているエクスペリメントの名前は、 エクスペリメント ページ またはそのエクスペリメントの詳細ページから変更できます。

  • エクスペリメントページで、右端の列にあるケバブメニューケバブメニューをクリックし、[名前の変更]をクリックします。

エクスペリメントのページから名前を変更してください。
  • エクスペリメントの詳細ページで、[ 権限] の横にあるケバブ メニューケバブメニュー をクリックし、[ 名前の変更] をクリックします。

エクスペリメントの詳細ページから名前を変更します。

ワークスペースからワークスペースエクスペリメントの名前を変更できます。 エクスペリメント名を右クリックし、[ 名前の変更] をクリックします。

エクスペリメントIDとエクスペリメントへのパスを取得する

エクスペリメントの詳細ページでは、エクスペリメント名の右側にある情報アイコン 情報アイコン をクリックすると、ノートブック エクスペリメントへのパスを取得できます。 エクスペリメントへのパス、エクスペリメント ID、およびアーティファクトの場所を示すポップアップ ノートが表示されます。 MLflow コマンド set_experimentID のエクスペリメント ID を使用して、アクティブ MLflow エクスペリメントを設定できます。

エクスペリメント 名前アイコン

ノートブックから、ノートブックのエクスペリメントサイドバーで パスアイコン。 をクリックすることで、エクスペリメントのフルパスをコピーできます。

エクスペリメントのパスアイコンをノートブックのサイドバーに表示します。

ノートブックエクスペリメントの削除

ノートブック エクスペリメントはノートブックの一部であり、個別に削除することはできません。 ノートブックを削除すると、関連付けられている ノートブック エクスペリメントが削除されます。 UI を使用してノートブック エクスペリメントを削除すると、ノートブックも削除されます。

API を使用してノートブックのエクスペリメントを削除するには、 Workspace API を使用して、ノートブックとエクスペリメントの両方がワークスペースから削除されるようにします。

ワークスペースまたはノートブック エクスペリメントを削除する

所有しているエクスペリメントは、 エクスペリメントページ またはエクスペリメント詳細ページから削除できます。

重要

ノートブック エクスペリメントを削除すると、ノートブックも削除されます。

  • エクスペリメントページで、右端の列にあるケバブメニューケバブメニューをクリックし、[削除]をクリックします。

エクスペリメントのページから削除します。
  • エクスペリメントの詳細ページで、[ 権限] の横にあるケバブケバブメニュー メニュー をクリックし、[ 削除] をクリックします。

エクスペリメントの詳細ページから削除します。

ワークスペース エクスペリメント をワークスペースから削除できます。 エクスペリメント名を右クリックし、[ ごみ箱に移動] をクリックします。

エクスペリメントの権限を変更する

エクスペリメントの詳細ページからエクスペリメントの権限を変更するには、[権限] をクリックします。

エクスペリメント詳細ページ 権限メニュー

エクスペリメントのページから、所有しているエクスペリメントの権限を変更できます。右端の列にあるケバブメニュー ケバブメニュー をクリックし、[ 権限]をクリックします。

エクスペリメントページから権限を変更します。

拡張機能のアクセス許可レベルの詳細については、 MLflow拡張機能 ACL」を参照してください。

ワークスペース間でエクスペリメントをコピーする

ワークスペース間で MLflow エクスペリメントを移行するには、コミュニティ主導の オープンソース プロジェクト MLflow エクスポート/インポートを使用できます。

これらのツールを使用すると、次のことができます。

  • 同じトラッキング サーバーまたは別のトラッキング サーバー内の他のデータサイエンティストと共有および共同作業します。 たとえば、エクスペリメントを別のユーザーからワークスペースに複製できます。

  • MLflow エクスペリメントをコピーし、ローカル追跡サーバーから Databricks ワークスペースに実行します。

  • ミッション クリティカルなエクスペリメントとモデルを別の Databricks ワークスペースにバックアップします。