跟蹤機器學習培訓

MLflow跟蹤組件允許您日誌源屬性,參數,規格,標簽,和工件相關培訓機器學習模型。與MLflow開始,嚐試之一MLflow快速入門教程

MLflow跟蹤實驗和運行

MLflow跟蹤是基於兩個概念,實驗運行:

  • 一個MLflow實驗是組織和訪問控製的主要單位MLflow運行;所有MLflow運行屬於一個實驗。實驗讓你想象,尋找和比較,以及下載運行工件和元數據在其他工具進行分析。

  • 一個MLflow運行對應於一個單一的模型代碼的執行。每次運行記錄以下信息:

    • :名字的筆記本推出運行或項目名稱和運行的入口點。

    • 版本:筆記本修訂如果磚工作區中從一個筆記本,如果逃避或Git commit散列磚回購或從一個MLflow項目

    • 開始和結束時間:開始和結束時間的運行。

    • 參數:模型參數保存為鍵值對。鍵和值都是字符串。

    • 指標:保存為鍵值對模型評價指標。值是數字。可以更新每個指標在整個運行過程中(例如,跟蹤你的模型的損失函數收斂),和MLflow記錄允許您可視化指標的曆史。

    • 標簽:運行元數據保存為鍵值對。您可以更新標簽期間和之後運行完成。鍵和值都是字符串。

    • 工件:在任何輸出文件格式。例如,您可以記錄圖像,模型(例如,醃scikit-learn模型),和數據文件(例如,拚花文件)作為一個工件。

MLflow跟蹤API日誌參數、指標、標簽和工件從一個模型運行。跟蹤API與MLflow進行通信跟蹤服務器。當你使用磚,Databricks-hosted跟蹤服務器日誌數據。托管MLflow跟蹤服務器Python, Java,和R api。

學習如何控製實驗中,訪問MLflow實驗權限改變權限的實驗

請注意

MLflow磚上安裝運行時毫升集群。使用MLflow磚集群運行時,您必須安裝mlflow圖書館。說明安裝庫到集群中,看到的安裝一個圖書館集群上。MLflow的特定包安裝:

  • 對於Python,選擇庫源PyPI並輸入mlflow字段。

  • 對於R,選擇庫源凹口,進入mlflow字段。

  • 在Scala中,安裝這兩個包:

    • 選擇庫源Maven和輸入org.mlflow: mlflow-client: 1.11.0坐標字段。

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

MLflow運行在哪裏登錄

MLflow運行都記錄到活性實驗中,可以設置使用下列方法:

如果沒有積極的實驗設置,登錄到運行筆記本的實驗

記錄實驗結果遠程托管的MLflow跟蹤服務器在另一個工作區你運行實驗,設置跟蹤URI引用遠程工作空間mlflow.set_tracking_uri (),將路徑設置為遠程實驗工作區使用mlflow.set_experiment ()

mlflowset_tracking_uri(<uri_of_remote_workspace>)mlflowset_experiment(“遠程實驗工作區之路”)

日誌的例子筆記本

這個筆記本顯示如何日誌運行一個筆記本實驗和工作空間實驗。隻有MLflow運行啟動筆記本可以記錄到筆記本中實驗。MLflow運行發射的任何筆記本或api可以記錄到工作空間實驗。查看運行記錄的信息,看到查看筆記本的實驗視圖空間實驗

運行日誌MLflow筆記本

在新標簽頁打開筆記本

您可以使用Python MLflow、Java或Scala和R api開始運行並記錄運行數據。詳情,請參閱MLflow快速入門的筆記本

組織培訓與MLflow運行實驗

模型實驗是單位組織的培訓。有兩種類型的實驗:工作區和筆記本。

  • 您可以創建一個工作區實驗從磚機器學習的UI或MLflow API。工作區實驗不與任何筆記本,和任何筆記本電腦可以登錄這些實驗的運行使用實驗實驗ID或名稱。

  • 一個筆記本實驗是與一個特定的筆記本。磚自動創建一個筆記本實驗如果沒有積極實驗當你開始運行使用mlflow.start_run ()

看到所有的實驗你可以訪問一個工作區,點擊實驗的圖標實驗在側邊欄。這個圖標出現隻有當你在的時候機器學習的角色

實驗頁麵

搜索實驗中,文本的類型過濾實驗場和新聞輸入或單擊放大鏡圖標。實驗列表會發生相應變化,也就是隻顯示那些實驗中包含搜索文本的名字,,位置,或描述列。

點擊任何實驗表的名稱來顯示其實驗頁麵:

視圖的實驗

實驗運行頁麵列出了所有相關的實驗。從表中,您可以打開任何的運行頁麵點擊其運行與試驗相關的運行的名字。的列給你訪問筆記本版本創建。你也可以搜索和過濾器運行指標或參數設置。

創建工作區實驗

本節描述如何使用磚UI創建工作空間實驗。您可以創建一個工作區直接實驗從工作空間從實驗頁麵

您還可以使用MLflow API,或者是磚起程拓殖的提供者databricks_mlflow_experiment

說明日誌空間實驗運行,明白了日誌的例子筆記本

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

  2. 去你想要的文件夾中創建的實驗。

  3. 做下列之一:

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

      創建實驗

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

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

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

    存儲工件GCS,指定URI的形式g: / / < bucket名> / < file-path-inside-bucket >。構件存儲在GCS MLflow UI不會出現;你必須使用一個對象存儲客戶端下載它們。

    在Azure Blob存儲,存儲工件指定URI的形式wasbs: / / <容器> @ < storage-account >.blob.core.windows.net/ <路徑>。構件存儲在Azure Blob存儲不出現在MLflow UI;你必須使用一個blob存儲客戶端下載它們。

    請注意

    當你除了DBFS工件存儲在一個位置,工件不出現在MLflow UI。模型存儲在其他位置比DBFS不能注冊在注冊表模型。

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

您還可以創建一個新的工作區實驗從實驗頁麵。創建一個新的實驗,使用創建實驗下拉下拉菜單。從下拉菜單中,你可以選擇一個AutoML實驗或一個空白(空的)的實驗。

  • AutoML實驗。的配置AutoML實驗頁麵出現。使用AutoML信息,看到火車毫升與磚AutoML UI模型

  • 空白試驗。的創建MLflow實驗對話框出現了。輸入一個名稱和可選的工件位置在對話框中創建一個新的工作區實驗。默認的工件位置dbfs: /磚/ mlflow-tracking / < experiment-id >

    日誌運行實驗,電話mlflow.set_experiment ()與實驗路徑。實驗的道路出現在頁麵頂部的實驗。看到日誌的例子筆記本對細節和一個筆記本。

創建筆記本實驗

當你使用mlflow.start_run()命令在筆記本上運行日誌活動實驗指標和參數。如果沒有實驗是活躍的,磚創建一個筆記本的實驗。一個筆記本實驗共享相同的名稱和ID作為其相應的筆記本。筆記本ID數字標識符的筆記本URL和ID

對指令記錄筆記本實驗運行,明白了日誌的例子筆記本

請注意

如果你刪除一個筆記本實驗使用API(例如,MlflowClient.tracking.delete_experiment ()在Python中),筆記本本身轉移到垃圾文件夾。

視圖的實驗

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

額外的實驗方法來訪問頁麵:

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

  • 您可以訪問一個筆記本實驗的實驗頁麵的筆記本。

視圖空間實驗

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

  2. 去包含實驗的文件夾。

  3. 單擊實驗名稱。

查看筆記本的實驗

在筆記本上的側邊欄,單擊實驗圖標實驗的圖標

實驗運行欄出現,顯示了每次運行的總結與筆記本電腦相關聯的實驗,包括運行參數和指標。側邊欄的頂部的名字是筆記本最近記錄運行的實驗(實驗筆記本或工作區實驗)。

查看運行參數和指標

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

  • 查看實驗,點擊外部鏈接在最右邊,旁邊實驗運行

  • 顯示一個運行的名稱,單擊運行。

管理實驗

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

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

預覽

這個特性是在公共預覽

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

重命名實驗從工作區菜單

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

  2. 去包含實驗的文件夾。

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

複製實驗名稱

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

實驗名稱圖標

您還可以複製的實驗名稱實驗側欄的筆記本

刪除筆記本實驗

筆記本實驗是筆記本的一部分,不能單獨刪除。當你刪除一個筆記本刪除,相關的筆記本實驗。當你刪除一個筆記本實驗使用UI,筆記本也刪除。

刪除筆記本實驗使用API,使用工作區API 2.0確保筆記本和實驗都從工作區中刪除。

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

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

  2. 去包含實驗的文件夾。

  3. 點擊菜單下拉在右邊的實驗和選擇移動到垃圾

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

預覽

這個特性是在公共預覽

刪除的實驗實驗頁麵或者是實驗頁麵,點擊三個按鈕圖標並選擇刪除

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

改變權限的實驗

改變權限的一個實驗實驗頁麵,點擊分享

實驗頁麵權限按鈕

你可以改變權限的一個實驗,你自己的實驗頁麵。點擊三個按鈕圖標行動列和選擇許可

關於實驗的權限的更多信息,請參閱MLflow實驗權限

在工作區之間複製實驗

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

使用這些工具,您可以:

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

  • 從你當地的跟蹤服務器複製MLflow實驗和運行你的磚工作區。

  • 備份關鍵任務的實驗和模型到另一個磚工作區。

管理培訓與MLflow運行代碼

所有MLflow運行都記錄到活性實驗。如果沒有顯式地設置一個實驗活性試驗,運行記錄到筆記本的實驗。

查看運行

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

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

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

運行屏幕顯示使用的參數運行,運行產生的指標,任何標簽或筆記。來顯示筆記,參數,指標,或標簽運行,點擊的箭頭左邊的標簽。

你也從運行在這個屏幕訪問工件保存。

查看運行

代碼片段預測

如果你從運行日誌模型,該模型的構件部分出現在這個頁麵。顯示代碼片段說明如何加載和使用該模型進行預測火花和熊貓DataFrames單擊模型名稱。

預測代碼片段

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

查看版本的筆記本創建了一個運行:

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

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

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

筆記本與運行相關的版本出現在主窗口中突出顯示欄顯示的日期和時間。

如果從遠程啟動運行Git項目,單擊鏈接Git提交現場打開項目的特定版本中使用的運行。內的鏈接的主要分支領域打開使用的Git項目運行。

添加一個標簽

標簽是鍵值,您可以創建和使用後尋找運行

  1. 運行頁麵,點擊標簽圖標如果尚未打開。標簽表出現。

    標簽表
  2. 點擊的名字價值字段和標簽的鍵和值類型。

  3. 點擊添加

    添加標簽

編輯或刪除一個標簽

編輯或刪除現有標簽,使用的圖標行動列。

標簽的行為

複製運行的軟件環境

你可以複製的軟件環境,點擊運行複製運行。以下對話框:

複製運行對話框

使用默認設置,當你點擊確認:

  • 筆記本是克隆位置所示對話框。

  • 如果原始集群仍然存在,克隆的筆記本連接到原始啟動集群和集群。

  • 如果原始集群已經不複存在,一個新的集群使用相同的配置,包括任何安裝庫,創建並啟動。筆記本連接到新的集群。

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

  • 選擇一個不同的文件夾保存克隆筆記本,點擊編輯文件夾

  • 看到集群規範,點擊視圖規範。克隆隻有筆記本而不是集群,請取消選中此選項。

  • 看到庫安裝在原來的集群中,點擊查看庫。如果你不關心的原始集群安裝相同的庫,請取消選中此選項。

管理運行

重命名運行

重命名一個運行,點擊三個按鈕圖標右上角的頁麵並選擇運行重命名

過濾器運行

您可以搜索基於運行參數或度量值。你也可以通過標簽搜索運行。

  • 搜索匹配表達式包含運行參數和度量值,在搜索框中輸入查詢,單擊搜索。有一些查詢語法的例子:

    metrics.r2>0.3

    params.elasticNetParam=0.5

    params.elasticNetParam=0.5metrics.avg_areaUnderROC>0.3

  • 通過標簽搜索運行,輸入標簽的格式:標簽。<鍵> = <價值>”。必須包含在引號字符串值如圖所示。

    tags.estimator_name = " RandomForestRegressor "

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

    兩個鍵和值可以包含空格。如果鍵包含空格,必須附上在引號如圖所示。

    標簽。“我的定製標記”=“我的價值”

你也可以過濾運行基於他們的狀態(主動或刪除)和基於模型版本是否與運行。要做到這一點,讓你的選擇的狀態創建的時間下拉菜單。

過濾器運行

比較這兩種

你可以比較從一個實驗或從多個實驗。的比較運行頁麵呈現的信息選擇運行在圖形和表格格式。

從一個單一的實驗進行比較
  1. 實驗頁麵,選擇兩個或兩個以上的運行通過點擊複選框左邊的來看,或選擇所有運行通過檢查盒子頂部的列。

  2. 點擊比較。的比較“< N >”屏幕上運行出現了。

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

  2. 點擊比較(n)(n你選擇是實驗的數量)。屏幕上顯示所有的從您選擇的實驗。

  3. 選擇兩個或兩個以上的運行通過點擊複選框左邊的來看,或選擇所有運行通過檢查盒子頂部的列。

  4. 點擊比較。的比較“< N >”屏幕上運行出現了。

使用比較運行頁麵

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

創建一個可視化:

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

    1. 對於一個平行坐標圖繪製,選擇參數和指標。從這裏,您可以確定所選的參數和指標之間的關係,這有助於您更好地為您的模型定義hyperparameter優化空間。

      比較運行頁麵可視化
    2. 對於一個散點圖等高線圖,選擇參數或指標顯示在每個軸上。

參數指標表顯示運行參數和指標選擇的運行。這些表的列是確定的運行細節表上方。為簡單起見,您可以隱藏參數和指標是相同的在所有選擇切換運行隻顯示diff按鈕

比較運行頁表

下載運行

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

  2. 點擊下載CSV。下載一個CSV文件,其中包含以下字段:

    運行ID、名稱、源類型、源名稱、用戶狀態、< parameter1 >、< parameter2 >,…, < metric1 >、< metric2 >,……

刪除運行

  1. 在實驗中,選擇一個或多個運行中通過點擊左邊的複選框。

  2. 點擊刪除

  3. 如果是父母跑,決定你是否還想刪除後裔。默認情況下這個選項被選中。

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

在工作區之間複製運行

導入或導出MLflow運行或從你的磚的工作空間,您可以使用社區驅動的開源項目MLflow進出口

從外部訪問MLflow跟蹤服務器數據磚

你也可以寫和讀從跟蹤服務器以外的磚,例如使用MLflow CLI。

分析MLflow通過編程的方式運行

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

這個例子演示了如何使用MLflow Python客戶機構建一個儀表板,可視化評價指標的變化隨著時間的推移,追蹤運行由一個特定用戶的數量,和措施運行在所有用戶的總數:

為什麼模型訓練指標和輸出可能會有所不同嗎

許多ML算法的一個隨機元素,如抽樣或隨機初始條件算法本身。當你訓練一個模型使用這些算法之一,每次運行的結果可能不是相同的,即使你開始運行相同的條件。許多圖書館提供播種機製來解決這些隨機的初始條件的元素。然而,可能會有其他的變化不是由種子來源。一些算法敏感數據的順序,和分布式ML算法也可能受到如何分區數據的影響。一般這種變化不重要和不重要的開發過程模型。

控製變化造成的差異分類和分區,使用PySpark功能重新分區sortWithinPartitions

MLflow跟蹤例子

以下筆記本演示如何訓練幾種類型的模型的訓練數據和跟蹤MLflow以及如何跟蹤數據存儲在三角洲湖。