MLFlow机器学习管理平台入门教程一览

什么是mlFlow?

MLFlow机器学习管理平台入门教程一览_第1张图片

mlFlow是一个支持机器学习生命周期的框架。这意味着它拥有在训练和运行期间监控模型的组件、存储模型的能力,在生产代码中加载模型以及创建管道。

该框架引入了3个不同的功能,每个功能都有自己的特性。

MlFlow追踪

追踪可能是框架最有趣的功能。它允许您围绕模型创建广泛的日志记录框架。您可以定义自定义指标,以便在运行后可以将输出与先前的运行进行比较。

我们将主要关注这一部分,同时也让您了解其他功能。

MlFlow项目

此功能允许您根据需要创建管道。此功能使用自己的模板来定义您希望如何在云环境中运行模型。由于大多数公司都有办法在生产环境中运行代码,因此您可能不太关心此功能。

MlFlow模型

最后我们有模型功能。 mlFlow Model是包装机器学习模型的标准格式,可以在各种下游工具中进行使用 - 例如,通过REST API实时提供服务或在Apache Spark上进行批量推理。

理论完成:时间到了

那么这个理论总是很好,但是现在是时候进行更多的实践。首先,我们需要在实际启动之前启动mlFlow服务器。为了做到这一点,我创建了一个docker容器,以便于部署。

在我们展示代码之前,配置存储后端也很重要。由于我们希望将模型存储在某个地方,我选择了Azure blob存储(请注意,AWS S3也受支持)。

然后,创建一个blob存储账户并在里面创建一个容器。

MLFlow机器学习管理平台入门教程一览_第2张图片

Blob存储帐户Azure

一旦创建它,您将需要写下wasb链接,因为您将需要此值来启动docker。 url通常定义如下:“wasbs:// @ .blob.core.windows.net”

接下来我们可以开始构建docker了。由于mlFlow需要python,我从python图像开始,使工作更轻松了一些。基本上,只要确保容器中有Python可用,就可以从任何映像开始。您需要为此示例安装的唯一2个包如下:

  • 0.8.0 mlflow版本
  • azure存储0.36.0

要获得完整的docker解决方案,只需查看我的Github帐户:https://github.com/Ycallaer/mlflowdocker

接下来,如果您不知道如何查看自述文件,则需要构建容器。

在本地计算机上启动docker镜像后,应通过以下URL获取:http:// localhost:5000 /

如果一切顺利,您的主页可能看起来像这样。

MLFlow机器学习管理平台入门教程一览_第3张图片

主页mlFlow

调整模型以使用mlFlow

一旦服务器部件准备就绪,就可以调整我们的代码了。我已经创建了一个小型ARIMA模型实现来展示框架。

在开始之前,我们需要定义运行服务器的URL。您可以通过调用方法“set_tracking_uri”来完成此操作。这是本演示的硬编码,但理想情况下,这将指向一个公共端点。

接下来,我们需要创建一个实验。这应该是唯一的标识符,确保它唯一的一种方法是每次调用expirement方法时生成一个uuid。在我的例子中,我硬编码了它以加速演示。

通过调用“start_run()”方法,我们告诉mlFlow这是运行的起点,这将为您的运行设置开始日期。不要忘记将实验id传递给方法,以便所有日志记录都保持在实验中。

省略实验ID将导致所有日志被写入默认过期。

MLFlow机器学习管理平台入门教程一览

开始点mlFlow 追踪

接下来,我们需要指定在运行期间要监视的值。一方面,您有“log_param()”,它记录字符串值的键值对。另一方面,我们有“log_metric()”,它只允许您将值定义为整数。

MLFlow机器学习管理平台入门教程一览

log_param和log_metric的示例

视觉效果

现在让我们回到UI,看看我们的运行的可视结果是什么。在主页上,您会在左侧找到您的实验。

MLFlow机器学习管理平台入门教程一览_第4张图片

主页与实验

如果单击日期,您将获得该特定运行的概述。

MLFlow机器学习管理平台入门教程一览_第5张图片

实验的详细信息

在指标旁边,您会看到一个图形符号,如果单击此符号,您可以看到此单个指标在运行期间的变化情况。

MLFlow机器学习管理平台入门教程一览_第6张图片

指标的详细图表

保存模型

我们还希望能够使用框架保存模型。该框架允许您以与大多数流行框架兼容的格式加载和保存模型(例如:Scikit,Pytorch,Tensorflow,...)。有关完整列表,请查看此处。(https://mlflow.org/docs/latest/models.html)

将模型保存为工件的代码非常简单:

MLFlow机器学习管理平台入门教程一览_第7张图片

mlFlow中log_model调用的示例

拟合的结果将作为第一个参数传递给函数,第二个部分是目录。如果您导航到UI并单击运行,您将在页面底部找到工件信息。

MLFlow机器学习管理平台入门教程一览_第8张图片

模型从mlFlow保存在Azure上

如果您是偏执狂的类型,您现在可以查看blob存储帐户,以验证模型是否已实际保存。

MLFlow机器学习管理平台入门教程一览_第9张图片

在blob存储模型

如果需要,您可以查看load特性并开始围绕模型构建应用程序。

可以在Github上找到用于此演示的完整repo。(https://github.com/Ycallaer/ArimaMlfowExample)

问题

我在框架中发现的更大问题是,即使您已经定义了存储后端,所有日志记录也只存储在docker容器中。这意味着如果重新启动容器,则所有日志记录都将丢失。我记录了一个问题(https://github.com/mlflow/mlflow/issues/613),它得到了当前团队正在重新设计日志记录功能的响应。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31545819/viewspace-2286441/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31545819/viewspace-2286441/

你可能感兴趣的:(MLFlow机器学习管理平台入门教程一览)