跟蹤機器學習訓練跑
MLflow跟蹤組件允許記錄與訓練機器學習模型相關的源屬性、參數、度量、標記和構件。要開始使用MLflow,請嚐試其中一個MLflow快速入門教程.
實驗和運行的MLflow跟蹤
MLflow跟蹤基於兩個概念,實驗而且運行:
一個MLflow實驗是MLflow運行的組織和訪問控製的主要單元;所有MLflow的運行都屬於一個實驗。通過實驗,您可以可視化、搜索和比較運行,還可以下載運行工件和元數據,以便在其他工具中進行分析。
一個MLflow運行對應於模型代碼的一次執行。每次運行記錄以下信息:
源:啟動運行的筆記本的名稱或運行的項目名稱和入口點。
版本:如果從筆記本運行,則為筆記本修訂;如果從MLflow項目.
開始和結束時間:運行的開始和結束時間。
參數:模型參數保存為鍵值對。鍵和值都是字符串。
指標:模型評估指標保存為鍵值對。取值為數字。可以在整個運行過程中更新每個度量(例如,跟蹤模型的損失函數是如何收斂的),MLflow記錄並讓您可視化度量的曆史。
標簽:運行以鍵值對形式保存的元數據。可以在運行完成期間和之後更新標記。鍵和值都是字符串。
工件:輸出任意格式的文件。例如,您可以將圖像、模型(例如,pickle scikit-learn模型)和數據文件(例如,Parquet文件)記錄為工件。
的MLflow Tracking API記錄運行模型的參數、指標、標記和工件。跟蹤API與MLflow通信跟蹤服務器.當您使用Databricks時,由Databricks托管的跟蹤服務器將記錄數據。托管的MLflow跟蹤服務器具有Python、Java和R api。
要了解如何控製對實驗的訪問,請參見實驗權限而且更改實驗權限.
請注意
MLflow安裝在Databricks Runtime ML集群上。若要在Databricks Runtime集群上使用MLflow,必須安裝mlflow
圖書館。有關在集群上安裝庫的說明,請參見在集群上安裝庫.要為MLflow安裝的特定包有:
對於Python,請選擇庫源PyPI並進入
mlflow
在包字段。對於R,選擇庫源CRAN和enter
mlflow
在包字段。對於Scala,請安裝以下兩個包:
選擇庫源Maven,然後回車
org.mlflow: mlflow-client: 1.11.0
在坐標字段。選擇庫源PyPI並進入
mlflow
在包字段。
MLflow運行的日誌記錄在哪裏
所有MLflow運行都記錄到活動實驗中,可以使用以下任何一種方式設置:
使用
experiment_id
參數。mlflow.start_run()命令.設置一個MLflow環境變量MLFLOW_EXPERIMENT_NAME或MLFLOW_EXPERIMENT_ID.
如果沒有設置活動的實驗,則運行記錄到筆記本的實驗.
要將實驗結果記錄到遠程托管的工作空間中的MLflow Tracking服務器,而不是運行實驗的工作空間,請設置跟蹤URI以引用遠程工作空間mlflow.set_tracking_uri ()
,並在遠程工作空間中使用mlflow.set_experiment ()
.
mlflow.set_tracking_uri(<uri_of_remote_workspace>)mlflow.set_experiment(“遠程工作空間實驗路徑”)
日誌示例筆記本
本筆記本演示了如何將運行記錄到筆記本實驗和工作區實驗。隻有在筆記本中啟動的MLflow運行才能記錄到筆記本實驗中。從任何筆記本或api啟動的MLflow運行都可以記錄到工作區實驗中。有關查看日誌運行的信息,請參見查看筆記本實驗而且視圖工作區實驗.
您可以使用MLflow Python、Java或Scala和R api啟動運行並記錄運行數據。詳細信息請參見MLflow快速入門筆記本.
用MLflow實驗組織訓練運行
實驗是您的模型訓練運行的組織單元。有兩種類型的實驗:工作區和筆記本。
您可以從Databricks機器學習UI或MLflow API創建一個工作區實驗。工作區實驗不與任何筆記本相關聯,任何筆記本都可以通過使用實驗ID或實驗名稱記錄這些實驗的運行。
一個筆記本實驗與一個特定的筆記本相關聯。當您開始運行時,如果沒有活動的實驗,Databricks會自動創建一個筆記本實驗mlflow.start_run ().
若要查看您可以訪問的工作區中的所有實驗,請單擊實驗在側邊欄。此圖標僅在您處於機器學習角色.
要搜索實驗,請在搜索字段並單擊搜索.中包含搜索文本的實驗列表更改為隻顯示那些實驗的名字,位置,由,或筆記列。
點擊表格中任意實驗名稱,即可顯示其實驗頁麵:
實驗頁麵列出了與實驗相關的所有運行。從表格中,您可以通過單擊它打開與實驗相關的任何運行的運行頁麵開始時間.的源列允許您訪問創建運行的筆記本版本。你也可以搜索和過濾器通過指標或參數設置運行。
創建工作空間實驗
本節描述如何使用Databricks UI創建一個工作區實驗。您可以直接創建一個工作區實驗從工作空間或從實驗頁麵.
你也可以使用MLflow API,或Databricks Terraform提供商與databricks_mlflow_experiment.
有關日誌記錄運行到工作空間實驗的說明,請參見日誌示例筆記本.
點擊工作空間在側邊欄。
進入要創建實驗的文件夾。
做以下任何一件事:
單擊任意文件夾旁邊的在文本的右邊選擇創建> MLflow實驗.
在工作區或用戶文件夾中,單擊並選擇創建> MLflow實驗.
在Create MLflow Experiment對話框中,為實驗輸入一個名稱和一個可選的工件位置。如果不指定工件位置,則工件將存儲在
dbfs: /磚/ mlflow-tracking / < experiment-id >
.磚支持DBFS、S3和Azure Blob存儲工件位置。
要在S3中存儲工件,請指定該表單的URI
s3: / / <鬥> / <路徑>
.MLflow獲得從集群訪問S3的憑據實例配置文件.存儲在S3中的構件不會出現在MLflow UI中;必須通過對象存儲客戶端下載。請注意
在AWS上上傳到DBFS的MLflow工件的最大大小是5GB。
要在Azure Blob存儲中存儲工件,請指定該表單的URI
wasbs: / / <容器> @ < storage-account > .blob.core.windows.net/ <路徑>
.存儲在Azure Blob存儲中的工件不會出現在MLflow UI中;您必須使用blob存儲客戶端下載它們。請注意
當您將工件存儲在DBFS以外的位置時,該工件不會出現在MLflow UI中。存儲在DBFS以外位置的模型不能在模型注冊表中注冊。
點擊創建.一個空的實驗出現了。
您還可以從實驗頁麵創建一個新的工作區實驗。要創建一個新實驗,請使用下拉菜單。從下拉菜單中,您可以選擇AutoML實驗或者是一個空白的實驗。
AutoML實驗。的配置AutoML實驗頁麵出現。有關使用AutoML的信息,請參見使用Databricks AutoML UI訓練ML模型.
空白試驗。的創建MLflow實驗對話框出現了。在對話框中輸入名稱和可選工件位置,以創建一個新的工作區實驗。默認的工件位置是
dbfs: /磚/ mlflow-tracking / < experiment-id >
.要記錄此實驗的運行情況,請調用
mlflow.set_experiment ()
用實驗路徑。實驗路徑出現在實驗頁麵的頂部。看到日誌示例筆記本詳細信息和一個筆記本示例。
創建筆記本實驗
當您使用mlflow.start_run()命令在筆記本中,運行記錄活動實驗的度量和參數。如果沒有活動的實驗,Databricks創建一個筆記本實驗。一個筆記本實驗與它對應的筆記本具有相同的名稱和ID。筆記本ID是a末尾的數字標識符筆記本URL和ID.
有關日誌運行到筆記本實驗的說明,請參見日誌示例筆記本.
請注意
如果您使用API刪除一個筆記本實驗(例如,MlflowClient.tracking.delete_experiment ()
在Python中),筆記本本身被移到Trash文件夾中。
視圖的實驗
你可以訪問的每個實驗都出現在實驗頁麵.從這個頁麵,你可以查看任何實驗。點擊一個實驗名稱來顯示實驗頁麵.
訪問實驗頁麵的其他方法:
您可以從工作區菜單中訪問工作區實驗的實驗頁麵。
您可以從筆記本中訪問筆記本實驗的實驗頁麵。
查看筆記本實驗
在筆記本工具欄中,單擊實驗圖標.
實驗運行側欄將出現,並顯示與筆記本實驗相關的每次運行的摘要,包括運行參數和指標。在側邊欄的頂部是最近記錄的筆記本運行到的實驗的名稱(筆記本實驗或工作區實驗)。
從側邊欄,您可以導航到實驗頁麵或直接運行。
單擊查看實驗在最右邊,挨著實驗運行.
要顯示運行,點擊在跑步的日期和時間旁邊。
管理實驗
您可以重命名、刪除或管理您所擁有的實驗的權限實驗頁麵,實驗頁麵,或工作區菜單。
刪除筆記本實驗
筆記本實驗是筆記本的一部分,不能單獨刪除。當你刪除筆記本,關聯的筆記本實驗被刪除。如果您使用API刪除一個筆記本實驗(例如,MlflowClient.tracking.delete_experiment ()
在Python中)或UI中,筆記本也會被刪除。
在工作空間之間複製實驗
要在工作空間之間遷移MLflow實驗,您可以使用社區驅動的開放源碼項目MLflow進出口.
有了這些工具,你可以:
與同一或另一個跟蹤服務器上的其他數據科學家共享和協作。例如,您可以將另一個用戶的實驗克隆到您的工作區中。
從本地跟蹤服務器複製MLflow實驗並運行到Databricks工作區。
備份任務關鍵實驗和模型到另一個Databricks工作空間。
使用MLflow運行管理訓練代碼
所有MLflow運行都記錄到活性實驗.如果您沒有顯式地將一個實驗設置為活動實驗,則運行將記錄到筆記本實驗。
查看運行
您可以從其父實驗頁麵或直接從創建運行的筆記本訪問運行。
從實驗頁麵,在運行表中,單擊一次運行的開始時間。
從筆記本上,點擊在“實驗運行”側欄中運行的日期和時間旁邊。
的運行屏幕顯示用於運行的參數、運行產生的指標以及任何標記或注釋。來顯示筆記,參數,指標,或標簽對於本次運行,單擊在標簽的左邊。
您還可以在此屏幕中訪問從運行保存的工件。
再現一次運行的軟件環境
通過單擊,您可以為運行重新生成精確的軟件環境複製運行.出現以下對話框:
使用默認設置,當您單擊確認:
筆記本被克隆到對話框中顯示的位置。
如果原集群仍然存在,克隆的筆記本將附加到原集群,並啟動集群。
如果原始集群不再存在,則創建並啟動一個具有相同配置的新集群,其中包括所有已安裝的庫。筆記本附加到新的集群。
您可以為克隆的筆記本選擇不同的位置,並檢查集群配置和安裝的庫:
若要選擇不同的文件夾以保存克隆的筆記本,請單擊編輯文件夾.
要查看集群規範,請單擊視圖規範.若要隻克隆筆記本而不克隆集群,請取消選中此選項。
要查看安裝在原始集群上的庫,請單擊查看庫.如果您不關心安裝與原始集群上相同的庫,請取消選中此選項。
管理運行
過濾器運行
您可以根據參數或度量值搜索運行情況。還可以按標記搜索運行。
要搜索匹配包含參數和度量值的表達式的運行,請在搜索字段中輸入查詢並單擊搜索.以下是一些查詢語法示例:
metrics.r2>0.3
params.elasticNetParam=0.5
params.elasticNetParam=0.5和metrics.avg_areaUnderROC>0.3
要按標簽搜索運行,請按以下格式輸入標簽:
標簽。<關鍵> = " < >價值”
.字符串值必須如所示用引號括起來。tags.estimator_name = " RandomForestRegressor "
tags.color = "藍色"和tags.size = 5
鍵和值都可以包含空格。如果鍵包含空格,則必須將其括在反勾中,如所示。
標簽。' my custom tag ' = "my value"
您還可以基於運行的狀態(Active或Deleted)以及基於模型版本是否與運行相關聯來篩選運行。要做到這一點,單擊過濾器在“搜索”框的右側。的狀態而且關聯模型下拉菜單出現。從下拉菜單中進行選擇。
複製在工作空間之間運行
要從Databricks工作區導入或導出MLflow運行,可以使用社區驅動的開放源碼項目MLflow進出口.
分析MLflow以編程方式運行
您可以使用以下兩個DataFrame api以編程方式訪問MLflow運行數據:
MLflow Python客戶端search_runs API返回一個熊貓數據幀。
的MLflow實驗數據源返回Apache Spark DataFrame。
這個示例演示了如何使用MLflow Python客戶端構建一個儀表板,該儀表板可以可視化評估指標隨時間的變化,跟蹤特定用戶啟動的運行次數,並測量所有用戶的運行總數: