Azure Arc机器学习第1部分:为什么选择Azure Arc进行机器学习?

目录

探索用例

设置环境

建本地Kubernetes集群

安装Helm

使用Azure Arc连接Kubernetes集群

在macOS上

在Linux上

在集群中安装启用Arc的ML扩展

下一步


在过去的几年里,所有行业的数字化采用曲线都在加速。组织正在开发云原生模式以增强数字能力、缩短实现价值的时间、降低成本并提高敏捷性。然而,实现机器学习操作(MLOps)模型仍然具有挑战性,因为现有工具不支持新的云原生模式。

为了将云原生开发和基础设施的灵活性带入机器学习(ML)应用程序,Kubernetes正在成为大多数企业的热门选择。它有助于有效地运行、编排和扩展模型,与它们的依赖项分开。Kubernetes使您能够在任何硬件上运行机器学习服务,而不会出现兼容性问题,也无需每次都更新或替换依赖项。

尽管Kubernetes有许多开源ML工具,但设置基础设施和部署数据科学生产力工具和框架需要大量时间和精力。此外,在数据中心、边缘和多云环境中配置、管理和维护这些Kubernetes集群带来了新的兼容性、网络和其他挑战。

为了应对这些挑战,微软提供了支持Azure Arc的机器学习。这种方法将Azure机器学习(AML)服务的开放式体系结构带到使用Kubernetes的任何基础结构中。支持Azure Arc的机器学习允许我们将AML部署功能扩展到我们选择的硬件上的Kubernetes集群。这种灵活性有助于我们在混合云环境和本地部署和服务模型。

AML使我们能够在靠近我们管理数据的位置训练机器学习模型,同时确保云和边缘之间的完全一致性。它的设计帮助IT运营商利用原生Kubernetes概念来操作、使用和优化ML设置。由于IT操作员负责设置,因此ML工程师和数据科学家可以使用ML工具并专注于训练模型。

本文是三部分系列的第一部分,该系列提供动手教程,教授如何使用启用ArcKubernetes集群来运行和管理Azure ML工作负载。

本文解释了为什么MLMLOps从业者希望使用Azure Arc进行机器学习。它探索了关键场景,包括喜欢AML提供的简化工作流程但希望运行支持GPU的本地机器集群来训练ML模型的公司。其他公司可能更喜欢在云中工作,但合规义务要求他们将训练数据和模型保留在本地。

最后,本文演示了如何部署AML Arc Kubernetes扩展并从Azure ML门户连接到集群。

探索用例

在实际的机器学习工作负载中,各种场景对训练和部署ML解决方案有不同的基础设施要求。金融业等受监管的行业必须遵守安全标准,并将其训练数据和模型保存在其场所。银行经常对欺诈交易和信用风险进行风险建模预测,并且严重依赖机器学习模型。

对于依赖机器学习进行医学成像分析和诊断等重要操作的医疗保健组织来说也是如此。合规义务要求这些组织将训练数据和模型保存在本地。但是,这些解决方案通常容量有限,需要更强大的硬件才能在云上运行。

在另一个示例中,物联网(IoT)传感器生成需要实时分析的PB级数据。将此数据上传到云端进行分析会引入不必要的开销,我们可以避免使用本地基础设施。

在这些情况下,公司可能希望利用基于云的ML服务,例如AML,因为它可以简化和加速数据分析以及构建和管理ML项目生命周期的过程。然后,公司可以同时运行支持GPU的本地机器集群来训练ML模型。在此类场景中有效部署ML解决方案需要混合解决方案来确保云和本地基础设施之间的一致性和兼容性。

使用支持ArcML最显着的优势之一是组织不再在AML和本地之间进行选择。相反,它鼓励组织利用现有的本地基础设施在本地训练模型,然后在本地、云端或边缘无缝运行推理。它有助于在没有移动限制的情况下进行现场数据训练,并且随着数据和条件的变化,模型可以重新训练自己以达到并保持所需的准确性。

现在我们已经了解了支持arcML及其用例,让我们自己尝试一下,体验微软如何轻松地管理和使用Kubernetes环境进行机器学习。

设置环境

要运行支持Azure ArcML,我们必须首先在本地配置支持Azure ArcKubernetes

注意: Kubernetes集群应该在具有四个CPU8 GB RAM的机器上运行,以运行支持ArcML。我在本文中使用MacBook Pro,它具有6个内核和16 GB内存。对于任何其他机器,设置启用ArcKubernetes集群的过程应该类似。还需要Docker。

