共用方式為


Microsoft Fabric 中的機器學習實驗

機器學習實驗是組織和控制的主要單位,用於所有相關的機器學習執行。 執行會對應至模型程式碼的單一執行。 在 MLflow 中,追蹤是以實驗和執行為基礎。

機器學習實驗可讓資料科學家在執行其機器學習程式碼時記錄參數、程式碼版本、計量和輸出檔案。 實驗還可讓您視覺化、搜尋和比較執行,以及下載執行檔案和中繼資料,以便在其他工具中分析。

在本文中,您將深入了解資料科學家如何與機器學習實驗互動,並使用機器學習實驗來組織其開發程序,以及追蹤多個執行。

必要條件

  • Power BI Premium 訂用帳戶。 如果您沒有 Power BI Premium,請參閱如何購買 Power BI Premium
  • 具有指派的 Premium 容量的 Power BI 工作區。

建立實驗

您可以直接從 Power BI 使用者介面 (UI) 中的資料科學首頁或透過撰寫可使用 MLflow API 的程式碼,來建立機器學習實驗。

使用 UI 建立實驗

若要從 UI 建立機器學習實驗:

  1. 建立新的資料科學工作區,或選取現有的工作區。

  2. 從 [新增] 區段中選取 [實驗]

  3. 提供實驗名稱,然後選取 [建立]。 此動作會在工作區內建立空白實驗。

    顯示新功能表中選取 [實驗] 位置的螢幕擷取畫面。

建立實驗之後,您可以開始新增執行來追蹤執行計量和參數。

使用 MLflow API 建立實驗

您也可以使用 mlflow.create_experiment()mlflow.set_experiment() API 直接根據您的製作體驗建立機器學習實驗。 在下列程式碼中,以您的實驗的名稱取代 <EXPERIMENT_NAME>

import mlflow
 
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")

# This will set the given experiment as the active experiment. 
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")

管理實驗內的執行

機器學習實驗包含一組執行,可簡化追蹤和比較。 在實驗中,資料科學家可以瀏覽各種執行,並探索基礎參數和計量。 資料科學家也可以比較機器學習實驗內的執行,以識別哪些參數子集會產生所需的模型效能。

追蹤執行

機器學習執行會對應至模型程式碼的單一執行。

機器學習執行詳細資料頁面的螢幕擷取畫面。

每個執行都包含下列資訊:

  • 來源:建立執行的筆記本的名稱。
  • 已註冊的版本:表示執行是否儲存為機器學習模型。
  • 開始日期:執行的開始時間。
  • 狀態:執行的進度。
  • 超參數:超參數儲存為索引鍵/值組。 索引鍵和值都是字串。
  • 計量:執行儲存為索引鍵/值組的計量。 值為數值。
  • 輸出檔案:任何格式的輸出檔案。 例如,您可以記錄影像、環境、模型和資料檔案。

檢視最近的執行

您也可以直接從工作區清單檢視,來檢視實驗的最近執行。 此檢視可讓您追蹤最近的活動、快速跳至相關的 Spark 應用程式,並根據執行狀態套用篩選。

機器學習最近執行和 Spark 應用程式檢視的螢幕擷取畫面。

比較和篩選執行

若要比較和評估機器學習執行的品質,您可以比較實驗內所選執行之間的參數、計量和中繼資料。

以視覺化方式比較執行

您可以在現有實驗內以視覺化方式比較和篩選執行。 視覺比較可讓您輕鬆地在多個執行之間瀏覽,並加以排序。

顯示執行清單和圖表檢視的螢幕擷取畫面。

若要比較執行:

  1. 選取包含多個執行的現有機器學習實驗。
  2. 選取 [檢視] 索引標籤,然後移至 [執行清單] 檢視。 或者,您也可以直接從 [執行詳細資料] 檢視選取 [檢視執行清單] 選項。
  3. 展開 [自訂資料行] 窗格,以自訂資料表中的資料行。 在這裡,您可以選取您想要查看的屬性、計量和超參數。
  4. 展開 [篩選] 窗格,根據特定選取的準則縮小結果範圍。
  5. 選取多個執行,以在 [計量比較] 窗格中比較其結果。 在此窗格中,您可以變更圖表標題、視覺效果類型、X 軸、Y 軸等等,進而自訂圖表。

使用 MLflow API 比較執行

資料科學家也可以使用 MLflow 來查詢和搜尋實驗內的執行。 您可以瀏覽 MLflow 文件,以探索更多 MLflow API,用於搜尋、篩選和比較執行。

取得所有執行

您可以使用 MLflow 搜尋 API mlflow.search_runs() 來取得實驗中的所有執行,方法是在下列程式碼中,以您的實驗名稱取代 <EXPERIMENT_NAME>,或以您的實驗 ID 取代 <EXPERIMENT_ID>

import mlflow

# Get runs by experiment name: 
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])

# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])

提示

您可以透過向 experiment_ids 參數提供實驗 ID 清單,來搜尋多個實驗。 同樣地,向 experiment_names 參數提供實驗名稱的清單,可讓 MLflow 搜尋多個實驗。 如果您想要比較不同實驗中的執行,這可能會很有用。

順序和限制執行

使用 search_runs 中的參數 max_results 來限制傳回的執行數目。 參數 order_by 可讓您列出要排序的資料行,而且可以包含選用的 DESCASC 值。 例如,下列範例會傳回實驗中的最後一個執行。

mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])

比較 Fabric 筆記本內的執行

您可以使用 Fabric 筆記本內的 MLFlow 製作小工具來追蹤每個筆記本資料格內產生的 MLflow 執行。 小工具可讓您追蹤執行、相關聯的計量、參數和屬性,直至個別資料格層級。

若要取得視覺比較,您也可以切換至 [執行比較] 檢視。 此檢視會以圖形方式呈現資料,協助快速識別不同執行中的模式或偏差。

顯示如何使用 MLFlow 製作小工具的螢幕擷取畫面。

將執行儲存為機器學習模型

一旦執行產生所需的結果,您可以選取 [另存為 ML 模型],將執行儲存為增強模型追蹤和模型部署的模型。

顯示在何處選取 [建立新模型] 的螢幕擷取畫面。