试用托管式 MLflow
Databricks 免费试用为您提供无需事先拥有云提供商访问权限即可体验 Databricks 平台的绝佳机会。大部分 Databricks 功能,包括完整的 MLflow 功能,在试用期内均可使用,您可以使用试用额度来探索平台。您仅需使用电子邮件创建账户,除非您决定升级到付费计划并注册支付信息,否则不会产生费用。要开始 Databricks 免费试用,请访问 Databricks 试用注册页面 并按照其中概述的说明进行操作。设置大约需要 5 分钟,您将拥有一个功能近乎齐全的 Databricks Workspace,用于记录您的教程实验、运行和工件。
登录 Databricks Workspace 后,您将看到如下所示的着陆页
要访问 MLflow UI,您可以点击左侧的“实验”链接(由烧杯图标表示)导航到它。当您第一次在 Databricks 上访问 MLflow UI 时,您将看到以下内容
关于在哪里运行 Notebook 的决策
借助 Databricks 托管的 MLflow 实例,您有两种运行教程 Notebook 的选项:直接将 Notebook 导入 Databricks Workspace,或在本地运行 Notebook 并使用 Databricks Workspace 作为远程跟踪服务器。
将 Notebook 直接导入 Databricks Workspace
到达 Databricks Workspace 主页后,您可以导入本教程中的任何 Notebook。首先,在教程页面中点击“下载此 Notebook”按钮以下载教程 Notebook。然后导航到左侧的“Workspace”选项卡并点击该链接打开 Workspace 页面。从那里,导航到 Home 并右键点击以调出“导入”选项。下图显示了如果您要直接从 MLflow 文档网站导入 Notebook 时导入对话框应有的外观
至此,您可以直接运行教程。所有用于创建实验、启动运行、记录元数据和保存工件的 MLflow 调用都将完全为您管理,并且您的日志历史记录将显示在 MLflow UI 中。在 Databricks 平台上,每个 Notebook 都会自动创建一个 MLflow 实验,您可以在教程中跳过 mlflow.set_tracking_uri()
和 mlflow.set_experiment()
调用。
在本地运行 Notebook 并使用 Databricks Workspace 作为远程跟踪服务器
为了让您无需离开本地机器的舒适环境即可使用托管式 MLflow 跟踪服务器,您基本上需要
- 生成个人访问令牌 (PAT)
- 在您的开发环境中设置 Databricks workspace 身份验证。
- 在 MLflow 实验会话中连接到您的 Databricks Workspace。
生成 PAT
按照此指南中的步骤为您的 Databricks workspace 用户创建 PAT。
安装依赖项
在您的开发环境中运行以下命令以安装依赖项。
%pip install -q mlflow
设置 Databricks Workspace 身份验证
要设置 Databricks Workspace 身份验证,我们可以使用 API mlflow.login()
,它将提示您输入所需信息
- Databricks 主机:使用 "https://<您的 workspace 主机>.cloud.databricks.com/
- 令牌:您的 Databricks Workspace 的个人访问令牌。
如果身份验证成功,您应该看到消息“Successfully signed in Databricks!”。
import mlflow
mlflow.login()
2025/02/19 12:25:04 INFO mlflow.utils.credentials: No valid Databricks credentials found, please enter your credentials...
Databricks Host (should begin with https://): https://<your workspace host>.cloud.databricks.com/
Token: ········
2025/02/19 12:26:24 INFO mlflow.utils.credentials: Successfully connected to MLflow hosted tracking server! Host: https://<your workspace host>.cloud.databricks.com.
将 MLflow 会话连接到 Databricks Workspace
我们已经设置了凭据,现在我们需要告诉 MLflow 将数据发送到 Databricks Workspace。为此,我们将使用 mlflow.set_tracking_uri("databricks")
将 MLflow 连接到 Databricks Workspace。这基本上就是下面的命令。请注意,您始终需要使用“databricks”作为关键字。
mlflow.set_tracking_uri("databricks")
现在您已准备就绪!让我们尝试启动一个 MLflow 实验并记录一些虚拟指标并在 UI 中查看。首先,您需要按照此指南创建一个 Unity Catalog Volume test.mlflow.check-databricks-connection
。然后,您可以运行以下代码启动一个使用 Unity Catalog Volume 的实验并将指标记录到其中。请注意,在使用 Databricks Workspace 时,您的实验名称必须遵循 /Users/<您的电子邮件>/<实验名称>
的格式。
mlflow.create_experiment(
"/Users/<your email>/check-databricks-connection",
artifact_location="dbfs:/Volumes/test/mlflow/check-databricks-connection",
)
mlflow.set_experiment("/Users/<your email>/check-databricks-connection")
with mlflow.start_run():
mlflow.log_metric("foo", 1)
mlflow.log_metric("bar", 2)
2025/02/19 12:26:33 INFO mlflow.tracking.fluent: Experiment with name '/Users/<your email>/check-databricks-connection' does not exist. Creating a new experiment.
在 Databricks Workspace 上查看您的实验
现在让我们导航到您的 Databricks Workspace 以查看实验结果。登录您的 Databricks Workspace,然后点击左上方在下拉列表中选择 machine learning。接着点击实验图标。请参见下面的截图
在“实验”视图中,您应该能够找到实验“check-databricks-connection”,类似于
点击运行名称,在我们的示例中是“skillful-jay-111”(这是一个随机生成的名称,您将在您的 Databricks 控制台中看到不同的名称),将带您进入运行视图,类似于
在运行视图中,您将看到您的虚拟指标“foo”和“bar”已成功记录。
至此,您已准备就绪!您可以在本地运行任何教程,它们都将记录到托管式 MLflow 跟踪服务器。