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

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

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

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

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

训练计算目标

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

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

可为大多数作业的训练计算目标使用下述任一资源。 但并非所有资源都可用于自动化机器学习、机器学习管道或设计器。 Azure Databricks 可以用作本地运行和机器学习管道的培训资源,但不能用作其他培训的远程目标。

训练目标 自动化机器学习 机器学习管道 Azure 机器学习设计器
本地计算机    
Azure 机器学习计算群集
Azure 机器学习计算实例 是(通过 SDK)
远程 VM  
Apache Spark 池(预览版) 是(仅限 SDK 本地模式)  
Azure Databricks 是(仅限 SDK 本地模式)  
Azure Data Lake Analytics    
Azure HDInsight    
Azure Batch    
Azure Kubernetes 服务(预览版)
启用了 Azure Arc 的 Kubernetes(预览版)

提示

计算实例具有 120GB 的 OS 磁盘。 如果磁盘空间不足,请使用终端至少清除 1-2 GB,然后停止或重启计算实例。

推理的计算目标

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

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

计算目标 用途 GPU 支持 FPGA 支持 说明
本地 Web 服务 测试/调试     用于有限的测试和故障排除。 硬件加速依赖于本地系统中库的使用情况。
Azure Kubernetes 服务 (AKS) 实时推理

建议用于生产工作负载。
(Web 服务部署) 用于大规模生产部署。 提供所部署服务的快速响应时间和自动缩放。 不支持通过 Azure 机器学习 SDK 进行群集自动缩放。 若要更改 AKS 群集中的节点,请在 Azure 门户中使用 AKS 群集的 UI。

在设计器中受支持。
Azure 容器实例 实时推理

建议仅用于开发/测试目的。
    用于需要小于 48 GB RAM 的基于 CPU 的小规模工作负载。 不需要你管理群集。

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

注意

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

当使用机器学习管道进行评分时,仅 Azure 机器学习计算支持使用 GPU 进行推理。

选择群集 SKU 时,请先纵向扩展,然后横向扩展。从其 RAM 是模型所需量的 150% 的计算机开始,然后分析结果,找到具有所需性能的计算机。 了解这一信息后,增加计算机的数量,使其满足你的并发推理需求。

注意

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

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

Azure 机器学习计算(托管)

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

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

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

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

注意

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

支持的 VM 系列和大小

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

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

  • Azure 机器学习不支持某些 VM 系列。
  • 某些 VM 系列(例如 GPU 和其他特殊 SKU)可能最初不会显示在可用 VM 的列表中。 但是,在请求配额更改后,你仍可使用它们。 若要详细了解如何请求配额,请参阅请求增加配额

请查看下表,详细了解支持的系列。

支持的 VM 系列 类别 支持的服务
DDSv4 常规用途 计算群集和实例
Dv2 常规用途 计算群集和实例
Dv3 常规用途 计算群集和实例
DSv2 常规用途 计算群集和实例
DSv3 常规用途 计算群集和实例
Ev3 内存优化 计算群集和实例
ESv3 内存优化 计算群集和实例
FSv2 计算优化 计算群集和实例
M 内存优化 计算群集和实例
NCv3 GPU 计算群集和实例

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

注意

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

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

GPU 体系结构 Azure VM 系列 支持的 CUDA 版本
Volta NCv3 9.0+

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

计算隔离

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 Databricks

  • Azure Data Lake Analytics

  • Azure Synapse Spark 池(预览版)

    提示

    目前,这需要 Azure 机器学习 SDK v1。

  • Kubernetes

有关详细信息,请参阅管理计算资源

后续步骤

了解如何: