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

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

Azure 机器学习为不同的计算目标提供不同的支持。 在典型的模型开发生命周期中,你可以:

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

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

训练计算目标

在针对更大的数据集纵向扩展训练或执行分布式训练时,请使用 Azure 机器学习计算来创建可在每次提交作业时自动缩放的单节点或多节点群集。 你也可以附加自己的计算资源,不过,为不同方案提供的支持可能会有所不同。

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

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

训练目标 自动化机器学习 机器学习管道 Azure 机器学习设计器
本地计算机    
Azure 机器学习计算群集
Azure 机器学习无服务器计算
Azure 机器学习计算实例 是(通过 SDK)
Azure 机器学习 Kubernetes

提示

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

推理的计算目标

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

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

计算目标 用途 GPU 支持 说明
Azure 机器学习终结点 实时推理

批量推理
用于无服务器计算上的实时(托管联机终结点)和批量评分(批处理终结点)的完全托管计算。
Azure 机器学习 Kubernetes 实时推理

批量推理
在本地、云和边缘 Kubernetes 群集上运行推理工作负载。
计算目标 用途 GPU 支持 说明
本地 Web 服务 测试/调试   用于有限的测试和故障排除。 硬件加速依赖于本地系统中库的使用情况。
Azure 机器学习 Kubernetes 实时推理 在云中运行推理工作负载。
Azure 容器实例 实时推理

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

只适合小于 1 GB 的模型。

在设计器中受支持。

注意

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

Azure 机器学习计算(托管)

Azure 机器学习可以创建和管理托管计算资源。 此类型的计算针对机器学习工作负载进行了优化。 Azure 机器学习计算群集、无服务器计算计算实例是仅有的托管计算。

不需要创建无服务器计算。 可以通过以下方法创建 Azure 机器学习计算实例或计算群集:

注意

不必创建计算群集,使用无服务器计算将计算生命周期管理工作交给 Azure 机器学习。

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

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

注意

若要避免在计算空闲时产生费用,请执行以下操作:

  • 对于计算群集,请确保将最小节点数设置为 0,或使用无服务器计算
  • 对于计算实例,请启用空闲关闭。 虽然停止计算实例将停止按计算小时数计费,但仍会对磁盘、公共 IP 和标准负载均衡器计费。

支持的 VM 系列和大小

重要

如果你的计算实例或计算群集基于上述任何系列,请使用另一个 VM 大小重新创建。

以下系列已于 2024 年 8 月 31 日停用:

为 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 大小,请使用以下方法:

注意

Azure 机器学习不支持 Azure 计算支持的所有 VM 大小。 若要列出特定计算 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

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