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

Azure 基础结构上的 AI 工作负荷的计算建议 (IaaS)

本文针对在 Azure 基础结构(IaaS)上运行 AI 工作负荷的组织提供了计算建议。 首选方法是使用 Azure AI 平台即服务 (PaaS) 解决方案启动 AI 采用。 但是,如果有权访问 Azure GPU,请按照本指南在 Azure IaaS 上运行 AI 工作负荷。

AI 工作负载需要专用虚拟机(VM)来处理高计算需求和大规模数据处理。 选择正确的 VM 可优化资源使用并加速 AI 模型开发和部署。 下表概述了建议的计算选项。

AI 阶段 虚拟机映像 生成式 AI 非生成 AI (复杂模型) 非生成 AI (小型模型)
训练 AI 模型 数据科学虚拟机 GPU (首选 ND 系列)。或者将 NC 系列与以太网互连的 VM 配合使用) GPU (首选 ND 系列)。或者将 NC 系列与以太网互连的 VM 配合使用) 内存优化 (CPU)
推断 AI 模型 数据科学虚拟机 GPU (NC 或 ND 系列) GPU (NC 或 ND 系列) 计算优化 (CPU)

选择正确的虚拟机映像

选择合适的虚拟机映像(例如数据科学 虚拟机),快速访问 AI 工作负载的预配置工具。 此选项可节省时间和资源,同时提供高效 AI 处理所需的软件

  • 从数据科学 虚拟机映像开始。 数据科学虚拟机映像提供对数据科学工具的预配置访问权限。 这些工具包括 PyTorch、TensorFlow、scikit-learn、Jupyter、Visual Studio Code、Azure CLI 和 PySpark。 与 GPU 一起使用时,映像还包括 Nvidia 驱动程序、CUDA 工具包和 cuDNN。 这些映像充当基线映像。 如果需要更多软件,请在启动时通过脚本添加它或嵌入到自定义映像中。 它们与业务流程解决方案保持兼容性。

  • 根据需要查找备用图像。 如果数据科学虚拟机映像不符合你的需求,请使用Azure 市场或其他搜索方法查找备用映像。 例如,使用 GPU 时,可能需要 包含 InfiniBand 驱动程序、NVIDIA 驱动程序、通信库、MPI 库和监视工具的 Linux 映像

选取虚拟机大小

选择适当的虚拟机大小与 AI 模型复杂性、数据大小和成本约束保持一致。 将硬件与训练或推理需求相匹配可最大程度地提高效率,并防止使用不足或过载。

  • 缩小虚拟机选项的范围。 选择最新的虚拟机 SKU 以获得最佳训练和推理时间。 对于训练,请选择支持 RDMA 和 GPU 互连的 SKU,以便在 GPU 之间进行高速数据传输。 对于推理,请避免使用 InfiniBand 的 SKU,这是不必要的。 示例包括 ND MI300X v5 系列ND H100 v5 系列NDm A100 v4 系列ND A100 v4 系列

  • 检查虚拟机定价。 使用 LinuxWindows VM 定价页获取一般成本概述。 有关详细估算,请使用 Azure 定价计算器

  • 考虑现成实例。现成实例对于推理方案具有成本效益,且数据丢失风险最小。 现成实例通过折扣利用未使用的数据中心容量来大幅节省成本。 但是,可以随时回收此容量,因此现成实例最适合处理中断的工作负荷。 定期检查点数据,以最大程度地减少逐出时的丢失。 有关信息,请参阅 在 Azure CycleCloud 中使用现成 VM。

选择计算业务流程解决方案

计算业务流程解决方案有助于跨虚拟机群集管理 AI 任务。 即使对于简单的部署,业务流程协调程序也可以降低成本并确保环境可重现。 业务流程协调程序有助于确保仅使用特定时间所需的计算。 根据计划、容器化和缩放需求选择业务流程工具,以提高操作和可伸缩性。

  • 将 Azure CycleCloud 用于开源计划程序。 Azure CycleCloud 非常适合开源计划程序,例如 Slurm、网格引擎或扭力/PBS。 它提供灵活的群集管理、可自定义的配置和高级计划功能。 群集中的虚拟机需要配置 AI 工作负荷执行。 CycleCloud 和 Batch 的虚拟机是非持久性的。 当需要帮助节省成本时,业务流程协调程序会创建和删除 VM。 有关详细信息,请参阅 适用于 Slum 的 Azure CycleCloud 工作区。

  • 使用 Azure Batch 进行内置计划。 Azure Batch 提供内置计划功能,无需额外的软件安装或管理。 它具有消耗定价模型,没有许可费用。 它还支持本机容器化任务。 有关部署最佳做法,请参阅 Azure Batch 加速器

  • 使用 Azure Kubernetes 服务 (AKS) 进行容器缩放。 AKS 是一种托管服务,用于跨群集部署、缩放和管理容器。 它适用于大规模在容器中运行 AI 工作负载。 有关详细信息,请参阅使用Azure Kubernetes 服务托管基于 GPU 的工作负荷。

  • 为更简单的任务手动协调作业。 如果业务流程需求最少,请手动管理 AI 资源。 对于小规模工作负荷,请考虑以下步骤:

    • 定义工作流。 了解工作流端到端,包括依赖项和作业顺序。 考虑如何在任何步骤中处理故障。
    • 记录和监视作业。 为作业实现明确的日志记录和监视框架。
    • 验证先决条件。 确保环境满足所有工作流要求,包括必要的库和框架。
    • 使用版本控制。 使用版本控制跟踪和管理更改。
    • 自动执行任务。 使用脚本自动执行数据预处理、训练和评估。

考虑容器

容器提供可高效缩放的一致可重现环境。 容器简化了环境之间的转换,使它们对可缩放的 AI 解决方案至关重要。

  • 安装驱动程序。 确保已安装必要的驱动程序,以便在各种方案中启用容器功能。 对于群集配置,通常需要 Pyxis 和 Enroot 等工具。

  • 使用 NVIDIA 容器工具包。 此工具包在容器中启用 GPU 资源。 安装所有必需的驱动程序(例如 CUDA 和 GPU 驱动程序),并使用首选的容器运行时和引擎来执行 AI 工作负荷。

下一步