Databricks 建議使用 Unity 目錄中的模型來改善治理、輕鬆地跨工作區和環境共用,以及實現更有彈性的 MLOps 工作流程。 本頁會逐步引導您將工作區模型登錄中的模型移轉至 Unity 目錄。
Unity 目錄中的模型簡介
Unity 目錄中的模型可將 Unity 目錄的優點延伸至 ML 模型,包括集中式存取控制、稽核、譜系,以及跨工作區的模型共用和探索。 Unity 目錄中的模型也提供更大的彈性來管理模型生命週期。
當您將模型移轉至 Unity 目錄時,某些模型生命週期步驟會以不同的方式完成:
- 工作區模型登錄許可權會由帳戶層級 Unity 目錄許可權取代。 請參閱 步驟 2。將 Unity 目錄許可權指派給模型。
- 階段會由自訂別名和標籤取代。 您最多可以建立 10 個自訂且可重新指派的別名,而不是四個固定階段。 您也可以設定標籤來標記模型。 請參閱 步驟 4。移轉模型中繼資料。
- 部署作業可用來在模型的生命週期中轉換模型。 請參閱 步驟 6。(選用)建立部署工作。
步驟 1. 在 Unity 目錄中建立模型
請參閱 定型和註冊 Unity 目錄相容模型。
步驟 2。 將 Unity 目錄許可權指派給模型
Unity 目錄具有 統一的許可權模型。 若要瞭解如何將許可權指派給 Unity 目錄中的模型,請參閱 控制模型的存取。
下表顯示工作區模型登錄中的許可權與 Unity 目錄中許可權之間的關聯性。 除了表格中顯示的權限之外,所有動作也需要 USE CATALOG 和 USE SCHEMA 權限。
| 工作區模型登錄 | Unity 目錄 | 註釋 |
|---|---|---|
| 能讀 | 執行 | |
| 可以編輯 | 建立模型版本 + 套用標籤 | 具有這些權限的使用者無法編輯模型或模型版本的 描述 。 |
| 可以管理預備版本 | APPLY TAG + 部署作業 | 在 Unity 目錄中,部署作業可用來控制模型版本在生命週期階段的移動。 如需詳細資訊,請參閱 MLflow 3 部署作業。 |
| 可以管理生產版本 | APPLY TAG + 部署作業 | 在 Unity 目錄中,部署作業可用來控制模型版本在生命週期階段的移動。 如需詳細資訊,請參閱 MLflow 3 部署作業。 |
| 可以管理 | 管理 |
步驟 3. 複製模型版本
若要複製模型版本,請使用 MLflow 用戶端 copy_model_version()> = 3.4.0.
import mlflow
from mlflow import MLflowClient
# Registry must be set to workspace registry
mlflow.set_registry_uri("databricks")
client = MlflowClient(registry_uri="databricks")
src_model_uri = f"models:/my_wmr_model/1"
uc_migrated_copy = client.copy_model_version(
src_model_uri, "mycatalog.myschema.my_uc_model"
)
如果目的地模型不存在於 Unity 目錄中,則會由此 API 呼叫建立。
Unity 目錄中的模型需要簽章。 如果工作區模型版本沒有簽章,Databricks 建議您遵循 MLflow 檔中的指示來建立簽章。 另一種選擇是使用環境變數 MLFLOW_SKIP_SIGNATURE_CHECK_FOR_UC_REGISTRY_MIGRATION。 只有在您使用 copy_model_version() 且需要 MLflow 版本 3.4.0 或更新版本時,才能使用此環境變數。 當此環境變數設為 "true"時,不需要簽章。
如需可用來將工作區模型登錄中模型的所有模型版本移轉至目的地 Unity 目錄模型的腳本,請參閱 將模型版本從工作區模型登錄移轉至 Unity 目錄。
步驟 4. 移轉模型中繼資料
本節說明如何將工作區登錄層級中繼資料對應至 Unity 目錄模型和模型版本中繼資料,例如階段、標籤和描述。
階段
工作區模型登錄使用「階段」的概念,例如 Staging 和 Production來追蹤模型生命週期。 您可以按階段搜索或調用模型。 在 Unity Catalog 中,階段已被用於呼叫模型的 別名 以及用於標記模型的 標籤 所取代。
若要簡單移轉工作區模型登錄階段,您可以直接使用「生產」和「預備」或您偏好的任何其他別名名稱。 在工作區模型登錄中,多個模型版本可能位於相同的階段,當您參考模型版本時,會呼叫最新版本。 在 Unity 目錄中,別名會指派給唯一的模型版本。
若要簡單移轉階段標籤,請使用標籤將模型版本標示為「生產」、「中繼」或「已封存」。 您也可以使用任何其他標籤。 如需標籤的詳細資訊,請參閱 標籤。
在工作區模型登錄中,模型版本的生命週期會依階段追蹤,且轉換請求需要人工核准。 在 Unity 目錄中,模型版本的生命週期是由 部署作業所管理。 部署作業中的每個工作都對應一個「階段」。 部署工作可讓您自訂模型生命週期,並容納比工作區模型登錄更複雜的工作流程。 部署作業仍然允許人工核准。 如需詳細資訊,請參閱 MLflow 3 部署作業。
Tags
在 Unity 目錄中,您可以在模型或模型版本上建立 標籤 。
若要在「目錄總管」中依標籤搜尋模型,請在搜尋方塊中輸入索引鍵或值:
在「目錄總管」中,您只能使用標籤來搜尋模型,而不能使用模型版本。 MLflow 用戶端不支援依 Unity 目錄標籤搜尋模型。 Unity 目錄允許每個物件最多 50 個標籤。
說明和評論
您可以將描述新增至模型及模型版本。 Unity 目錄也提供 模型的 AI 產生描述選項。
Unity Catalog 中的模型在工作區模型註冊表的模型版本頁面上的 [活動] 區段中,沒有對應顯示資訊的位置。 如果該區段中有您想要與模型版本一起傳輸的資訊,請將它複製到 Unity 目錄中模型版本頁面的 [描述] 區段。
步驟 5. 更新所有工作負載和端點
將模型和模型版本移轉至 Unity 目錄之後,請更新所有作業、筆記本和其他工作負載,包括模型服務端點,以使用 Unity 目錄中的版本。
步驟 6. (可選)創建部署任務
每當建立新模型版本時,部署工作都會自動觸發,並自動執行評估、核准和部署工作流程。 如需詳細資訊,請參閱 MLflow 3 部署作業。
您可以設定通知,以在建立或核准模型版本等事件時觸發。 請參閱 在作業上新增通知。
如果您已為工作區模型登錄中的事件設定電子郵件通知,請依照下列方式移轉它們:
- 已建立新模型版本:設定建立新模型版本時觸發的部署作業,以及觸發作業時的電子郵件通知。
- 階段轉換請求:階段轉換請求相當於審批任務。 設定核准任務成功或失敗的電子郵件通知。
- 階段轉換:階段轉換對應於工作任務。 設定任務成功或失敗的電子郵件通知。
- 新註解:Unity Catalog 中不支援註解。
如果你有為事件設置的 webhooks,可以在 Unity Catalog 中實作為模型事件工作觸發器。 模型觸發器允許你基於 Unity Catalog 中新模型、模型版本或模型別名的創建,自動化執行 Lakeflow Jobs。 模型觸發器在 私密預覽中。 如需更多資訊,請聯絡您的 Databricks 代表。
詳細資訊
下列連結的頁面說明如何將工作流程 (模型定型和批次推斷作業) 從工作區模型登錄移轉至 Unity 目錄。