共用方式為


Apache Spark MLlib 和自動化 MLflow 追蹤

注意

在執行 Databricks Runtime 10.1 ML 和更新版本之叢集上,MLlib 自動化 MLflow 追蹤已被取代,且在執行 Databricks Runtime 10.2 ML 和更新版本之叢集上預設會停用它。 請改用 MLflow PySpark ML 自動記錄 ,方法是呼叫 mlflow.pyspark.ml.autolog() ,其預設會使用 Databricks 自動記錄 啟用。

若要在 Databricks Runtime 10.2 ML 或更新版本中使用舊的 MLlib 自動化 MLflow 追蹤,請藉由設定 Spark 組態 spark.databricks.mlflow.trackMLlib.enabled truespark.databricks.mlflow.autologging.enabled false 來啟用它。

MLflow 是一個開放原始碼平臺,用於管理端對端機器學習生命週期。 MLflow 支援在 Python、R 和 Scala 中追蹤機器學習模型微調。 針對僅限 Python 筆記本, Databricks Runtime 版本資訊版本資訊以及適用于 機器學習 的 Databricks Runtime 支援 Apache Spark MLlib 模型的自動化 MLflow 追蹤

使用 MLlib 自動化 MLflow 追蹤時,當您執行使用 CrossValidatorTrainValidationSplit 的微調程式碼時,超參數和評估計量會自動記錄在 MLflow 中。 如果沒有自動化的 MLflow 追蹤,您必須對 MLflow 進行明確的 API 呼叫,才能記錄至 MLflow。

管理 MLflow 執行

CrossValidatorTrainValidationSplit 將微調結果記錄為巢狀 MLflow 執行:

  • 主要或父執行:或 TrainValidationSplit 的資訊 CrossValidator 會記錄到主要執行。 如果已經有作用中的執行,則會將資訊記錄到此作用中執行中,且作用中執行不會停止。 如果沒有作用中的執行,MLflow 會建立新的回合、記錄到該執行,並在傳回之前結束執行。
  • 子執行:每個經測試的超參數設定和對應的評估計量都會記錄到主要執行下的子回合。

呼叫 fit() 時,Azure Databricks 建議使用中的 MLflow 執行管理;也就是說,請將 呼叫 fit() 包裝在 「 with mlflow.start_run(): 」 語句內。 這可確保資訊會記錄在自己的 MLflow 主要執行下,並讓您更輕鬆地將其他標籤、參數或計量記錄至該執行。

注意

在相同的作用中 MLflow 執行中多次呼叫 時 fit() ,它會將這些多個執行記錄到相同的主要執行。 若要解決 MLflow 參數和標籤的名稱衝突,MLflow 會將 UUID 附加至發生衝突的名稱。

下列 Python 筆記本示範自動化 MLflow 追蹤。

自動化 MLflow 追蹤筆記本

取得筆記本

在筆記本的最後一個資料格中執行動作之後,您的 MLflow UI 應該會顯示:

MLlib-MLflow demo