什么是 Azure 机器学习中的计算目标?

计算目标是指定的计算资源或环境,用来运行训练脚本或托管服务部署。 此位置可以是你的本地计算机,也可以是基于云的计算资源。 如果使用计算目标,以后无需更改代码即可轻松更改计算环境。

在典型的模型开发生命周期中,你可以:

  1. 首先,基于少量数据进行开发和试验。 在此阶段,请使用本地环境(如本地计算机或基于云的虚拟机 (VM))作为计算目标。
  2. 通过使用其中一种训练计算目标,纵向扩展到更多的数据或进行分布式训练。
  3. 模型准备就绪后,将其部署到具有这些部署计算目标之一的 Web 托管环境。

你用于计算目标的计算资源附加到工作区。 本地计算机以外的计算资源由工作区的用户共享。

训练计算目标

Azure 机器学习为不同的计算目标提供不同的支持。 典型的模型开发生命周期从针对少量数据进行开发或试验开始。 在此阶段,请使用本地环境,如本地计算机或基于云的 VM。 在针对更大的数据集纵向扩展训练或执行分布式训练时,请使用 Azure 机器学习计算来创建可在每次提交运行时自动缩放的单节点或多节点群集。 你也可以附加自己的计算资源,不过,为不同方案提供的支持可能会有所不同。

一个训练作业的计算目标可以在下一个训练作业中重复使用。 例如,将远程 VM 附加到你的工作区后,可以将其重复用于多个作业。 对于机器学习管道,请对每个计算目标使用适当的管道步骤

可为大多数作业的训练计算目标使用下述任一资源。 但并非所有资源都可用于自动化机器学习、机器学习管道或设计器。

训练目标 自动化机器学习 机器学习管道 Azure 机器学习设计器
本地计算机    
Azure 机器学习计算群集
Azure 机器学习计算实例 是(通过 SDK)
远程 VM  
Azure Databricks 是(仅限 SDK 本地模式)  
Azure Data Lake Analytics    
Azure HDInsight    
Azure Batch    

详细了解如何将训练运行提交到计算目标

用于推理的计算目标

执行推理时,Azure 机器学习会创建托管模型和使用该模型所需的关联资源的 Docker 容器。 然后,系统将在计算目标中使用此容器。

用于托管模型的计算目标将影响部署的终结点的成本和可用性。 使用此表选择合适的计算目标。

计算目标 用途 GPU 支持 FPGA 支持 说明
本地 web 服务 测试/调试     用于有限的测试和故障排除。 硬件加速依赖于本地系统中库的使用情况。
Azure Kubernetes 服务 (AKS) 实时推理 (Web 服务部署) 用于大规模生产部署。 提供所部署服务的快速响应时间和自动缩放。 不支持通过 Azure 机器学习 SDK 进行群集自动缩放。 若要更改 AKS 群集中的节点,请在 Azure 门户中使用 AKS 群集的 UI。

在设计器中受支持。
Azure 容器实例 测试或开发     用于需要小于 48 GB RAM 的基于 CPU 的小规模工作负载。

在设计器中受支持。
Azure 机器学习计算群集 批处理 推理 (机器学习管道)   对无服务器计算运行批量评分。 支持普通 VM 和低优先级 VM。

备注

尽管计算目标(例如本地、Azure 机器学习计算和 Azure 机器学习计算群集)支持使用 GPU 进行定型和试验,但在部署为 Web 服务时,仅 AKS 支持使用 GPU 进行推理。

只有在 Azure 机器学习计算上,才能 在通过机器学习管道评分时 使用 GPU 进行推理。

备注

  • 容器实例仅适用于小于 1 GB 的小模型。
  • 使用单节点 AKS 群集对大型模型进行开发/测试。

了解在何处以及如何将模型部署到计算目标

Azure 机器学习计算(托管)

托管计算资源是由 Azure 机器学习创建和管理的。 此计算针对机器学习工作负荷进行了优化。 Azure 机器学习计算群集和计算实例是仅有的托管计算。

可以通过以下方法创建 Azure 机器学习计算实例或计算群集:

在创建时,这些计算资源会自动成为工作区的一部分,这一点与其他类型的计算目标不同。

功能 计算群集 计算实例
单节点或多节点群集 单节点群集
每次提交运行时自动缩放
自动化群集管理和作业计划
为 CPU 和 GPU 资源提供支持

备注

计算群集在处于空闲状态时会自动缩放到 0 个节点,因此,在未使用它时无需付费。 计算实例始终处于启用状态,并且不会自动缩放。 在未使用计算实例时,应停止计算实例,以免产生额外费用。

支持的 VM 系列和大小

为 Azure 机器学习中的托管计算资源选择节点大小时,可以从 Azure 提供的选定 VM 大小中进行选择。 Azure 针对不同工作负载为 Linux 和 Windows 提供了一系列大小。 若要了解详细信息,请参阅 VM 类型和大小

选择 VM 大小时有几个例外和限制:

  • Azure 机器学习不支持某些 VM 系列。
  • 某些 VM 系列是受限制的。 若要使用受限制的系列,请与支持团队联系并请求为该系列增加配额。 若要了解如何联系支持人员,请参阅 Azure 支持选项

请查看下表,了解有关支持的系列和限制的详细信息。

支持的 VM 系列 限制 类别 支持的服务
DDSv4 无。 常规用途 计算群集和实例
Dv2 无。 常规用途 计算群集和实例
Dv3 无。 常规用途 计算群集和实例
DSv2 无。 常规用途 计算群集和实例
DSv3 无。 常规用途 计算群集和实例
EAv4 无。 内存优化 计算群集和实例
Ev3 无。 内存优化 计算群集和实例
FSv2 无。 计算优化 计算群集和实例
H 无。 高性能计算 计算群集和实例
HB 需要审批。 高性能计算 计算群集和实例
HBv2 需要审批。 高性能计算 计算群集和实例
HCS 需要审批。 高性能计算 计算群集和实例
M 需要审批。 内存优化 计算群集和实例
NC 无。 GPU 计算群集和实例
NC 促销 无。 GPU 计算群集和实例
NCsv2 需要审批。 GPU 计算群集和实例
NCsv3 需要审批。 GPU 计算群集和实例
NDs 需要审批。 GPU 计算群集和实例
NDv2 需要审批。 GPU 计算群集和实例
NV 无。 GPU 计算群集和实例
NVv3 需要审批。 GPU 计算群集和实例

虽然 Azure 机器学习支持这些 VM 系列,但它们可能并非在所有 Azure 区域中均可用。 若要检查 VM 系列是否可用,请参阅可用产品(按区域)

备注

Azure 机器学习不支持 Azure 计算支持的所有 VM 大小。 若要列出可用的 VM 大小,请使用以下某种方法:

如果使用支持 GPU 的计算目标,请务必确保在训练环境中安装正确的 CUDA 驱动程序。 根据下表来确定要使用的正确的 CUDA 版本:

GPU 体系结构 Azure VM 系列 支持的 CUDA 版本
Ampere NDA100_v4 高于 11.0
Turing NCT4_v3 10.0+
Volta NCv3、NDv2 9.0+
Pascal NCv2、ND 9.0+
Maxwell NV、NVv3 9.0+
Kepler NC、NC 促销 9.0+

除了确保 CUDA 版本和硬件兼容以外,还请确保 CUDA 版本与你正在使用的机器学习框架的版本兼容:

  • 对于 PyTorch,可以在此处查看兼容性。
  • 对于 Tensorflow,可以在此处查看兼容性。

计算隔离

Azure 机器学习计算提供已隔离到特定硬件类型并专用于单个客户的 VM 大小。 独立 VM 大小最适合为满足合规性和监管要求等原因而需要与其他客户的工作负载高度隔离的工作负载。 使用独立大小可保证你的 VM 将是该特定服务器实例上唯一运行的 VM。

当前的独立 VM 产品/服务包括:

  • Standard_M128ms
  • Standard_F72s_v2
  • Standard_NC24s_v3
  • Standard_NC24rs_v3*

*支持 RDMA

若要了解有关隔离的详细信息,请参阅 Azure 公有云中的隔离

非托管计算

非托管计算目标不是由 Azure 机器学习托管的。 请在 Azure 机器学习外部创建此类型的计算目标,然后将其附加到工作区。 对于非托管计算资源,可能需要执行额外的步骤才能保持或提高机器学习工作负荷的性能。

Azure 机器学习支持以下非托管计算类型:

  • 本地计算机
  • 远程虚拟机
  • Azure HDInsight
  • Azure Batch
  • Azure Databricks
  • Azure Data Lake Analytics
  • Azure 容器实例
  • Azure Kubernetes 服务和启用了 Azure Arc 的 Kubernetes(预览版)

有关详细信息,请参阅为模型训练和部署设置计算目标

后续步骤

了解如何: