5分钟跟踪服务器概述
在本指南中,我们将引导您了解如何使用不同类型的追踪服务器配置来查看您的 MLflow 实验结果。从高层次上讲,有 3 种方式可以查看您的 MLflow 实验
- [方法 1] 启动您自己的 MLflow 服务器。
- [方法 2] 使用免费的托管追踪服务器 - Databricks 免费试用版。
- [方法 3] 使用生产环境的 Databricks/AzureML。
要在这 3 种方法中进行选择,这是我们的建议
- 如果您有隐私方面的顾虑(数据/模型/技术栈),请使用方法 1 - 启动您自己的服务器。
- 如果您是学生或个人研究者,或者您正在基于云的笔记本(例如,Google Colab)中进行开发,请使用方法 2 - 免费托管追踪服务器。
- 企业用户,或者如果您想为生产用例提供服务或部署您的模型,请使用方法 3 - 生产环境的 Databricks/AzureML。
总的来说,方法 2 - 免费托管追踪服务器是开始使用 MLflow 的最简单方式,但请选择最适合您需求的方法。
方法 1:启动您自己的 MLflow 服务器
免责声明:本指南的这部分不适合在云提供的 IPython 环境(例如,Collab,Databricks)中运行。请在您的本地机器(笔记本电脑/台式机)上遵循以下指南。
托管追踪服务器是存储和查看 MLflow 实验的最简单方法,但并非适用于所有用户。例如,您可能不想将您的数据和模型暴露给云提供商帐户中的其他人。在这种情况下,您可以使用本地托管的 MLflow 服务器来存储和查看您的实验。为此,需要两个步骤
- 启动您的 MLflow 服务器。
- 通过
mlflow.set_tracking_uri()
将 MLflow 会话连接到本地 MLflow 服务器 IP。
启动本地 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 工作区上的 MLflow UI 略有不同。 以下是登陆页面的屏幕截图
也可以在云平台上部署您自己的 MLflow 服务器,但这超出了本指南的范围。
将 MLflow 会话连接到您的服务器
现在服务器已经启动,让我们将 MLflow 会话连接到本地服务器。这与我们连接到远程托管追踪提供商(例如 Databricks 平台)的方式非常相似。
mlflow.set_tracking_uri("https://: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("https://: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,在我们的例子中是https://:5000。在 UI 的左侧边栏中,您应该看到名为 "check-localhost-connection" 的实验。单击此实验名称应将您带到实验视图,类似于下面显示的视图。
单击运行(在本例中为"clumsy-steed-426",您的会不同)会将您带到运行视图,如下所示。
结论
这就是关于如何启动您自己的 MLflow 服务器并查看您的实验的全部内容。请参阅下面这种方法的优缺点
-
优点
- 您可以完全控制您的数据和模型,这对于隐私问题非常有用。
- 无需订阅。
- 实验/运行的配额不受限制。
- 您甚至可以通过 Fork MLflow 仓库并修改 UI 代码来自定义您的 UI。
-
缺点
- 需要手动设置和维护。
- 团队协作比使用托管追踪服务器更难。
- 不适合基于云的笔记本,例如 Google Colab。
- 如果您在云 VM 上部署服务器,则需要额外的端口转发。
- 不支持服务。
方法 2:使用免费托管追踪服务器(Databricks 免费试用版)
Databricks 免费试用版 提供了一个体验 Databricks 平台几乎所有功能的良机,包括托管的 MLflow。您可以使用 Databricks 工作区来存储和查看您的 MLflow 实验,而无需在免费试用期内付费。有关如何使用 Databricks 免费试用版来存储和查看您的 MLflow 实验的说明,请参阅尝试托管 MLflow。
结论
此方法的优缺点总结如下
-
优点
- 设置简单。
- 在免费试用积分和期限内免费。
- 有利于协作,例如,您可以轻松地与您的队友分享您的 MLflow 实验。
- 兼容在基于云的笔记本(例如,Google Colab)上进行开发。
- 兼容在云 VM 上进行开发。
-
缺点
- 有配额限制和时间限制。
方法 3:使用生产托管追踪服务器
如果您是企业用户并且愿意将您的模型投入生产,则可以使用像 Databricks 或 Microsoft AzureML 这样的生产平台。 如果您使用 Databricks,MLflow 实验会将您的模型记录到 Databricks MLflow 服务器中,然后您可以注册您的模型并通过几次点击来提供您的模型。
使用生产环境 Databricks 的方法与使用 Databricks 免费试用版相同,您只需要将主机更改为生产工作区即可。 例如,https://dbc-1234567-123.cloud.databricks.com
。 有关 Databricks 如何为您的机器学习工作流程提供支持的更多信息,请参阅此处的文档。
要使用 AzureML 作为追踪服务器,请阅读此处的文档
结论
这就是关于如何使用生产平台作为追踪服务器的全部内容。 请参阅下面这种方法的优缺点
-
优点
- 设置简单。
- 有利于协作,例如,您可以轻松地与您的队友分享您的 MLflow 实验。
- 兼容在基于云的笔记本(例如,Google Colab)上进行开发。
- 兼容在云 VM 上进行开发。
- 无缝的模型注册/服务支持。
- 比 Databricks 免费试用版更高的配额(按需付费)。
-
缺点
- 不是免费的。
- 需要管理计费帐户。