共用方式為


Databricks Autologging

此頁面將涵蓋自訂 Databricks 自動記錄,在你透過各種熱門機器學習程式庫訓練模型時,該功能會自動擷取模型參數、計量、檔案和譜系資訊。 訓練工作階段會記錄為 MLflow 追蹤執行。 也會追蹤模型檔案,以便你輕鬆地將其記錄至 MLflow 模型登錄

注意

如果要啟用生成式 AI 工作負載的追蹤記錄,MLflow 支援 OpenAI 自動記錄

下列影片顯示 Databricks Autologging 與互動式 Python 筆記本中的 scikit-learn 模型訓練工作階段。 會自動擷取追蹤資訊並顯示在 [實驗執行] 側邊欄和 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 Tracking 來自動追蹤模型訓練資訊。 如需如何保護和管理此模型訓練資訊的相關資訊,請參閱安全性和資料管理

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 Autologging,請使用互動式 Azure Databricks Python 筆記本,在支援的架構中訓練機器學習模型。 Databricks Autologging 會自動將模型譜系資訊、參數和計量記錄到 MLflow Tracking。 你也可以自訂 Databricks Autologging的行為

注意

Databricks Autologging 不會套用至使用 MLflow Fluent APImlflow.start_run() 建立的執行。 在這些情況下,你必須呼叫 mlflow.autolog() 以將自動記錄的內容儲存至 MLflow 執行。 請參閱追蹤其他內容

自訂記錄行為

如果要自訂記錄,請使用 mlflow.autolog()。 此函數提供組態參數來啟用模型記錄 (log_models)、記錄資料集 (log_datasets)、收集輸入範例 (log_input_examples)、記錄模型簽名 (log_model_signatures)、設定警告 (silent) 等等。

追蹤其他內容

如果要使用 Databricks Autologging 所建立的 MLflow 執行來追蹤其他計量、參數、檔案和中繼資料,請遵循 Azure Databricks 互動式 Python 筆記本中的下列步驟:

  1. 使用 exclusive=False 呼叫 mlflow.autolog()
  2. 使用 mlflow.start_run() 啟動 MLflow 執行。 你可以在 with mlflow.start_run() 中裝合此呼叫;當你這樣做時,執行會在完成之後自動結束。
  3. 使用 MLflow 追蹤方法,例如 mlflow.log_param(),來追蹤預先訓練內容。
  4. 在 Databricks Autologging 支援的架構中訓練一個或多個機器學習模型。
  5. 使用 MLflow 追蹤方法,例如 mlflow.log_metric(),來追蹤訓練後的內容。
  6. 如果你未在步驟 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 Autologging

如果要在 Azure Databricks 互動式 Python 筆記本中停用 Databricks Autologging,請使用 disable=True 呼叫 mlflow.autolog()

import mlflow
mlflow.autolog(disable=True)

管理員也可以從管理員設定頁面的 [進階]索引標籤中停用工作區中所有叢集的 Databricks Autologging。 必須重新啟動叢集,此變更才能生效。

支援的環境和架構

互動式 Python 筆記本支援 Databricks Autologging,而且適用於下列 ML 架構:

  • scikit-learn
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai
  • statsmodels
  • PaddlePaddle
  • OpenAI
  • LangChain

如需每個支援架構的詳細資訊,請參閱 MLflow 自動記錄

MLflow 追蹤啟用

MLflow 追蹤會利用個別模型架構整合內的 autolog 功能來控制追蹤支援的啟用或停用,以進行支援追蹤的整合。

例如,如果要在使用 LlamaIndex 模型時啟用追蹤,請使用 mlflow.llama_index.autolog() 搭配 log_traces=True

import mlflow
mlflow.llama_index.autolog(log_traces=True)

支援在其自動記錄實作內啟用追蹤的整合如下:

安全性和資料管理

使用 Databricks Autologging 追蹤的所有模型訓練資訊都會儲存在 MLflow Tracking 中,並受到 MLflow 實驗權限的保護。 可以使用 MLflow Tracking API 或 UI 來共用、修改或刪除模型訓練資訊。

系統管理

管理員可以在管理員設定頁面的 [進階] 索引標籤中,針對其工作區中的所有互動式筆記本工作階段啟用或停用 Databricks Autologging。 重新啟動叢集之後,變更才會生效。

限制

  • Azure Databricks 作業不支援 Databricks Autologging。 如果要從作業中使用自動記錄,你可以明確呼叫 mlflow.autolog()
  • Databricks Autologging 只會在 Azure Databricks 叢集的驅動程式節點上啟用。 如果要在背景工作角色節點使用自動記錄,必須從每個背景工作角色上執行的程式碼中明確呼叫 mlflow.autolog()
  • 不支援 XGBoost scikit-learn 整合。

Apache Spark MLlib、Hyperopt 和自動化 MLflow 追蹤

Databricks Autologging 不會變更 Apache Spark MLlibHyperopt 的現有自動化 MLflow 追蹤整合的行為。

注意

在 Databricks Runtime 10.1 ML 中,停用 Apache Spark MLlib CrossValidatorTrainValidationSplit 模型的自動化 MLflow 追蹤整合也會停用所有 Apache Spark MLlib 模型的 Databricks Autologging 功能。