Apache Spark MLlib 和自動化 MLflow 追蹤
重要
此文件已淘汰,且可能未更新。 不再支援此內容中提及的產品、服務或技術。
注意
MLlib 自動化 MLflow 追蹤,在執行 Databricks Runtime 10.1 ML 和更新版本的叢集上已被取代,且在執行 Databricks Runtime 10.2 ML 和更新版本的叢集上已預設為停用。 請改用 MLflow PySpark ML 自動記錄,方法是呼叫 mlflow.pyspark.ml.autolog()
,其預設已啟用 Databricks Autologging。
若要在 Databricks Runtime 10.2 ML 或更新版本中使用舊版 MLlib 自動化 MLflow 追蹤,請藉由設定 Spark 組態 spark.databricks.mlflow.trackMLlib.enabled true
和 spark.databricks.mlflow.autologging.enabled false
來啟用。
MLflow 是一個開放原始碼平台,可供您管理端對端機器學習生命週期。 MLflow 支援在 Python、R 和 Scala 中的追蹤機器學習模型微調。 僅適用於 Python 筆記本,Databricks Runtime 版本資訊版本和相容性以及適用於機器學習的 Databricks Runtime 支援適用於 Apache Spark MLlib 模型微調的自動化 MLflow 追蹤。
藉助 MLlib 自動化 MLflow 追蹤時,當您執行使用 CrossValidator
或 TrainValidationSplit
的微調程式碼時,超參數和評估計量會自動記錄在 MLflow 中。 如果沒有自動化 MLflow 追蹤,您必須對 MLflow 進行明確的 API 呼叫,才能記錄至 MLflow。
管理 MLflow 執行
CrossValidator
或 TrainValidationSplit
會將微調結果記錄為巢狀 MLflow 執行:
- 主要或父執行:
CrossValidator
或TrainValidationSplit
的資訊會記錄到主要執行。 如果已有作用中的執行,則會將資訊記錄到此作用中的執行中,且作用中的執行不會停止。 如果沒有作用中的執行,MLflow 會建立新的執行、記錄到該執行,並在傳回之前結束執行。 - 子執行:每個經測試的超參數設定和對應的評估計量都會記錄到主要執行下的子執行中。
呼叫 fit()
時,Azure Databricks 建議作用中的 MLflow 執行管理;也就是說,請將呼叫 fit()
包裝在 "with mlflow.start_run():
" 陳述式內。
這可確保資訊會記錄在其自身的 MLflow 主要執行下,並讓您更輕鬆地將其他標籤、參數或計量記錄至該執行。
注意
在相同的作用中 MLflow 執行中多次呼叫 fit()
時,其會將這些多次執行記錄到相同的主要執行。 為解決 MLflow 參數和標籤的名稱衝突問題,MLflow 會將 UUID 附加至發生衝突的名稱。
下列 Python 筆記本會示範自動化 MLflow 追蹤。
自動化 MLflow 追蹤筆記本
在筆記本中的最後一個資料格中執行動作後,MLflow UI 應顯示: