跟蹤機器學習訓練跑

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和entermlflow字段。

  • 對於Scala,請安裝以下兩個包:

    • 選擇庫源Maven,然後回車org.mlflow: mlflow-client: 1.11.0坐標字段。

    • 選擇庫源PyPI並進入mlflow字段。

MLflow運行的日誌記錄在哪裏

所有MLflow運行都記錄到活動實驗中,可以使用以下任何一種方式設置:

如果沒有設置活動的實驗,則運行記錄到筆記本的實驗

要將實驗結果記錄到遠程托管的工作空間中的MLflow Tracking服務器,而不是運行實驗的工作空間,請設置跟蹤URI以引用遠程工作空間mlflow.set_tracking_uri (),並在遠程工作空間中使用mlflow.set_experiment ()

mlflowset_tracking_uri<uri_of_remote_workspace>mlflowset_experiment“遠程工作空間實驗路徑”

日誌示例筆記本

本筆記本演示了如何將運行記錄到筆記本實驗和工作區實驗。隻有在筆記本中啟動的MLflow運行才能記錄到筆記本實驗中。從任何筆記本或api啟動的MLflow運行都可以記錄到工作區實驗中。有關查看日誌運行的信息,請參見查看筆記本實驗而且視圖工作區實驗

日誌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

有關日誌記錄運行到工作空間實驗的說明,請參見日誌示例筆記本

  1. 點擊工作空間的圖標工作空間在側邊欄。

  2. 進入要創建實驗的文件夾。

  3. 做以下任何一件事:

    • 單擊任意文件夾旁邊的菜單下拉在文本的右邊選擇創建> MLflow實驗

      創建實驗

    • 在工作區或用戶文件夾中,單擊下脫字符號並選擇創建> MLflow實驗

  4. 在Create MLflow Experiment對話框中,為實驗輸入一個名稱和一個可選的工件位置。如果不指定工件位置,則工件將存儲在dbfs: /磚/ mlflow-tracking / < experiment-id >

    磚支持DBFS、S3和Azure Blob存儲工件位置。

    要在S3中存儲工件,請指定該表單的URIs3: / / <鬥> / <路徑>.MLflow獲得從集群訪問S3的憑據實例配置文件.存儲在S3中的構件不會出現在MLflow UI中;必須通過對象存儲客戶端下載。

    請注意

    在AWS上上傳到DBFS的MLflow工件的最大大小是5GB。

    要在Azure Blob存儲中存儲工件,請指定該表單的URIwasbs: / / <容器> @ < storage-account > .blob.core.windows.net/ <路徑>.存儲在Azure Blob存儲中的工件不會出現在MLflow UI中;您必須使用blob存儲客戶端下載它們。

    請注意

    當您將工件存儲在DBFS以外的位置時,該工件不會出現在MLflow UI中。存儲在DBFS以外位置的模型不能在模型注冊表中注冊。

  5. 點擊創建.一個空的實驗出現了。

您還可以從實驗頁麵創建一個新的工作區實驗。要創建一個新實驗,請使用創建實驗下拉菜單下拉菜單。從下拉菜單中,您可以選擇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文件夾中。

視圖的實驗

你可以訪問的每個實驗都出現在實驗頁麵.從這個頁麵,你可以查看任何實驗。點擊一個實驗名稱來顯示實驗頁麵

訪問實驗頁麵的其他方法:

  • 您可以從工作區菜單中訪問工作區實驗的實驗頁麵。

  • 您可以從筆記本中訪問筆記本實驗的實驗頁麵。

視圖工作區實驗

  1. 點擊工作空間的圖標工作空間在側邊欄。

  2. 轉到包含實驗的文件夾。

  3. 點擊實驗名稱。

查看筆記本實驗

在筆記本工具欄中,單擊實驗圖標實驗的圖標

筆記本電腦工具欄

實驗運行側欄將出現,並顯示與筆記本實驗相關的每次運行的摘要,包括運行參數和指標。在側邊欄的頂部是最近記錄的筆記本運行到的實驗的名稱(筆記本實驗或工作區實驗)。

查看運行參數和指標

從側邊欄,您可以導航到實驗頁麵或直接運行。

  • 單擊查看實驗外部鏈接在最右邊,挨著實驗運行

  • 要顯示運行,點擊外部鏈接在跑步的日期和時間旁邊。

管理實驗

您可以重命名、刪除或管理您所擁有的實驗的權限實驗頁麵,實驗頁麵,或工作區菜單。

從實驗頁麵或實驗頁麵重命名實驗

預覽

此功能已在公共預覽

重命名一個實驗實驗頁麵或者是實驗頁麵,點擊三鍵圖標並選擇重命名

從工作區菜單中將實驗重命名

  1. 點擊工作空間的圖標工作空間在側邊欄。

  2. 轉到包含實驗的文件夾。

  3. 點擊菜單下拉在實驗的右邊,選擇重命名

複製實驗名稱

複製實驗名稱,單擊複製圖標在實驗頁麵的頂部。您可以在MLflow命令中使用這個名稱set_experiment設置主動MLflow實驗。

實驗名稱圖標

你也可以從實驗側邊欄在筆記本上

刪除筆記本實驗

筆記本實驗是筆記本的一部分,不能單獨刪除。當你刪除筆記本,關聯的筆記本實驗被刪除。如果您使用API刪除一個筆記本實驗(例如,MlflowClient.tracking.delete_experiment ()在Python中)或UI中,筆記本也會被刪除。

從工作區菜單中刪除工作區實驗

  1. 點擊工作空間的圖標工作空間在側邊欄。

  2. 轉到包含實驗的文件夾。

  3. 點擊菜單下拉在實驗的右邊,選擇轉向垃圾

從實驗頁麵或實驗頁麵刪除工作區或筆記本實驗

預覽

此功能已在公共預覽

刪除一個實驗實驗頁麵或者是實驗頁麵,點擊三鍵圖標並選擇刪除

當你刪除一個筆記本實驗時,筆記本也會被刪除。

更改實驗權限

來更改實驗的權限實驗頁麵,點擊分享

實驗頁麵權限按鈕

您可以更改您所擁有的實驗的權限實驗頁麵.點擊三鍵圖標行動列並選擇許可

有關實驗權限的更多信息,請參見實驗權限

在工作空間之間複製實驗

要在工作空間之間遷移MLflow實驗,您可以使用社區驅動的開放源碼項目MLflow進出口

有了這些工具,你可以:

  • 與同一或另一個跟蹤服務器上的其他數據科學家共享和協作。例如,您可以將另一個用戶的實驗克隆到您的工作區中。

  • 從本地跟蹤服務器複製MLflow實驗並運行到Databricks工作區。

  • 備份任務關鍵實驗和模型到另一個Databricks工作空間。

使用MLflow運行管理訓練代碼

所有MLflow運行都記錄到活性實驗.如果您沒有顯式地將一個實驗設置為活動實驗,則運行將記錄到筆記本實驗。

查看運行

您可以從其父實驗頁麵或直接從創建運行的筆記本訪問運行。

實驗頁麵,在運行表中,單擊一次運行的開始時間。

從筆記本上,點擊外部鏈接在“實驗運行”側欄中運行的日期和時間旁邊。

運行屏幕顯示用於運行的參數、運行產生的指標以及任何標記或注釋。來顯示筆記參數指標,或標簽對於本次運行,單擊的箭頭在標簽的左邊。

您還可以在此屏幕中訪問從運行保存的工件。

查看運行

用於預測的代碼片段

如果您從運行中記錄一個模型,該模型將出現在此頁的Artifacts部分中。要顯示演示如何加載和使用模型在Spark和pandas數據框架上進行預測的代碼片段,請單擊模型名稱。

預測代碼片段

查看用於運行的筆記本或Git項目

瀏覽筆記本版本這引發了一場擠兌:

  • 在實驗頁麵,點擊鏈接列。

  • 在運行頁麵上,單擊旁邊的鏈接

  • 從筆記本中,在實驗運行側欄中,單擊筆記本圖標筆記本版本圖標在實驗運行的盒子裏

與運行相關聯的筆記本版本出現在主窗口中,並有一個高亮條顯示運行的日期和時間。

如果運行是從遠程啟動的Git項目,單擊頁中的鏈接Git提交字段以打開運行中使用的項目的特定版本。鏈接在字段打開運行中使用的Git項目的主分支。

向運行添加標記

標記是可以創建並在以後使用的鍵-值對搜索運行

  1. 運行頁麵,點擊標簽圖標如果它還沒有打開。這時會出現標簽表。

    標簽表
  2. 按一下的名字而且價值字段並為您的標記鍵入鍵和值。

  3. 點擊添加

    添加標簽

編輯或刪除運行的標記

控件中的圖標可編輯或刪除現有標記行動列。

標簽的行為

再現一次運行的軟件環境

通過單擊,您可以為運行重新生成精確的軟件環境複製運行.出現以下對話框:

再現運行對話框

使用默認設置,當您單擊確認

  • 筆記本被克隆到對話框中顯示的位置。

  • 如果原集群仍然存在,克隆的筆記本將附加到原集群,並啟動集群。

  • 如果原始集群不再存在,則創建並啟動一個具有相同配置的新集群,其中包括所有已安裝的庫。筆記本附加到新的集群。

您可以為克隆的筆記本選擇不同的位置,並檢查集群配置和安裝的庫:

  • 若要選擇不同的文件夾以保存克隆的筆記本,請單擊編輯文件夾

  • 要查看集群規範,請單擊視圖規範.若要隻克隆筆記本而不克隆集群,請取消選中此選項。

  • 要查看安裝在原始集群上的庫,請單擊查看庫.如果您不關心安裝與原始集群上相同的庫,請取消選中此選項。

管理運行

重命名運行

單擊可重命名運行三鍵圖標在運行頁麵的右上角,然後選擇重命名

過濾器運行

您可以根據參數或度量值搜索運行情況。還可以按標記搜索運行。

  • 要搜索匹配包含參數和度量值的表達式的運行,請在搜索字段中輸入查詢並單擊搜索.以下是一些查詢語法示例:

    metrics.r2>0.3

    params.elasticNetParam0.5

    params.elasticNetParam0.5metrics.avg_areaUnderROC>0.3

  • 要按標簽搜索運行,請按以下格式輸入標簽:標簽。<關鍵> = " < >價值”.字符串值必須如所示用引號括起來。

    tags.estimator_name = " RandomForestRegressor "

    tags.color = "藍色"tags.size = 5

    鍵和值都可以包含空格。如果鍵包含空格,則必須將其括在反勾中,如所示。

    標簽。' my custom tag ' = "my value"

您還可以基於運行的狀態(Active或Deleted)以及基於模型版本是否與運行相關聯來篩選運行。要做到這一點,單擊過濾器在“搜索”框的右側。的狀態而且關聯模型下拉菜單出現。從下拉菜單中進行選擇。

過濾器運行

比較這兩種

您可以比較來自單個實驗或多個實驗的運行。的比較運行頁以圖形和表格格式顯示有關所選運行的信息。

比較單個實驗的運行情況
  1. 實驗頁麵,通過單擊運行左側的複選框選擇兩個或多個運行,或通過選中列頂部的複選框選擇所有運行。

  2. 點擊比較.的比較' '運行屏幕出現了。

比較來自多個實驗的運行
  1. 實驗頁麵,點擊實驗名稱左側的方框,選擇要比較的實驗。

  2. 點擊比較(n)n是你選擇的實驗數量)。出現一個屏幕,顯示您所選擇的實驗的所有運行。

  3. 通過單擊運行左側的複選框選擇兩個或多個運行,或通過選中列頂部的複選框選擇所有運行。

  4. 點擊比較.的比較' '運行屏幕出現了。

使用比較運行頁麵

比較運行頁顯示運行結果的可視化和運行信息、運行參數和度量表。

要創建可視化:

  1. 選擇繪圖類型(平行坐標圖散點圖,或等高線圖).

  2. 對於一個平行坐標圖,選擇要繪製的參數和指標。對於一個散點圖等高線圖,選擇要在每個軸上顯示的參數或指標。

    比較運行頁麵可視化

參數而且指標表顯示所有選定運行的運行參數和指標。控件標識這些表中的列運行細節正上方的桌子。為了簡單起見,您可以通過切換隱藏所有選定運行中相同的參數和指標僅顯示差異按鈕

比較運行頁表

下載運行

  1. 選擇一個或多個運行。

  2. 點擊下載CSV.一個包含以下字段的CSV文件將被下載:

    輸入ID、名稱、源類型、源名稱、用戶、狀態、,…,,…

刪除運行

  1. 在實驗中,單擊運行左側的複選框,選擇一個或多個運行。

  2. 點擊刪除

  3. 如果運行是父運行,則決定是否也要刪除後代運行。默認選擇此選項。

  4. 點擊刪除確認或取消取消。刪除的運行將保存30天。要顯示已刪除的運行,請選擇刪除在State字段中。

複製在工作空間之間運行

要從Databricks工作區導入或導出MLflow運行,可以使用社區驅動的開放源碼項目MLflow進出口

從Databricks外部訪問MLflow跟蹤服務器

您也可以從Databricks外部對跟蹤服務器進行讀寫操作,例如使用MLflow CLI。

分析MLflow以編程方式運行

您可以使用以下兩個DataFrame api以編程方式訪問MLflow運行數據:

這個示例演示了如何使用MLflow Python客戶端構建一個儀表板,該儀表板可以可視化評估指標隨時間的變化,跟蹤特定用戶啟動的運行次數,並測量所有用戶的運行總數:

MLflow跟蹤示例

下麵的筆記本演示了如何訓練幾種類型的模型,如何在MLflow中跟蹤訓練數據,以及如何在Delta Lake中存儲跟蹤數據。