共用方式為


使用工作區模型登錄管理模型生命週期 (舊版)

重要

本文件涵蓋工作區模型登錄。 如果已針對 Unity Catalog 啟用您的工作區,請勿使用此頁面上的程序。 改為參閱 Unity Catalog 中的模型

如需有關如何從工作區模型登錄升級至 Unity Catalog 的指引,請參閱將工作流程和模型移轉至 Unity Catalog

如果您的工作區預設目錄位於 Unity Catalog (而非 hive_metastore) 中,而且您正在使用 Databricks Runtime 13.3 LTS 或更新版本執行叢集,則模型會在工作區預設目錄中自動建立並從中載入,而不需要設定。 若要在這種情況下使用工作區模型登錄,您必須透過在工作負載開始時執行 import mlflow; mlflow.set_registry_uri("databricks") 來明確將其設為目標。 在少數工作區中,預設目錄在 2024 年 1 月之前設定為 Unity Catalog 中的目錄,並在 2024 年 1 月之前使用了工作區模型登錄,這些工作區不受此行為限制,並會繼續預設使用工作區模型登錄。

本文說明如何使用工作區模型登錄作為機器學習工作流程的一部分,來管理 ML 模型的完整生命週期。 工作區模型登錄是 Databricks 提供的、MLflow 模型登錄的託管版本。

工作區模型登錄提供:

  • 按時間順序的模型譜系 (MLflow 實驗和執行在指定時間產生了模型)。
  • 模型服務
  • 模型版本設定。
  • 階段轉換 (例如,從預備至生產或封存)。
  • Webhook,用於根據登錄事件自動觸發動作。
  • 模型事件的電子郵件通知。

您也可以建立和檢視模型描述,並留下註解。

本文包含工作區模型登錄 UI 和工作區模型登錄 API 的指示。

如需工作區模型登錄概念的概觀,請參閱使用 MLflow 進行 ML 生命週期管理

建立或註冊模型

您可以使用 UI 建立或註冊模型,或使用 API 註冊模型

使用 UI 建立或註冊模型

有兩種方法在工作區模型登錄中註冊模型。 您可以註冊已登入 MLflow 的現有模型,也可以建立並註冊一個新的空模型,然後向其指派先前記錄的模型。

從筆記本註冊現有的記錄模型

  1. 在工作區中,識別包含要註冊的模型的 MLflow 執行。

    1. 在筆記本右側的側邊欄中,按一下 [實驗] 圖示 [實驗] 圖示

      筆記本工具列

    2. 在 [實驗執行] 側邊欄中,按一下執行日期旁邊的 外部連結 圖示。 [MLflow 執行] 頁面隨即顯示。 此頁面會顯示執行的詳細資料,包括參數、計量、標籤和成品清單。

  2. 在 [成品] 區段中,按一下名為 xxx-model 的目錄。

    註冊模型

  3. 按一下最右邊的 [註冊模型] 按鈕。

  4. 在對話方塊中,按一下 [模型] 方塊,然後執行下列其中一個動作:

    • 從下拉式功能表中選取 [建立新模型]。 [模型名稱] 欄位隨即出現。 輸入模型名稱,例如 scikit-learn-power-forecasting
    • 從下拉式功能表中選取現有的模型。

    建立新的模型

  5. 按一下 [註冊] 。

    • 如果已選取 [建立新模型],這會註冊名為 scikit-learn-power-forecasting 的模型,將此模型複製到工作區模型登錄管理的安全位置,並建立此模型的新版本。
    • 如果已選取現有的模型,這會註冊所選模型的新版本。

    一會兒之後,[註冊模型] 按鈕會變更為新註冊的模型版本的連結。

    選取新建立的模型

  6. 按一下連結,以在工作區模型登錄 UI 中開啟新的模型版本。 您也可以透過按一下側邊欄中的 [模型] 圖示 [模型],在工作區模型登錄中尋找模型。

建立新註冊的模型,並向其指派已記錄的模型

您可以使用已註冊模型頁面上的 [建立模型] 按鈕來建立新的空白模型,然後向其指派已記錄的模型。 執行下列步驟:

  1. 在 [已註冊的模型] 頁面上,按一下 [建立模型]。 輸入模型的名稱,然後按一下 [建立]

  2. 遵循從筆記本註冊現有的已記錄模型中的步驟 1 至 3。

  3. 在 [註冊模型] 對話方塊中,選取您在步驟 1 中建立的模型名稱,然後按一下 [註冊]。 這會使用您建立的名稱註冊一個模型,將此模型複製到工作區模型登錄管理的安全位置,並建立模型版本:Version 1

    一會兒之後,MLflow 執行 UI 會將 [註冊模型] 按鈕取代為新註冊的模型版本的連結。 您現在可以從 [實驗執行] 頁面上的 [註冊模型] 對話方塊中的 [模型] 下拉式清單中選取模型。 您也可以在 API 命令中指定其名稱 (例如 Create ModelVersion),來註冊模型的新版本。

使用 API 註冊模型

有三種程式設計方式在工作區模型登錄中註冊模型。 所有方法都會將模型複製到工作區模型登錄管理的安全位置。

  • 若要記錄模型,並在 MLflow 實驗期間以指定的名稱註冊模型,請使用 mlflow.<model-flavor>.log_model(...) 方法。 如果具有該名稱的已註冊模型不存在,則此方法會註冊新的模型、建立第 1 版,並傳回 ModelVersion MLflow 物件。 如果具有該名稱的已註冊模型已存在,則此方法會建立新的模型版本,並傳回版本物件。

    with mlflow.start_run(run_name=<run-name>) as run:
      ...
      mlflow.<model-flavor>.log_model(<model-flavor>=<model>,
        artifact_path="<model-path>",
        registered_model_name="<model-name>"
      )
    
  • 若要在所有實驗執行完成後使用指定的名稱註冊模型,並且已決定最適合新增至登錄的模型,請使用 mlflow.register_model() 方法。 對於此方法,您需要 mlruns:URI 引數的執行識別碼。 如果具有該名稱的已註冊模型不存在,則此方法會註冊新的模型、建立第 1 版,並傳回 ModelVersion MLflow 物件。 如果具有該名稱的已註冊模型已存在,則此方法會建立新的模型版本,並傳回版本物件。

    result=mlflow.register_model("runs:<model-path>", "<model-name>")
    
  • 若要建立具有指定名稱的新註冊的模型,請使用 MLflow 用戶端 API create_registered_model() 方法。 如果模型名稱存在,此方法會擲回 MLflowException

    client = MlflowClient()
    result = client.create_registered_model("<model-name>")
    

您也可以向 Databricks Terraform 提供者databricks_mlflow_model 註冊模型。

配額限制

從 2024 年 5 月開始,對於所有 Databricks 工作區,工作區模型登錄都會對每個工作區的已註冊模型和模型版本總數施加配額限制。 請參閱資源限制。 如果您超過登錄配額,Databricks 建議您刪除不再需要的已註冊模型和模型版本。 Databricks 也建議您調整模型註冊和保留策略,以防超出限制。 如果您需要提高工作區限制,請連絡您的 Databricks 帳戶團隊。

下列筆記本說明如何清查和刪除模型登錄實體。

清查工作區模型登錄實體筆記本

取得筆記本

在 UI 中檢視模型

已註冊的模型頁面

在側邊欄中按一下 [模型] 圖示 [模型] 時,將顯示已註冊的模型頁面。 此頁面會顯示登錄中的所有模型。

您可以透過此頁面建立新的模型

此外,工作區管理員還可以透過此頁面設定工作區模型登錄中所有模型的權限

已註冊的模型

已註冊的模型頁面

若要顯示模型的已註冊模型頁面,請按一下已註冊模型頁面中的模型名稱。 已註冊的模型頁面會顯示有關所選模型的資訊,以及含有有關每個模型版本的資訊的資料表。 透過此頁面,您還可以:

已註冊的模型

模型版本頁面

若要檢視模型版本頁面,請執行下列其中一項操作:

  • 在 [已註冊的模型] 頁面上的 [最新版本] 資料行中,按一下版本名稱。
  • 在 [已註冊的模型] 頁面中的 [版本] 資料行中,按一下版本名稱。

此頁面會顯示有關已註冊模型特定版本的資訊,還會提供來源執行 (用於建立此模型而執行的筆記本版本) 的連結。 透過此頁面,您還可以:

模型版本

控制對模型的存取

您必須至少具有 CAN MANAGE 權限,才能設定模型的權限。 如需有關模型權限等級的資訊,請參閱 MLflow 模型 ACL。 模型版本從父模型繼承權限。 您無法為模型版本設定權限。

  1. 在側邊欄中,按一下 [模型] 圖示 [模型]

  2. 選取模型名稱。

  3. 按一下 [權限]。 [權限設定] 對話方塊隨即開啟

    [模型權限] 按鈕

  4. 在對話方塊中,選取 [選取使用者、群組或服務主體...] 下拉式清單,然後選取使用者、群組或服務主體。

    變更 MLflow 模型權限

  5. 從權限下拉式清單中選取權限。

  6. 按一下 [新增],然後按一下 [儲存]

在整個登錄層級具有 CAN MANAGE 權限的工作區系統管理員和使用者可以透過按一下 [模型] 頁面上的 [權限],在工作區中的所有模型上設定權限等級。

轉換模型階段

模型版本具有下列其中一個階段:[無]、[預備]、[生產] 或 [已封存]。 例如,[預備] 階段適用於模型測試和驗證,而 [生產] 階段適用於已完成測試或檢閱程序,以及已部署至應用程式來取得即時評分的模型版本。 [已封存] 模型版本視為非使用中狀態,此時您可以考慮將其刪除。 不同版本的模型可以處於不同的階段。

具有適當權限的使用者可以在階段之間轉換模型版本。 如果您有權將模型版本轉換為特定階段,可以直接進行轉換。 如果您沒有權限,可以要求階段轉換,且有權轉換模型版本的使用者可以核准、拒絕或取消要求

您可以使用 UI 或使用 API 轉換模型階段。

使用 UI 轉換模型階段

請遵循下列指示來轉換模型的階段。

  1. 若要顯示可用模型階段的清單和可用的選項,請在模型版本頁面中,按一下 [階段:] 旁邊的下拉式清單,然後要求或選取轉換至另一個階段。

    階段轉換選項

  2. 輸入選用註解,然後按一下 [確定]

將模型版本轉換至 [生產] 階段

在測試和驗證之後,您可以轉換或要求轉換至 [生產] 階段。

工作區模型登錄允許每個階段中存在已註冊模型的多個版本。 如果想要在 [生產] 中只有一個版本,您可以透過檢查 [將現有的生產模型版本轉換至 [已封存]],將目前處於 [生產] 中的所有模型版本轉換為 [已封存]。

核准、拒絕或取消模型版本階段轉換要求

沒有階段轉換權限的使用者可以要求階段轉換。 要求會出現在模型版本頁面的 [擱置中要求] 區段中:

轉換至生產

若要核准、拒絕或取消階段轉換要求,請按一下 [核准]、[拒絕] 或 [取消] 連結。

轉換要求的建立者也可以取消要求。

檢視模型版本活動

若要檢視已要求、已核准、擱置中及套用至模型版本的所有轉換,請移至 [活動] 區段。 此活動記錄會提供模型生命週期的譜系,可供稽核或檢查。

使用 API 轉換模型階段

具有適當權限的使用者可以將模型版本轉換至新階段。