首先,我们必须有一个活动的Azure帐户。我们将在Docker中运行本地单节点Kubernetes集群并将其连接到Azure Arc。

建本地Kubernetes集群

要在Docker中运行Kubernetes集群,我们首先必须安装KIND (Kubernetes in Docker)

macOS

$ brew install kind

Linux

$ curl –Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
$ chmod +x ./kind

安装KIND使用brew自动将其添加到系统的PATH环境变量中。但如果我们使用Linux或使用二进制文件安装KIND,我们必须确保将其添加到PATH变量中。

安装成功后,我们创建一个集群,如下所示。

$ kind create cluster

安装Helm

接下来,我们安装Helm来帮助我们有效地管理Kubernetes应用程序。

macOS

$ brew install helm

Linux

$ curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -$ sudo apt-get install apt-transport-https --yes$ echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list$ sudo apt-get update$ sudo apt-get install helm

安装Helm后,我们可以将本地集群注册为支持Azure ArcKubernetes资源。

使用Azure Arc连接Kubernetes集群

要将我们的Kubernetes集群连接到Azure Arc,我们首先必须在我们的系统上安装Azure CLI。

macOS

$ brew install azure-cli

Linux

$ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

安装CLI后,我们在CLI中安装connectedk8s扩展:

$ az extension add --name connectedk8s

在我们继续之前,让我们登录到我们的Azure帐户,如下所示:

$ az login

执行此命令会在浏览器中打开Azure门户以继续登录。一旦我们登录,它将在终端上打印我们的帐户详细信息,包括订阅ID

我们在以下命令中使用订阅ID来设置我们的Azure订阅。

$ az account set --subscription {SubscriptionID}

下一步是为启用Azure ArcKubernetes注册提供程序。我们执行以下命令:

$ az provider register --namespace Microsoft.Kubernetes
$ az provider register --namespace Microsoft.KubernetesConfiguration
$ az provider register --namespace Microsoft.ExtendedLocation

注册可能需要几分钟,具体取决于网络。我们可以借助以下命令监控注册过程:

$ az provider show -n Microsoft.Kubernetes -o table 
$ az provider show -n Microsoft.KubernetesConfiguration -o table 
$ az provider show -n Microsoft.ExtendedLocation -o table

注册后,这些命名空间的RegistrationState变量值将更改为Registered。完成后,我们创建一个资源组:

$ az group create --name AzureArcML --location EastUS

最后但同样重要的是,我们通过执行以下命令将之前创建的Kubernetes集群连接到Azure资源:

$ sudo az connectedk8s connect --name ArcML --resource-group AzureArcML

上述命令完成后,Azure Arc组件将在我们的集群中作为pod运行。我们可以按如下方式查看这些pod

$ sudo kubectl get pod --namespace azure-arc

在集群中安装启用ArcML扩展

现在Azure Arc组件已在我们的集群中成功运行,我们可以在集群中安装支持ArcML扩展Microsoft.AzureML.Kubernetes。但首先,让我们按如下方式安装Kubernetes扩展:

$ az extension add --name k8s-extension

完成后,我们安装启用ArcML扩展,如下所示:

$ az k8s-extension create --name arcml-extension \
  --extension-type Microsoft.AzureML.Kubernetes \
  --cluster-type connectedClusters \
  --cluster-name ArcML \
  --config enableTraining=True \
  --resource-group AzureArcML \
  --scope cluster

此命令还创建Azure服务总线命名空间和中继资源,以帮助AML工作区和我们的本地集群之间的通信。安装完成后,我们会看到以下pod在本地集群中运行:

$ sudo kubectl get pod --namespace azureml

此时,我们所有的pod都应该处于运行状态。当我们前往Azure门户时,我们可以看到资源组中的所有资源。

单击ArcML查看Kubernetes集群。

请注意,它显示了Connected状态,表明我们的本地集群已成功连接。

下一步

本文讨论了支持Azure ArcML以及它如何在各种场景中发挥作用。首先,我们创建了一个本地Kubernetes集群并使用Azure Arc连接了该集群。接下来,我们学习在AML中使用TensorFlow训练ML图像分类模型。继续阅读本系列的第二篇文章,了解如何在本地训练ML模型

若要详细了解如何配置Azure Kubernetes服务(AKS)和启用Azure ArcKubernetes集群以训练和推理机器学习工作负载,请查看配置Kubernetes集群以进行机器学习

https://www.codeproject.com/Articles/5323946/Azure-Arc-Machine-Learning-Part-1-Why-Azure-Arc-fo

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值