Databricks 自動記錄
Databricks 自動記錄是一種無程式代碼解決方案,可擴充 MLflow 自動記錄 ,以提供 Azure Databricks 上機器學習訓練課程的自動實驗追蹤。
當您從各種熱門機器學習連結庫定型模型時,會自動擷取 Databricks 自動記錄、模型參數、計量、檔案和譜系資訊。 訓練會話會記錄為 MLflow 追蹤執行。 模型檔案也會追蹤,以便您輕鬆地將其記錄至 MLflow 模型登錄 ,並加以部署,以使用 模型服務進行即時評分。
下列影片顯示互動式 Python 筆記本中使用 scikit-learn 模型訓練課程進行 Databricks 自動記錄。 追蹤資訊會自動擷取並顯示在 [實驗執行] 提要欄和 MLflow UI 中。
需求
- Databricks Autologging 已在 Databricks Runtime 10.4 LTS ML 或更新版本的所有區域中正式推出。
- Databricks Autologging 適用於具有 Databricks Runtime 9.1 LTS ML 或更新版本之選取預覽區域。
運作方式
當您將互動式 Python 筆記本附加至 Azure Databricks 叢集時,Databricks Autologging 會呼叫 mlflow.autolog() 來設定模型定型會話的追蹤。 當您在筆記本中定型模型時,系統會自動使用 MLflow 追蹤來追蹤模型定型資訊。 如需如何保護和管理此模型定型資訊的相關信息,請參閱 安全性和數據管理。
mlflow.autolog() 呼叫的預設組態為:
mlflow.autolog(
log_input_examples=False,
log_model_signatures=True,
log_models=True,
disable=False,
exclusive=False,
disable_for_unsupported_versions=True,
silent=False
)
您可以 自訂自動記錄組態。
使用方式
若要使用 Databricks 自動記錄功能,請使用互動式 Azure Databricks Python 筆記本,在支援的架構中定型機器學習模型。 Databricks 自動記錄會自動將模型歷程資訊、參數和計量記錄到 MLflow 追蹤。 您也可以 自定義 Databricks 自動記錄的行為。
注意
Databricks 自動記錄不會套用至使用 MLflow Fluent API 搭配 mlflow.start_run()
建立的執行。 在這些情況下,您必須呼叫 mlflow.autolog()
以將自動記錄的內容儲存至 MLflow 執行。 請參閱 追蹤其他內容。
自訂記錄行為
若要自定義記錄,請使用 mlflow.autolog()。
此函式提供組態參數來啟用模型記錄 (log_models
)、收集輸入範例 (log_input_examples
)、設定警告 (silent
), 等等。
追蹤其他內容
若要使用 Databricks 自動記錄所建立的 MLflow 執行來追蹤其他計量、參數、檔案和元數據,請遵循 Azure Databricks 互動式 Python 筆記本中的下列步驟:
- 使用
exclusive=False
呼叫 mlflow.autolog() 。 - 使用 mlflow.start_run()啟動 MLflow 執行。
您可以在 中
with mlflow.start_run()
包裝此呼叫;當您這樣做時,執行會在完成之後自動結束。 - 使用 MLflow 追蹤方法,例如 mlflow.log_param()來追蹤預先定型內容。
- 在 Databricks 自動記錄支援的架構中定型一或多個機器學習模型。
- 使用 MLflow 追蹤方法,例如 mlflow.log_metric()來追蹤訓練後的內容。
- 如果您未在步驟 2 中使用
with mlflow.start_run()
,請使用 mlflow.end_run()結束 MLflow 執行。
例如:
import mlflow
mlflow.autolog(exclusive=False)
with mlflow.start_run():
mlflow.log_param("example_param", "example_value")
# <your model training code here>
mlflow.log_metric("example_metric", 5)
停用 Databricks 自動記錄
若要在 Azure Databricks 互動式 Python 筆記本中停用 Databricks 自動記錄功能,請使用 呼叫 mlflow.autolog() :disable=True
import mlflow
mlflow.autolog(disable=True)
管理員 istrators 也可以從 中停用工作區中所有叢集的 Databricks 自動記錄[系統管理員設定] 頁面的 [進階] 索引標籤。 叢集必須重新啟動,此變更才會生效。
支援的環境和架構
互動式 Python 筆記本支援 Databricks 自動記錄功能,而且適用於下列 ML 架構:
- scikit-learn
- Apache Spark MLlib
- TensorFlow
- Keras
- PyTorch Lightning
- XGBoost
- LightGBM
- Gluon
- Fast.ai (1.x 版)
- statsmodels。
如需每個支援架構的詳細資訊,請參閱 MLflow 自動記錄。
安全性和數據管理
使用 Databricks 自動記錄追蹤的所有模型定型資訊都會儲存在 MLflow 追蹤中,並受到 MLflow 實驗許可權保護。 您可以使用 MLflow 追蹤 API 或 UI 來共用、修改或刪除模型定型資訊。
系統管理
管理員 istrators 可以為工作區中的所有互動式筆記本會話啟用或停用 Databricks 自動記錄[系統管理員設定] 頁面的 [進階] 索引標籤。 變更在叢集重新啟動之前不會生效。
限制
- Azure Databricks 作業不支援 Databricks 自動記錄。 若要從作業使用自動記錄,您可以明確呼叫 mlflow.autolog() 。
- Databricks 自動記錄只會在 Azure Databricks 叢集的驅動程序節點上啟用。 若要從背景工作節點使用自動記錄,您必須從每個背景工作角色上執行的程式代碼中明確呼叫 mlflow.autolog()。
- 不支援 XGBoost scikit-learn 整合。
Apache Spark MLlib、Hyperopt 和自動化 MLflow 追蹤
Databricks 自動記錄不會變更 Apache Spark MLlib 和 Hyperopt 的現有自動化 MLflow 追蹤整合行為。
注意
在 Databricks Runtime 10.1 ML 中,停用 Apache Spark MLlib CrossValidator
的自動化 MLflow 追蹤整合,而且 TrainValidationSplit
模型也會停用所有 Apache Spark MLlib 模型的 Databricks 自動記錄功能。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應