若要將模型版本階段更新為新階段,請使用 MLflow 用戶端 API transition_model_version_stage() 方法:

  client = MlflowClient()
  client.transition_model_version_stage(
    name="<model-name>",
    version=<model-version>,
    stage="<stage>",
    description="<description>"
  )

<stage> 的接受值如下:"Staging"|"staging""Archived"|"archived""Production"|"production""None"|"none"

使用模型進行推斷

重要

這項功能處於公開預覽狀態

在工作區模型登錄中註冊模型之後,您可以自動產生筆記本以使用模型進行批次或串流推斷。 或者,您可以建立端點,以使用此模型透過模型服務進行即時服務。

已註冊的模型頁面模型版本頁面的右上角,按一下 使用模型按鈕。 [設定模型推斷] 對話方塊隨即出現,可讓您設定批次、串流或即時推斷。

重要

Anaconda Inc. 更新了其 anaconda.org 通道的服務條款。 根據新的服務條款,如果您依賴 Anaconda 的封裝和散發,則可能需要商業授權。 如需詳細資訊,請參閱 Anaconda 商業版本常見問題。 您使用任何 Anaconda 通道會受到其服務條款的約束。

v1.18 (Databricks Runtime 8.3 ML 或更早版本) 之前記錄的 MLflow 模型預設以 conda defaults 通道 (https://repo.anaconda.com/pkgs/) 作為相依性進行記錄。 由於此授權變更,對於使用 MLflow v1.18 和更高版本記錄的模型,Databricks 已停止使用 defaults 通道。 記錄的預設通道現在是 conda-forge,它指向社群管理的 https://conda-forge.org/

如果您在 MLflow v1.18 之前記錄模型,但未從模型的 conda 環境中排除 defaults 通道,則該模型可能相依於您未預期的 defaults 通道。 若要手動確認模型是否具有此相依性,您可以檢查使用記錄的模型封裝的 channel 檔案中的 conda.yaml 值。 例如,具有 defaults 通道相依性之模型的 conda.yaml 可能如下所示:

channels:
- defaults
dependencies:
- python=3.8.8
- pip
- pip:
    - mlflow
    - scikit-learn==0.23.2
    - cloudpickle==1.6.0
      name: mlflow-env

由於 Databricks 無法判斷您與 Anaconda 的關係是否允許使用 Anaconda 存放庫與模型互動,因此 Databricks 不會強制其客戶進行任何變更。 如果 Anaconda 條款允許透過使用 Databricks 來使用 Anaconda.com 存放庫,您就不需要採取任何動作。

如果想要變更模型環境中使用的通道,您可以使用新的 conda.yaml 將模型重新註冊至工作區模型登錄。 可以透過在 conda_envlog_model() 參數中指定通道來執行此動作。

如需有關 log_model() API 的詳細資訊,請參閱您正在使用之模型變體的 MLflow 文件,例如 log_model for scikit-learn

如需有關 conda.yaml 檔案的詳細資訊,請參閱 MLflow 文件

設定模型推斷對話方塊

設定批次推斷

當您遵循下列步驟來建立批次推斷筆記本時,筆記本會儲存在具有模型名稱的資料夾中 Batch-Inference 資料夾下的使用者資料夾中。 您可以視需要編輯筆記本。

  1. 按一下 [批次推斷] 索引標籤。

  2. 從 [模型版本] 下拉式清單中,選取要使用的模型版本。 下拉式清單中的前兩個項目是模型的目前 [生產] 和 [預備] 版本 (如果有的話)。 當您選取其中一個選項時,筆記本會在執行時自動使用 [生產] 或 [預備] 版本。 當您繼續開發模型時,不需要更新筆記本。

  3. 按一下 [輸入資料表] 旁邊的 [瀏覽] 按鈕。 [選取輸入資料] 對話方塊隨即出現。 如有必要,您可以在 [計算] 下拉式清單中變更叢集。

    注意

    對於已啟用 Unity Catalog 的工作區,[選取輸入資料] 對話方塊可讓您從三個層級 <catalog-name>.<database-name>.<table-name> 中進行選取。

  4. 選取包含模型輸入資料的資料表,然後按一下 [選取]。 產生的筆記本會自動匯入此資料,並將其傳送至模型。 如果資料在輸入至模型之前需要進行任何轉換,您可以編輯產生的筆記本。

  5. 預測會儲存在目錄 dbfs:/FileStore/batch-inference 中的資料夾中。 根據預設,預測會儲存在名稱與模型相同的資料夾中。 每次執行產生的筆記本時,會將新檔案寫入此目錄,並將時間戳記追加至該名稱。 您也可以選擇不包含時間戳記,並使用筆記本的後續執行覆寫檔案;產生的筆記本中提供了指示。

    您可以透過在 [輸出資料表位置] 欄位中鍵入新的資料夾名稱,或按一下資料夾圖示以瀏覽目錄並選取不同的資料來,來變更預測儲存所在的資料夾。

    若要將預測儲存至 Unity Catalog 中的位置,您必須編輯筆記本。 如需示範如何訓練使用 Unity Catalog 中資料的機器學習模型並將結果寫回 Unity Catalog 的範例筆記本,請參閱機器學習教學課程

使用差異即時資料表設定串流推斷

當您遵循下列步驟來建立串流推斷筆記本時,筆記本會儲存在具有模型名稱的資料夾中 DLT-Inference 資料夾下的使用者資料夾中。 您可以視需要編輯筆記本。

  1. 按一下 [串流 (差異即時資料表)] 索引標籤。

  2. 從 [模型版本] 下拉式清單中,選取要使用的模型版本。 下拉式清單中的前兩個項目是模型的目前 [生產] 和 [預備] 版本 (如果有的話)。 當您選取其中一個選項時,筆記本會在執行時自動使用 [生產] 或 [預備] 版本。 當您繼續開發模型時,不需要更新筆記本。

  3. 按一下 [輸入資料表] 旁邊的 [瀏覽] 按鈕。 [選取輸入資料] 對話方塊隨即出現。 如有必要,您可以在 [計算] 下拉式清單中變更叢集。

    注意

    對於已啟用 Unity Catalog 的工作區,[選取輸入資料] 對話方塊可讓您從三個層級 <catalog-name>.<database-name>.<table-name> 中進行選取。

  4. 選取包含模型輸入資料的資料表,然後按一下 [選取]。 產生的筆記本會建立使用輸入資料表作為來源的資料轉換,並整合 MLflow PySpark 推斷 UDF 來執行模型預測。 如果在套用模型之前或之後資料需要進行任何其他轉換,您可以編輯產生的筆記本。

  5. 提供輸出差異即時資料表名稱。 筆記本會建立具有指定名稱的即時資料表,並使用此資料表來儲存模型預測。 您可以視需要修改產生的筆記本來自訂目標資料集 - 例如:將串流即時資料表定義為輸出、新增結構描述資訊或資料品質條件約束。

  6. 然後,您可以使用此筆記本建立新的差異即時資料表管線,或將其新增至現有的管線作為其他筆記本程式庫。

設定即時推斷

模型服務可將 MLflow 機器學習模型公開為可調整的 REST API 端點。 若要建立模型服務端點,請參閱建立自訂模型服務端點

提供意見反應

此功能處於預覽狀態,我們很樂意收到您的意見反應。 若要提供意見反應,請按一下 [設定模型推斷] 對話方塊中的 Provide Feedback

比較模型版本

您可以在工作區模型登錄中比較模型版本。

  1. 已註冊的模型頁面上,透過按一下模型版本左側的核取方塊,選取兩個或多個模型版本。
  2. 按一下 [比較]
  3. [比較 <N> 版本] 畫面隨即出現,其中顯示一個資料表,用於比較所選模型版本的參數、結構描述和計量。 在畫面底部,您可以選取繪圖的類型 (散佈圖、輪廓或平行座標),以及要繪製的參數或計量。

控制通知喜好設定

您可以設定工作區模型登錄,就已註冊的模型和您指定的模型版本上的活動透過電子郵件通知您。

在已註冊的模型頁面上,[通知我] 功能表會顯示三個選項:

電子郵件通知功能表

  • 所有新活動:就此模型的所有模型版本上的活動傳送電子郵件通知。 如果您已建立已註冊的模型,則此設定為預設值。
  • 我關注的版本上的活動:僅就您關注的模型版本傳送電子郵件通知。 使用此選項,您將就您關注的所有模型版本接收通知;您無法針對特定模型版本關閉通知。
  • 將通知靜音:不就此註冊的模型上的活動傳送電子郵件通知。

下列事件會觸發電子郵件通知:

  • 建立新的模型版本
  • 要求階段轉換
  • 階段轉換
  • 新註解

當您執行下列任何動作時,系統會自動為您訂閱模型通知:

  • 對該模型版本加上註解
  • 轉換模型版本的階段
  • 發出模型階段轉換要求

若要查看您是否在關注某一模型版本,請查看模型版本頁面上的 [關注狀態] 欄位,或者查看已註冊的模型頁面上的模型版本資料表。

關閉所有電子郵件通知

您可以在 [使用者設定] 功能表的 [工作區模型登錄設定] 索引標籤中關閉電子郵件通知:

  1. 按一下 Azure Databricks 工作區右上角的使用者名稱,然後從下拉式功能表中選取 [設定]
  2. 在 [設定] 側邊欄中,選取 [通知]
  3. 關閉 [模型登錄電子郵件通知]

帳戶管理員可以在系統管理員設定頁面中關閉整個組織的電子郵件通知。

傳送的電子郵件數目上限

工作區模型登錄限制了每天就每個活動傳送給每位使用者的電子郵件數目。 例如,如果您在某一天就為註冊的模型建立的新模型版本收到了 20 封電子郵件,工作區模型登錄會傳送一封電子郵件,指出已達到每日限制且要等待第二天才會傳送其他有關該事件的電子郵件。

若要增加允許的電子郵件數目限制,請連絡 Azure Databricks 帳戶團隊。

Webhooks

重要

這項功能處於公開預覽狀態

Webhooks 可讓您接聽工作區模型登錄事件,讓您的整合可以自動觸發動作。 您可以使用 Webhook 自動執行機器學習管線,並將其與現有 CI/CD 工具和工作流程整合。 例如,您可以在建立新的模型版本時觸發 CI 組建,或每次要求模型轉換至生產時,透過 Slack 通知您的團隊成員。

標註模型或模型版本

您可以透過標註模型或模型版本來提供相關資訊。 例如,您可能想要包含問題的概觀,或有關所使用方法和演算法的資訊。

使用 UI 標註模型或模型版本

Azure Databricks UI 提供了數種方式來標註模型和模型版本。 您可以使用描述或註解來新增文字資訊,也可以新增可搜尋的索引鍵/值標籤。 描述和標籤適用於模型和模型版本;註解僅適用於模型版本。

  • 描述的目的是提供有關模型的資訊。
  • 註解提供一種方式就某模型版本上的活動進行持續討論。
  • 標籤可讓您自訂模型中繼資料,讓您更輕鬆地尋找特定模型。

新增或更新模型或模型版本的描述

  1. 已註冊的模型模型版本頁面中,按一下 [描述] 旁邊的 [編輯]。 編輯視窗隨即出現。

  2. 在編輯視窗中輸入或編輯描述。

  3. 按一下 [儲存] 以儲存您的變更,或按一下 [取消] 以關閉視窗。

    如果您輸入了模型版本的描述,描述會出現在已註冊模型頁面上資料表的 [描述] 資料行中。 此資料行最多顯示 32 個字元或一行文字,以較短者為准。

為模型版本新增註解

  1. 向下捲動模型版本頁面,然後按一下 [活動] 旁邊的向下箭頭。
  2. 在編輯視窗中鍵入您的註解,然後按一下 [新增註解]

為模型或模型版本新增標籤

  1. 已註冊的模型模型版本頁面中,按一下 標記圖示 (如果尚未開啟)。 標籤資料表會隨即出現。

    標記資料表

  2. 按一下 [名稱] 和 [值] 欄位,然後輸入標籤的索引鍵和值。

  3. 按一下新增

    新增標籤

編輯或刪除模型或模型版本的標籤

若要編輯或刪除現有的標籤,請使用 [動作] 資料行中的圖示。

標籤動作

使用 API 標註模型版本

若要更新模型版本描述,請使用 MLflow 用戶端 API update_model_version() 方法:

client = MlflowClient()
client.update_model_version(
  name="<model-name>",
  version=<model-version>,
  description="<description>"
)

若要設定或更新已註冊模型或模型版本的標籤,請使用 MLflow 用戶端 API set_registered_model_tag()) 或 set_model_version_tag() 方法:

client = MlflowClient()
client.set_registered_model_tag()(
  name="<model-name>",
  key="<key-value>",
  tag="<tag-value>"
)
client = MlflowClient()
client.set_model_version_tag()(
  name="<model-name>",
  version=<model-version>,
  key="<key-value>",
  tag="<tag-value>"
)

重新命名模型 (僅限 API)

若要重新命名已註冊的模型,請使用 MLflow 用戶端 API rename_registered_model() 方法:

client=MlflowClient()
client.rename_registered_model("<model-name>", "<new-model-name>")

注意

僅當已註冊模型沒有任何版本或所有版本都處於 [無] 或 [已封存] 階段時,才能重新命名此模型。

搜尋模型

您可以使用 UI 或 API 在工作區模型登錄中搜尋模型。

注意

當您搜尋模型時,只會傳回您至少具有 CAN READ 權限的模型。

使用 UI 搜尋模型

若要顯示已註冊的模型,請在側邊欄中按一下 [模型] 圖示 [模型]

若要搜尋特定模型,請在搜尋方塊中輸入文字。 您可以輸入模型的名稱或名稱的任何部分:

已註冊的模型搜尋

您也可以搜尋標籤。 以下列格式輸入標籤:tags.<key>=<value>。 若要搜尋多個標籤,請使用 AND 運算子。

標籤型搜尋

您可以使用 MLflow 搜尋語法來同時搜尋模型名稱和標籤。 例如:

名稱和標籤型搜尋

使用 API 搜尋模型

您可以使用 MLflow 用戶端 API 方法 search_registered_models() 在工作區模型登錄中搜尋已註冊的模型

如果您已在模型上設定標籤,也可以使用 search_registered_models() 依這些標籤進行搜尋。

print(f"Find registered models with a specific tag value")
for m in client.search_registered_models(f"tags.`<key-value>`='<tag-value>'"):
  pprint(dict(m), indent=4)

您也可以使用 MLflow 用戶端 API search_model_versions() 方法搜尋特定模型名稱並列出其版本詳細資料:

from pprint import pprint

client=MlflowClient()
[pprint(mv) for mv in client.search_model_versions("name='<model-name>'")]

其會輸出:

{   'creation_timestamp': 1582671933246,
    'current_stage': 'Production',
    'description': 'A random forest model containing 100 decision trees '
                   'trained in scikit-learn',
    'last_updated_timestamp': 1582671960712,
    'name': 'sk-learn-random-forest-reg-model',
    'run_id': 'ae2cc01346de45f79a44a320aab1797b',
    'source': './mlruns/0/ae2cc01346de45f79a44a320aab1797b/artifacts/sklearn-model',
    'status': 'READY',
    'status_message': None,
    'user_id': None,
    'version': 1 }

{   'creation_timestamp': 1582671960628,
    'current_stage': 'None',
    'description': None,
    'last_updated_timestamp': 1582671960628,
    'name': 'sk-learn-random-forest-reg-model',
    'run_id': 'd994f18d09c64c148e62a785052e6723',
    'source': './mlruns/0/d994f18d09c64c148e62a785052e6723/artifacts/sklearn-model',
    'status': 'READY',
    'status_message': None,
    'user_id': None,
    'version': 2 }

刪除模型或模型版本

您可以使用 UI 或 API 刪除模型。

使用 UI 刪除模型版本或模型

警告

您無法恢復這個動作。 您可以將模型版本轉換為 [已封存] 階段,而不是從登錄將其刪除。 當您刪除模型時,工作區模型登錄所儲存的所有模型成品和與已註冊模型關聯的所有中繼資料都會刪除。

注意

您只能在 [無] 或 [已封存] 階段中刪除模型和模型版本。 如果某個已註冊的模型具有處於 [預備] 或 [生產] 階段的版本,您必須將這些版本轉換為 [無] 或 [已封存] 階段,然後才能刪除此模型。

若要刪除模型版本,請執行以下操作:

  1. 在側邊欄中,按一下 [模型] 圖示 [模型]
  2. 按一下模型名稱。
  3. 按一下模型版本。
  4. 按一下畫面右上角的 刪除模型版本,然後從下拉式功能表中選取 [刪除]

