你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文为在 Azure 基础结构 (IaaS) 上运行 AI 工作负荷的组织提供计算建议。 首选方法是通过 Azure AI 平台即服务 (PaaS) 解决方案开始采用 AI。 但是,如果有权访问 Azure GPU,请按照以下指导在 Azure IaaS 上运行 AI 工作负荷。
AI 工作负荷需要专门的虚拟机 (VM) 来处理高计算需求和大规模数据处理。 选择正确的 VM 可以优化资源使用,同时加快 AI 模型的开发和部署。 下表概述了推荐的计算选项。
AI 阶段 | 虚拟机映像 | 生成式 AI | 非生成式 AI(复杂模型) | 非生成式 AI(小模型) |
---|---|---|---|---|
训练 AI 模型 | 数据科学虚拟机 | GPU (首选 ND 系列。或者使用 NC 系列与以太网互联的虚拟机) | GPU (首选 ND 系列。或者使用 NC 系列与以太网互联的虚拟机) | 内存优化 (CPU) |
推理 AI 模型 | 数据科学虚拟机 | GPU(NC 或 ND 系列) | GPU(NC 或 ND 系列) | 计算优化 (CPU) |
挑选正确的虚拟机映像
选择合适的虚拟机映像,如 Data Science Virtual Machine,以便快速访问用于 AI 工作负荷的预配置工具。 这种选择既节省了时间和资源,又提供了高效 AI 处理所需的软件
从使用 Data Science Virtual Machine 映像开始。 Data Science Virtual Machine 映像可提供对数据科学工具的预配置访问权限。 这些工具包括 PyTorch、TensorFlow、scikit-learn、Jupyter、Visual Studio Code、Azure CLI 和 PySpark。 当与 GPU 一起使用时,映像还包括 Nvidia 驱动程序、CUDA 工具包和 cuDNN。 这些图像充当基准图像。 如果需要更多软件,请在启动时通过脚本添加它或嵌入到自定义映像中。 它们与您的编排解决方案保持兼容性。
根据需要寻找替代映像。 如果 Data Science Virtual Machine 映像无法满足需求,请使用Azure 市场或其他搜索方法来查找替代映像。 例如,对于 GPU,可能需要 Linux 映像,其中包含了 InfiniBand 驱动程序、NVIDIA 驱动程序、通信库、MPI 库和监控工具。
挑选虚拟机大小
根据 AI 模型的复杂性、数据大小和成本限制选择合适的虚拟机大小。 将硬件与训练或推理需求相匹配,这样可最大限度地提高效率,同时防止利用不足或超负荷。
缩小虚拟机选项范围。 选择最新的虚拟机 SKU,以获得最佳的训练和推理时间。 对于训练,请选择支持 RDMA 和 GPU 互连的 SKU,以实现 GPU 之间的高速数据传输。 对于推理,应避免使用带 InfiniBand 的 SKU,因为这并非是必要的。 示例包括 ND MI300X v5 系列、ND H100 v5 系列、NDm A100 v4 系列和 ND A100 v4 系列。
检查虚拟机定价。 使用 Linux 和 Windows VM 定价页了解一般成本概况。 如需详细估算,请使用 Azure 定价计算器。
考虑现成实例。现成实例 对于推理方案具有成本效益,且数据丢失风险最小。 现成实例会以折扣价利用未使用的数据中心容量,从而节省大笔费用。 但是,这些容量可以随时回收,因此,对于可以处理中断的工作负荷来说,现成实例是一种最佳选择。 定期保存检查点数据,以尽量减少逐出时的数据丢失。 有关详细信息,请参阅在 Azure CycleCloud 中使用现成 VM。
选择计算业务流程解决方案
计算业务流程解决方案有助于跨虚拟机群集管理 AI 任务。 即使对于简单的部署,编排器也可以帮助降低成本并确保环境可重现。 编排器帮助确保只在特定时间使用所需的计算资源。 根据计划、容器化和扩展需求来选择业务流程工具,以提高操作性和可伸缩性。
将 Azure CycleCloud 用于开源计划程序。 Azure CycleCloud 是 Slurm、Grid Engine 或 Torque/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 Container Toolkit。 此该工具包可在容器中启用 GPU 资源。 安装所有必要的驱动程序,如 CUDA 和 GPU 驱动程序,并使用首选的容器运行时和引擎来执行 AI 工作负荷。