本页介绍如何自定义 Databricks Autologging,在从各种热门机器学习库训练模型时,该日志会自动捕获模型参数、指标、文件和世系信息。 训练会话记录为 MLflow 跟踪运行。 还会跟踪模型文件,以便可以轻松地将它们记录到 MLflow 模型注册表。
备注
若要为生成式 AI 工作负载启用跟踪日志记录,MLflow 支持 OpenAI 自动记录。
以下视频演示了在交互式 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 Autologging,请使用交互式 Azure Databricks Python 笔记本在 支持的框架 中训练机器学习模型。 Databricks 自动日志记录会将模型世系信息、参数和指标自动记录到 MLflow 跟踪。 还可以自定义 Databricks 自动日志记录的行为。
备注
Databricks 自动日志记录不适用于使用 MLflow fluent API 以及 mlflow.start_run()
创建的运行。 在这些情况下,必须调用 mlflow.autolog()
将自动记录的日志保存到 MLflow 运行中。 请参阅跟踪其他内容。
若要自定义日志记录,请使用 mlflow.autolog()。
此函数提供配置参数,用于启用模型日志记录 (log_models
)、日志数据集 (log_datasets
)、收集输入示例 (log_input_examples
)、日志模型签名 (log_model_signatures
)、配置警告 (silent
) 等。
若要使用 Databricks 自动日志记录创建的 MLflow 运行跟踪其他指标、参数、文件和元数据,请按照以下 Azure Databricks 交互式 Python 笔记本中的步骤操作:
-
使用
exclusive=False
。 使用 mlflow.start_run()启动 MLflow 运行。
可以在
with mlflow.start_run()
中包装此调用;执行此操作时,运行会在完成后自动结束。使用 MLflow 跟踪方法,例如
mlflow.log_param(),用于跟踪预训练内容。
在 Databricks 自动日志记录支持的框架中训练一个或多个机器学习模型。
使用 MLflow 跟踪方法,例如
mlflow.log_metric(),用于跟踪训练后的内容。
如果未在步骤 2 中使用
with mlflow.start_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)
若要在 Azure Databricks 交互式 Python 笔记本中禁用 Databricks 自动日志记录,请使用 来调用 disable=True
:
import mlflow
mlflow.autolog(disable=True)
管理员还可以从管理员设置页的“高级”选项卡为工作区中的所有群集禁用 Databricks 自动记录。 必须重启群集,此更改才能生效。
Databricks 自动日志记录在交互式 Python 笔记本中受支持且可用于以下 ML 框架:
- scikit-learn
- Apache Spark MLlib
- TensorFlow
- Keras
- PyTorch Lightning
- XGBoost
- LightGBM
- Gluon
- Fast.ai
- statsmodels
- PaddlePaddle
- OpenAI
- LangChain
有关每个受支持的框架的详细信息,请参阅 MLflow 自动日志记录。
MLflow 跟踪利用相应模型框架集成中的 autolog
功能,控制对支持跟踪的集成的跟踪支持的启用或禁用。
例如,若要在使用 LlamaIndex 模型时启用跟踪,请使用 mlflow.llama_index.autolog() 和 log_traces=True
:
import mlflow
mlflow.llama_index.autolog(log_traces=True)
在其自动日志实现中启用跟踪的受支持集成包括:
使用 Databricks Autologging 跟踪跟踪的所有模型训练信息都存储在 MLflow 跟踪中,并由 MLflow 试验权限保护。 可以使用 MLflow 跟踪 API 或 UI 共享、修改或删除模型训练信息。
管理员可以在其工作区的“管理员设置”页的“高级”选项卡中启用或禁用所有交互式笔记本会话的 Databricks 自动记录。 在重启群集之前,更改不会生效。
- Databricks 自动日志记录仅在 Azure Databricks 群集的驱动程序节点上启用。 若要在工作节点上使用自动记录,必须在每个工作节点运行的代码中明确调用 mlflow.autolog()。
- 不支持 XGBoost scikit-learn 集成。
Databricks Autologging 不会更改 Apache Spark MLlib 和 Hyperopt 的现有自动 MLflow 跟踪集成的行为。
备注
在 Databricks Runtime 10.1 ML 中,禁用适用于 Apache Spark MLlib CrossValidator
和 TrainValidationSplit
模型的自动 MLflow 跟踪集成也会禁用适用于所有 Apache Spark MLlib 模型的 Databricks 自动日志记录功能。