若要刪除模型,請執行以下操作:

  1. 在側邊欄中,按一下 [模型] 圖示 [模型]
  2. 按一下模型名稱。
  3. 按一下畫面右上角的 刪除模型,然後從下拉式功能表中選取 [刪除]

使用 API 刪除模型版本或模型

警告

您無法恢復這個動作。 您可以將模型版本轉換為 [已封存] 階段,而不是從登錄將其刪除。 當您刪除模型時,工作區模型登錄所儲存的所有模型成品和與已註冊模型關聯的所有中繼資料都會刪除。

注意

您只能在 [無] 或 [已封存] 階段中刪除模型和模型版本。 如果某個已註冊的模型具有處於 [預備] 或 [生產] 階段的版本,您必須將這些版本轉換為 [無] 或 [已封存] 階段,然後才能刪除此模型。

刪除模型版本

若要刪除模型版本,請使用 MLflow 用戶端 API delete_model_version() 方法:

# Delete versions 1,2, and 3 of the model
client = MlflowClient()
versions=[1, 2, 3]
for version in versions:
  client.delete_model_version(name="<model-name>", version=version)

刪除模型

若要刪除模型,請使用 MLflow 用戶端 API delete_registered_model() 方法:

client = MlflowClient()
client.delete_registered_model(name="<model-name>")

跨工作區共用模型

Databricks 建議使用 Unity Catalog 中的模型,以跨工作區共用模型。 Unity Catalog 提供跨工作區模型存取、控管和稽核記錄的立即可用的支援。

但是,如果使用工作區模型登錄,您也可以使用某些設定跨多個工作區共用模型。 例如,您可以在自己的工作區中開發和記錄一個模型,然後使用遠端工作區模型登錄從另一個工作區存取此模型。 當多個團隊共用模型的存取權時,這很有用。 您可以建立多個工作區,並在這些環境中使用和管理模型。

在工作區之間複製 MLflow 物件

若要透過 Azure Databricks 工作區匯入或匯出 MLflow 物件,您可以使用社群導向的開放原始碼專案 MLflow Export-Import 在工作區之間移轉 MLflow 實驗、模型和執行。

使用這些工具,您可以:

  • 與相同或另一個追蹤伺服器中的其他資料科學家共用和共同作業。 例如,您可以將實驗從另一個使用者複製到您的工作區。
  • 將模型從一個工作區複製到另一個工作區,例如從開發複製到生產工作區。
  • 將 MLflow 實驗和執行從本機追蹤伺服器複製到 Databricks 工作區。
  • 將任務關鍵性實驗和模型備份至另一個 Databricks 工作區。

範例

此範例說明如何使用工作區模型登錄來組建機器學習應用程式。

工作區模型登錄範例