你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在本地和边缘部署 AI 和机器学习计算

Azure 容器注册表
Azure IoT Edge
Azure 机器学习
Azure Stack Edge

此参考体系结构演示如何使用 Azure Stack Edge 将快速机器学习推理从云扩展到本地或边缘场景。 Azure Stack Hub 将 Azure 功能(如计算、存储、网络和硬件加速机器学习)传递到任何边缘位置。

体系结构

Architecture diagram: on-premises data training a model in Azure Machine Learning, with model deployed back to the edge for inference.

下载此体系结构的 Visio 文件

工作流

体系结构包括以下几个步骤:

  • Azure 机器学习。 借助机器学习,可以在基于云的环境中生成、训练、部署和管理机器学习模型。 然后,这些模型可以部署到 Azure 服务,其中包括(但不限于)Azure 容器实例、Azure Kubernetes 服务 (AKS) 和 Azure Functions。
  • Azure 容器注册表。 容器注册表是创建和管理 Docker 注册表的服务。 容器注册表生成、存储和管理 Docker 容器映像,并且可以存储容器化的机器学习模型。
  • Azure Stack Edge。 Azure Stack Edge 是一种专为边缘机器学习推理设计的边缘计算设备。 在传输到 Azure 之前,数据先在边缘进行预处理。 Azure Stack Edge 包括计算加速硬件,旨在提高边缘 AI 推理的性能。
  • 本地数据。 本地数据引用机器学习模型训练中使用的任何数据。 数据可以位于任何本地存储解决方案(包括 Azure Arc 部署)中。

组件

方案详细信息

可能的用例

此解决方案非常适合电信行业。 扩展推理的典型用途包括以下所需的应用场景:

  • 在引入数据后,在本地使用该数据运行快速机器学习推理,并且存在大量本地硬件占用。
  • 创建长期研究解决方案,其中现有的本地数据被清理并用于生成模型。 然后,在本地和云中使用该模型;随着新数据的到来,会定期重新训练该模型。
  • 生成需要在物理位置和在线对用户进行推理的软件应用程序。

建议

引入、转换和传输本地存储的数据

Azure Stack Edge 可以转换源自本地存储的数据,然后再将该数据传输到 Azure。 此转换由在 Azure Stack Edge 设备上部署的 Azure IoT Edge 设备完成。 这些 IoT Edge 设备与 Azure 云平台上的 Azure IoT Hub 资源相关联。

每个 IoT Edge 模块都是一个 Docker 容器,在引入、转换和传输工作流中执行特定任务。 例如,IoT Edge 模块可以从 Azure Stack Edge 本地共享收集数据,并将数据转换为可用于机器学习的格式。 然后,该模块会将转换后的数据传输到 Azure Stack Edge 云共享。 可以将自定义模块或内置模块添加到 IoT Edge 设备开发自定义 IoT Edge 模块

注意

IoT Edge 模块在容器注册表中注册为 Docker 容器映像。

在 Azure 云平台上的 Azure Stack Edge 资源中,云共享由 Azure Blob 存储帐户资源提供支持。 云共享中的所有数据将自动上传到关联的存储帐户。 可通过装载本地或云共享或遍历 Azure 存储帐户来验证数据转换和传输

训练和部署模型

在 Blob 存储中准备和存储数据后,可以创建连接到 Azure 存储的机器学习数据集。 数据集表示存储中机器学习直接引用的数据的单个副本。

可使用机器学习命令行界面 (CLI)R SDKPython SDK设计器Visual Studio Code 生成训练模型所需的脚本。

训练模型并准备好部署模型后,可以将其部署到各种 Azure 服务,包括但不限于:

注意

在此参考体系结构中,模型部署到 Azure Stack Edge,使模型可用于本地推理。 该模型还部署到容器注册表,以确保模型可用于在各种 Azure 服务之间进行推理。

使用新部署的模型进行推理

Azure Stack Edge 可以通过其内置的计算加速硬件使用本地数据快速在本地运行机器学习模型。 此计算完全发生在边缘。 结果是使用比公有云区域更接近数据源的硬件从数据中快速获得见解。

此外,Azure Stack Edge 继续将数据传输到机器学习以使用机器学习管道进行持续的重新训练和改进,该机器学习管道与已使用本地存储的数据运行的模型相关联。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

可用性

  • 请考虑将 Azure Stack Edge 资源与其他要访问它的 Azure 服务放置在同一 Azure 区域中。 若要优化上传性能,请考虑将 Azure Blob 存储帐户放置在设备拥有最佳网络连接的区域。
  • 请考虑使用 Azure ExpressRoute 在设备和 Azure 之间建立稳定的冗余连接。

可管理性

  • 管理员可以验证本地存储中的数据源是否已正确传输到 Azure Stack Edge 资源。 他们可以通过装载服务器消息块 (SMB)/网络文件系统 (NFS) 文件共享或使用 Azure 存储资源管理器连接到关联的 Blob 存储帐户来进行验证。
  • 训练模型时,使用机器学习数据集引用 Blob 存储中的数据。 引用存储无需在训练脚本中嵌入机密、数据路径或连接字符串。
  • 在机器学习工作区中,注册和跟踪 ML 模型以跟踪各模型在不同时间点之间的差异。 同样,可以在标记中镜像用于部署到容器注册表的 Docker 容器映像的版本控制和跟踪元数据。

DevOps

  • 查看机器学习的 ML Ops 生命周期管理方法。 例如,使用 GitHub 或 Azure Pipelines 创建自动训练和重新训练模型的持续集成过程。 当新数据填充数据集或对训练脚本进行更改时,可以触发训练。
  • Azure 机器学习工作区将自动注册和管理机器学习模型的 Docker 容器映像和 IoT Edge 模块。

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

后续步骤

产品文档

Microsoft Learn 模块: