在工作區共享模型
請注意
cross-workspace模型開發和部署,磚建議部署代碼方法,模型訓練代碼部署到多個環境。
磚支持共享模型的跨多個工作區。例如,您可以開發和日誌模型在開發工作區,然後訪問和比較對模型在一個單獨的生產工作區。這非常有用當多個團隊共享訪問模式或當你的組織有多個工作空間來處理不同的發展階段。
在這種情況下,您可以訪問模型在磚工作區使用遠程注冊表模型。例如,數據科學家可以訪問生產模型與隻讀訪問注冊表,比較他們的研發模式和當前生產模型。一個例子multi-workspace設置如下所示。
訪問遠程注冊表是由令牌。每個用戶需要訪問或腳本創建一個個人訪問令牌遠程注冊表中張牌到秘密的經理他們的本地工作區。每個API請求發送到遠程注冊表工作區必須包括訪問令牌;MLflow提供了一種簡單的機製來指定要使用的秘密在執行注冊表操作的模式。
請注意
作為一個安全最佳實踐,驗證自動化工具時,係統中,腳本和應用程序,磚屬於建議您使用訪問令牌服務主體而不是用戶工作區。為服務主體,創建訪問令牌管理服務主體的訪問令牌。
需求
使用一個模型注冊在工作區要求MLflow Python客戶機,釋放1.11.0或以上。
請注意
此工作流實現的邏輯MLflow客戶機。確保環境運行客戶端訪問使網絡請求對磚工作區包含遠程注冊表模型。常見的限製放在注冊表空間是一個IP允許列表,可以從MLflow不允許連接客戶端運行在集群在另一個工作空間。
設置遠程注冊表的API令牌
請注意
你可能想要共享秘密的範圍與其他用戶,因為有一個限製數量的秘密範圍/工作空間。
指定一個遠程注冊表
基於秘密範圍和名稱前綴創建遠程注冊表工作區,可以構造一個注冊表URI的形式:
registry_uri=f“磚:/ / <範圍>:<前綴>”
您可以使用URI指定一個遠程注冊表流利的API方法首先調用:
mlflow。set_registry_uri(registry_uri)
或者,您可以指定顯式實例化時MlflowClient
:
客戶端=MlflowClient(registry_uri=registry_uri)
以下工作流顯示這兩種方法的例子。
遠程注冊表中注冊一個模型
注冊一個模型的一種方法是使用mlflow.register_model
API:
mlflow。set_registry_uri(registry_uri)mlflow。register_model(model_uri=f運行:/ < run_id > / < artifact_path > ',的名字=model_name)
其他模型注冊方法的例子可以發現在筆記本上的這個頁麵。
請注意
注冊一個模型在一個偏遠的模型工件的工作區中創建一個臨時的複製DBFS在偏遠的工作區。你可能想要刪除這個副本一旦模型版本準備好了
的地位。下的臨時文件可以找到/ dbfs /磚/ mlflow tmp-external-source / < run_id >
文件夾中。
你也可以指定一個tracking_uri
指向一個MLflow跟蹤服務在另一個工作區以類似的方式registry_uri
。這意味著您可以運行在一個遠程工作區並注冊它的模型在當前或另一個遠程的工作區。
使用一個模型從遠程注冊表
你可以加載和使用模型版本的遠程注冊表mlflow。<味道> .load_model
方法首先設置注冊表URI:
mlflow。set_registry_uri(registry_uri)模型=mlflow。pyfunc。load_model(f模型:/ < model_name > /分期的)模型。預測(…)
或者,您可以顯式地指定的遠程注冊表模型:/
URI:
模型=mlflow。pyfunc。load_model(f”模型:/ / <範圍>:<前綴> @databricks / < model_name > /分期的)模型。預測(…)
其他輔助方法用於訪問該模型還支持文件,如:
客戶端。get_latest_versions(model_name)客戶端。get_model_version_download_uri(model_name,版本)
遠程注冊表管理模型
你可以執行任何操作模型的遠程注冊表隻要你有所需的權限。例如,如果你有可以管理權限模型,您可以過渡階段或刪除模型使用模型版本MlflowClient
方法:
客戶端=MlflowClient(tracking_uri=沒有一個,registry_uri=registry_uri)客戶端。transition_model_version_stage(model_name,版本,“存檔”)客戶端。delete_registered_model(model_name)