此参考体系结构演示如何使用 Azure Stack Edge 将快速机器学习推理从云扩展到本地或边缘场景。 Azure Stack Hub 将 Azure 功能(如计算、存储、网络和硬件加速机器学习)传递到任何边缘位置。
体系结构
下载此体系结构的 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 SDK、Python SDK、设计器或 Visual Studio Code 生成训练模型所需的脚本。
训练模型并准备好部署模型后,可以将其部署到各种 Azure 服务,包括但不限于:
- Azure 容器注册表。 可以将模型部署到专用 Docker 注册表(如 Azure 容器注册表),因为它们是 Docker 容器映像。
- Azure 容器实例。 可以将模型的 Docker 容器映像直接部署到容器组。
- Azure Kubernetes 服务。 可以使用 Azure Kubernetes 服务自动缩放模型的 Docker 容器映像以进行大规模生产部署。
- Azure Functions。 可以打包模型以直接在 Functions 实例上运行。
- Azure 机器学习。 可将计算实例(基于云的托管开发工作站)用于模型的训练和推理。 同样,还可以将模型部署到本地 IoT Edge 和 Azure Stack Edge 设备。
注意
在此参考体系结构中,模型部署到 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 模块。
成本优化
成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述。
- 使用 Azure 定价计算器估算成本。
- Azure Stack Edge 定价的算法为月度订阅的固定费率加一次性运费。
- Azure 机器学习还会部署容器注册表、Azure 存储和 Azure Key Vault 服务,这会产生额外费用。 有关详细信息,请参阅 Azure 机器学习的工作原理:体系结构和概念。
- Azure 机器学习定价包括用于在公有云中训练模型的虚拟机的费用。
后续步骤
产品文档
Microsoft Learn 模块: