MLOps极致细节:16. Azure ML Pipeline(机器学习管道),Azure Compute Instance搭建与使用

MLOps极致细节:16. Azure ML Pipeline(机器学习管道),Azure Compute Instance搭建与使用

这篇博客与下篇博客,我们将介绍Azure ML Pipeline的使用,并且结合MLFlow一起跟踪ML模型。这篇博客我们将着重介绍如何在本地环境或者新建Azure Compute Instance平台,把代码跑起来。

正如此系列博客之前所描述,MLFlow是一个很好的MLOps管理的开源软件。这里我们可以使用MLFlow的Tracking模块记录和跟踪训练运行指标和模型项目,而不管试验环境是位于本地计算机、远程计算目标、虚拟机还是 Azure Databricks 群集上,并最终将其存储在 Azure 机器学习工作区中。如下图:

在这里插入图片描述



1 Azure ML Pipeline 机器学习管道介绍

回顾我们最开始的时候关于MLOps的介绍,我们画了张图,来解释整个MLOps工作流:

在这里插入图片描述

训练这个模块大致包含了Azure ML Pipeline的各个模块:

  • 数据准备/数据引入
  • 模型训练
  • 模型测试/模型评估
  • 模型打包/模型注册

这里我们将通过一个例子来解释Azure Machine Learning Pipeline是怎么被使用的。

2 选择代码运行平台:本地 OR Azure Compute Instance

我们可以选择将我们的代码在Azure Compute Instance(Azure计算平台)上跑,或者在本地运行。如果在本地运行,则需要执行章节2.1的在本地搭建虚拟环境步骤;反之,如果在Azure Compute Instance运行,则需要执行章节2.2的步骤。

2.1 本地运行:搭建虚拟环境

(此章节意在帮助我们在本地运行代码。我们将代码从gitee上clone到本地。)

首先,我们在Windows的平台下安装Anaconda3。具体的安装步骤此处略过,参见Anaconda的官方文档。

安装完后,新建虚拟环境。使用conda create -n [your_env_name] python=X.X(3.6)命令创建python版本为X.X、名字为your_env_name的虚拟环境。根据Install the Azure Machine Learning SDK for Python描述,如果是要安装azureml-core,最好对应的python版本是3.6或者3.7。

安装完默认的依赖后,我们进入虚拟环境:conda activate [your_env_name]。注意,如果需要退出,则输入conda deactivate。另外,如果Terminal没有成功切换到虚拟环境,可以尝试conda init powershell,然后重启terminal。

然后,我们在terminal中进入文件夹4-AzureMLPipeline,虚拟环境中下载好相关依赖:pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple。(此处依赖的版本基于python 3.6)

最后运行主代码:python main.py

2.2 Azure Compute Instance运行代码

作为一个标准的端到端Azure解决方案,Azure自然也提供了非常完善的虚拟机平台。

接下来,我们需要新建一个Azure compute instance,即一个计算资源。登陆Azure Portal,进入我们的Machine Learning Workspace账号,然后点击launch studio。我们需要找到Compute按钮,如下图:

在这里插入图片描述

Compute Instance列下,我们点击Create以浏览Azure云上可用资源。

在这里插入图片描述

我们选择一个合适VM,如下图:

在这里插入图片描述

这里我们选择的是Standard_DS3_v2,4 cores, 14GB RAM, 28GB storage,每个小时0.29美元。对我们来说足够了。这里有几点需要注意。首先是,目前,我们的resource group地点设置的是East US。我们之前也尝试过设置在SouthEast Asia,会碰到如下问题:

在这里插入图片描述

也就是说,在一些区域,由于用的人很多,所以很多时候Quote就不够了,需要自己申请。我会另外写一篇博客解释如何申请Quote。

可能我们会遇到一个问题,就是系统提醒我们upgrade to pay-as-you-go subscrption。就是说,当前我们的账户是免费账户,并且有200USD,有一些服务是收费的,需要我们先把这个免费账户升级到付费账户。比如新建一个VM,按小时收费,但这个费用会从200USD中扣,所以对我们来说还是免费的。

在这里插入图片描述

另外,这里申请的VM不需要很高配置,因为如果我们真的需要用GPU去训练模型,可以直接购买算力,而不是在VM上选择高配,这样会便宜一些。

预配好计算资源之后,我们可以选择JupyterLab选项,如下图:

在这里插入图片描述

(当然,也可以点击上图的VSCode或者terminal)

然后,我们将代码导入到Azure DevOps中,或进行直接clone,到我们刚配好的计算资源的JupyterLab的terminal中:

在这里插入图片描述
如果你使用的是从Azuer DevOps克隆代码,那么,在DevOps对应的Repo中,点击Clone按钮,里面有一个Generate Git Credentails按钮,点击之后会生成密码。当我们在JupyterLab中进行git clone之后,系统会要求我们输这个密码。

克隆代码成功后,我们在terminal中进入文件夹4-AzureMLPipeline,最后运行主代码:python main.py。可能会报错,因为缺少一些依赖的安装。我们pip install一下就可以了。

使用Azure compute instance的几大好处一个是,你的所有计算资源都在云端,另外,系统已经基本上预装了你所需要的所有依赖,你也就不用花时间在依赖之间的配置了。还有一个,由于你连的服务器不在大陆,所以安装依赖或者git clone什么东西就方便了许多,包括连接Azure自身的服务,都会比我们在本地计算机上操作要稳定。当然,唯一的缺点就是,Azure compute instance是付费的(如果你是新注册用户,那不用担心,第一个月你有200USD的预存)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破浪会有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值