跳到主要内容

5 分钟追踪服务器概览

本指南将引导您了解如何通过不同类型的追踪服务器配置查看您的 MLflow 实验结果。总的来说,有 3 种方式可以查看您的 MLflow 实验

  • [方法 1] 启动您自己的 MLflow 服务器。
  • [方法 2] 使用免费托管追踪服务器 - Databricks Free Trial。
  • [方法 3] 使用生产环境的 Databricks/AzureML。

要选择这 3 种方法中的一种,以下是我们的建议

  • 如果您有隐私顾虑(数据/模型/技术栈),请使用方法 1 - 启动您自己的服务器
  • 如果您是学生或个人研究人员,或者如果您在基于云的笔记本(例如 Google Colab)中进行开发,请使用方法 2 - 免费托管追踪服务器
  • 企业用户,或者如果您想为生产用例提供服务或部署模型,请使用方法 3 - 生产环境的 Databricks/AzureML

总的来说,方法 2 - 免费托管追踪服务器 是开始使用 MLflow 的最简单方式,但请选择最适合您需求的方法。

方法 1:启动您自己的 MLflow 服务器

免责声明:本指南的这部分不适用于在云提供的 IPython 环境(例如 Collab, Databricks)中运行。请在您的本地机器(笔记本电脑/台式机)上按照以下指南操作。

托管追踪服务器是存储和查看 MLflow 实验的最简单方式,但它不适合所有用户。例如,您可能不想在您的云提供商账户中向他人暴露您的数据和模型。在这种情况下,您可以使用本地托管的 MLflow 服务器来存储和查看您的实验。为此,需要两个步骤

启动本地 MLflow 服务器

如果您没有安装 MLflow,请运行以下命令进行安装

$ pip install mlflow

MLflow 的安装包含 MLflow CLI 工具,因此您可以在终端中运行以下命令来启动带有 UI 的本地 MLflow 服务器

$ mlflow ui

它将生成包含 IP 地址的日志,例如

(mlflow) [master][~/Documents/mlflow_team/mlflow]$ mlflow ui
[2023-10-25 19:39:12 -0700] [50239] [INFO] Starting gunicorn 20.1.0
[2023-10-25 19:39:12 -0700] [50239] [INFO] Listening at: http://127.0.0.1:5000 (50239)

在浏览器中打开 MLflow 追踪服务器的 URL 将带您进入 MLflow UI。下图是开源版本 MLflow UI 的截图,它与 Databricks Workspaces 上的 MLflow UI 略有不同。以下是着陆页的截图

Landing page of OSS MLflow server

注意

也可以在云平台部署您自己的 MLflow 服务器,但这超出了本指南的范围。

将 MLflow 会话连接到您的服务器

现在服务器已经启动,让我们将 MLflow 会话连接到本地服务器。这与我们将 MLflow 连接到远程托管追踪提供商(例如 Databricks 平台)的方式非常相似。

mlflow.set_tracking_uri("http://localhost:5000")

接下来,让我们尝试记录一些虚拟指标。我们可以在本地托管的 UI 上查看这些测试指标

mlflow.set_experiment("check-localhost-connection")

with mlflow.start_run():
mlflow.log_metric("foo", 1)
mlflow.log_metric("bar", 2)

综合起来,您可以将以下代码复制到您的编辑器并保存为 log_mlflow_with_localhost.py

import mlflow

mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("check-localhost-connection")

with mlflow.start_run():
mlflow.log_metric("foo", 1)
mlflow.log_metric("bar", 2)

然后执行它,通过

$ python log_mlflow_with_localhost.py

在您的 MLflow 服务器上查看实验

现在让我们在本地服务器上查看您的实验。在浏览器中打开 URL,在本例中是 http://localhost:5000。在 UI 中,左侧边栏中您应该看到名为 "check-localhost-connection" 的实验。点击此实验名称应带您进入实验视图,如下图所示。

Experiment view of OSS MLflow server

点击运行(在此示例中是 "clumsy-steed-426",您的名称会不同)将带您进入运行视图,如下图所示。

Run view of OSS MLflow server

总结

以上就是如何启动您自己的 MLflow 服务器并查看实验的全部内容。请参阅以下本方法的优点和缺点

  • 优点

    • 您可以完全控制您的数据和模型,这对于隐私问题很有利。
    • 无需订阅。
    • 实验/运行次数不限。
    • 您甚至可以通过 Fork MLflow 仓库并修改 UI 代码来定制您的 UI。
  • 缺点

    • 需要手动设置和维护。
    • 团队协作比使用托管追踪服务器困难。
    • 不适合基于云的笔记本,例如 Google Colab。
    • 如果您在云 VM 上部署服务器,需要额外的端口转发。
    • 不支持模型服务。

方法 2:使用免费托管追踪服务器 (Databricks Free Trial)

Databricks Free Trial 提供了体验 Databricks 平台几乎全部功能(包括托管式 MLflow)的机会。在免费试用期内,您可以使用 Databricks 工作区存储和查看您的 MLflow 实验,而无需支付费用。有关如何使用 Databricks Free Trial 存储和查看您的 MLflow 实验的说明,请参阅试用托管式 MLflow 的说明。

总结

本方法的优点和缺点总结如下

  • 优点

    • 设置轻松。
    • 在免费试用额度和期限内免费。
    • 利于协作,例如,您可以轻松与团队成员共享您的 MLflow 实验。
    • 兼容基于云的笔记本开发,例如 Google Colab。
    • 兼容云 VM 开发。
  • 缺点

    • 有配额限制和时间限制。

方法 3:使用生产环境托管追踪服务器

如果您是企业用户并希望将模型投入生产,可以使用 Databricks 或 Microsoft AzureML 等生产平台。如果您使用 Databricks,MLflow 实验将把您的模型记录到 Databricks MLflow 服务器中,然后您可以注册模型并通过几次点击提供模型服务。

使用生产环境 Databricks 的方法与使用 Databricks Free Trial 相同,您只需将主机更改为生产工作区即可。例如,https://dbc-1234567-123.cloud.databricks.com。有关 Databricks 如何助力您的机器学习工作流程的更多信息,请参阅此处文档

要使用 AzureML 作为追踪服务器,请阅读此处文档

总结

以上就是如何使用生产平台作为追踪服务器的全部内容。请参阅以下本方法的优点和缺点

  • 优点

    • 设置轻松。
    • 利于协作,例如,您可以轻松与团队成员共享您的 MLflow 实验。
    • 兼容基于云的笔记本开发,例如 Google Colab。
    • 兼容云 VM 开发。
    • 无缝模型注册/服务支持。
    • 配额高于 Databricks Free Trial(按量付费)。
  • 缺点

    • 非免费。
    • 需要管理一个计费账户。