View a markdown version of this page

开始 SageMaker HyperPod 使用 SageMaker AI 控制台 - 亚马逊 SageMaker AI

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始 SageMaker HyperPod 使用 SageMaker AI 控制台

以下教程演示如何创建新 SageMaker HyperPod 集群并通过 SageMaker AI 控制台 UI 使用 Slurm 对其进行设置。按照教程,您将创建一个包含三个 Slurm 节点的 HyperPod 集群,my-controller-groupmy-login-group、和。worker-group-1

注意

HyperPod 现在支持在没有生命周期脚本的情况下创建 Slurm 集群。您可以使用 AMI-based 配置创建功能齐全的集群,使用扩展脚本对其进行扩展,或者继续使用自定义生命周期脚本进行完全控制。

创建集群

要导航到SageMaker HyperPod 集群页面并选择 Slurm 编排,请按照以下步骤操作。

  1. 打开 Amazon A SageMaker I 控制台,网址为https://console.aws.amazon.com/sagemaker/

  2. 在左侧导航窗格中选择 “集HyperPod 群”,然后选择 “集群管理”。

  3. SageMaker HyperPod 集群页面上,选择创建 HyperPod 集群

  4. 创建 HyperPod 集群下拉列表中,选择由 Slurm 编排

  5. 在 Slurm 集群创建页面上,您将看到两个选项。选择最适合您需求的选项。

    1. 快速设置 – 要立即开始使用默认设置,请选择快速设置。使用此选项, SageMaker AI 将在创建集群的过程中创建新资源,例如 VPC、子网、安全组、Amazon S3 存储桶、IAM 角色和 FSx for Lustre。

    2. 自定义设置 – 要与现有 AWS 资源集成或有特定的联网、安全或存储要求,请选择自定义设置。利用此选项,您可以选择使用现有资源或创建新资源,还可以自定义最适合您需求的配置。

在 “快速设置” 部分,按照以下步骤使用 Slurm 编排创建 HyperPod 集群。

常规设置

指定新集群的名称。创建集群后,无法更改该名称。

实例组

要添加实例组,请选择添加组。每个实例组都可以进行不同的配置,您可以创建一个异构集群,该集群由具有不同实例类型的多个实例组组成。要部署集群,您必须为控制器和计算组类型添加至少一个实例组。

重要

一次可添加一个实例组。要创建多个实例组,请为每个实例组重复此过程。

执行以下步骤来创建实例组。

  1. 对于实例组类型,为实例组选择类型。在本教程中,为 my-controller-group 选择控制器(主),为 my-login-group 选择登录,为 worker-group-1 选择计算(worker)

  2. 对于名称,指定实例组的名称。在本教程中,创建三个实例组,分别命名为 my-controller-groupmy-login-groupworker-group-1

  3. 对于实例容量,选择按需容量或训练计划来预留计算资源。

  4. 对于实例类型,为实例组选择实例。本教程中,选择 ml.c5.xlargemy-controller-groupml.m5.4xlargemy-login-groupml.trn1.32xlargeworker-group-1

    重要

    请确保为账户选择具有足够配额以及充足的未分配 IP 地址的实例类型。要查看或请求更多配额,请参阅 SageMaker HyperPod 配额

  5. 对于实例数量,指定一个不超过集群使用实例配额的整数。在本教程中,为所有三个组输入 1

  6. 对于目标可用区,选择将在其中预调配实例的可用区。可用区应与加速计算容量所在的位置相对应。

  7. 对于每个实例的附加存储卷(GB) – 可选,指定 1 到 16384 之间的整数,以千兆字节(GB)为单位设置附加 Elastic Block Store(EBS)卷的大小。EBS 卷附加到实例组的每个实例。附加 EBS 卷的默认挂载路径为 /opt/sagemaker。成功创建集群后,您可以 SSH 登录集群实例(节点),并通过运行 df -h 命令验证 EBS 卷是否已正确加载。如 Amazon Elastic Block Store 用户指南中的 Amazon EBS 卷部分所述,附加 EBS 卷可提供稳定、非实例和独立持久化的存储。

  8. 选择添加实例组

快速设置默认值

本部分列出了创建集群的所有默认设置,包括将在集群创建过程中创建的所有新 AWS 资源。检查默认设置。

注意

快速设置会自动使用默认的生命周期脚本。新的 AMI-based 配置选项(无生命周期脚本)只能通过自定义设置使用。如果要创建不带生命周期脚本的集群,请选择 “自定义设置”,然后在 “生命周期脚本” 下选择 “”。

在 “自定义设置” 部分,按照以下步骤使用 Slurm 编排创建 HyperPod 集群。

常规设置

指定新集群的名称。创建集群后,无法更改该名称。

对于实例恢复,选择自动 – 推荐

Networking

配置网络设置以创建集群。创建集群后,无法修改这些设置。

  1. 对于 VPC,如果您已经拥有可以让 SageMaker AI 访问您的 VPC 的 VPC,请选择您自己的 VPC。要创建新的 VPC,请按照 Amazon Virtual Private Cloud 用户指南中的创建 VPC 进行操作。您可以将其保留为 “” 以使用默认 SageMaker AI VPC。

  2. 对于 VPC IPv4 CIDR 块,输入 VPC 的起始 IP。

  3. 对于可用区,请选择 HyperPod 将在其中为您的集群创建子网的可用区 (AZ)。选择与加速计算容量的位置匹配的可用区。

  4. 对于安全组,创建一个安全组,或选择最多五个已配置规则的安全组,以允许 VPC 内资源之间的通信。

实例组

要添加实例组,请选择添加组。每个实例组都可以进行不同的配置,您可以创建一个异构集群,该集群由具有不同实例类型的多个实例组组成。要部署集群,您必须添加至少一个实例组。

重要

一次可添加一个实例组。要创建多个实例组,请为每个实例组重复此过程。

执行以下步骤来创建实例组。

  1. 对于实例组类型,为实例组选择类型。在本教程中,为 my-controller-group 选择控制器(主),为 my-login-group 选择登录,为 worker-group-1 选择计算(worker)

  2. 对于名称,指定实例组的名称。在本教程中,创建三个实例组,分别命名为 my-controller-groupmy-login-groupworker-group-1

  3. 对于实例容量,选择按需容量或训练计划来预留计算资源。

  4. 对于实例类型,为实例组选择实例。本教程中,选择 ml.c5.xlargemy-controller-groupml.m5.4xlargemy-login-groupml.trn1.32xlargeworker-group-1

    重要

    请确保为账户选择具有足够配额以及充足的未分配 IP 地址的实例类型。要查看或请求更多配额,请参阅 SageMaker HyperPod 配额

  5. 对于实例数量,指定一个不超过集群使用实例配额的整数。在本教程中,为所有三个组输入 1

  6. 对于目标可用区,选择将在其中预调配实例的可用区。可用区应与加速计算容量所在的位置相对应。

  7. 对于每个实例的附加存储卷(GB) – 可选,指定 1 到 16384 之间的整数,以千兆字节(GB)为单位设置附加 Elastic Block Store(EBS)卷的大小。EBS 卷附加到实例组的每个实例。附加 EBS 卷的默认挂载路径为 /opt/sagemaker。成功创建集群后,您可以 SSH 登录集群实例(节点),并通过运行 df -h 命令验证 EBS 卷是否已正确加载。如 Amazon Elastic Block Store 用户指南中的 Amazon EBS 卷部分所述,附加 EBS 卷可提供稳定、非实例和独立持久化的存储。

  8. 在 S lurm 分区名称(仅限计算组)中,输入此计算实例组的 Slurm 分区名称。分区充当逻辑队列,用于组织在不同节点集间调度作业的方式。

  9. 选择添加实例组

生命周期配置-可选

配置集群中节点的配置方式。您的选择会影响 Amazon S3 存储桶要求、互联网访问需求和配置复杂性。 HyperPod 支持三个节点生命周期配置选项,每个选项都提供对配置过程的不同级别的控制。

  1. 对于生命周期脚本,请选择以下选项之一来控制集群中节点的配置方式:

    • — 使用 HyperPod 配置自动 AMI-based 配置节点。Slurm 守护程序、Docker、Enroot、Pyxis、使用 MariaDB 的 Slurm 记账、SSH 密钥生成和传播、日志轮换和主目录设置都是在没有任何脚本或 Amazon S3 存储桶的情况下配置的。所有软件都预先打包在 AMI 中,因此在配置期间无需访问互联网。这是新集群的最简单路径。

    • 使用默认生命周期脚本-默认生命周期脚本上传到选定的 Amazon S3 存储桶并用于配置节点。此选项使用来自 Awsome 分布式训练资料库 (ADTR) 的脚本。

    • 使用自定义生命周期脚本-从 Amazon S3 存储桶中选择生命周期脚本。这与 API 中的OnCreate路径相对应,在该路径中,您的脚本拥有整个配置序列,包括 Slurm 启动的时间。 HyperPod 选择此选项时不运行 AMI-based配置。

    下表汇总了三个选项:

    Option 做了 HyperPod 什么 需要亚马逊 S3 存储桶吗? 需要上网吗?
    (AMI-based配置) 使用 Slurm 和基本包自动配置节点
    使用默认的生命周期脚本 从 Amazon S3 上传并运行 ADTR 脚本 支持
    使用自定义生命周期脚本 从 Amazon S3 运行您的脚本;您拥有完整的配置序列 取决于你的脚本
  2. 对于 S3 中的扩展脚本文件-可选(当您在生命周期脚本下选择 “” 时出现),请输入扩展脚本的 Amazon S3 URI。扩展脚本允许您在默认配置的基础上配置其他可选功能,例如可观察性、系统安全服务守护程序 (SSSD) 和 Amazon S3 存储桶挂载,而无需管理整套生命周期脚本。

    在入口点脚本中输入完整的 Amazon S3 URI,例如:

    s3://DOC-EXAMPLE-BUCKET/extensions/run_extensions.sh

    HyperPod 下载入口点脚本所在的整个文件夹。构造您的 Amazon S3 文件夹,使所有支持文件与入口点脚本位于同一个目录中。

    注意

    在 API 中,这相当于OnInitComplete在中LifeCycleConfig使用指定SourceS3Uri。控制台将它们组合成一个直接指向入口点脚本的 Amazon S3 URI 字段。

    提示

    有关即用型扩展脚本,请参阅 Awsome 分布式训练存储库中的 Extensions 文件夹。该run_extensions.sh脚本通过简单的布尔值切换来编排多种功能,以启用或禁用每项功能。

  3. 对于生命周期脚本的 S3 存储桶(当您选择 “使用默认生命周期脚本” 或 “使用自定义生命周期脚本” 时出现),请选择创建新的存储桶或使用现有存储桶来存储生命周期脚本。

注意

只有 Slurm-orchestrated 集群支持可选的节点生命周期配置。使用 “连续” 的 Amazon 集 EKS-orchestrated 群和 Slurm 集群NodeProvisioningMode仍然需要在每个实例组上安装生命周期脚本。

注意

带有扩展脚本的 “” 选项和 “使用自定义生命周期脚本” 选项是互斥的。您不能将 AMI-based 配置与扩展脚本和自定义生命周期脚本组合到同一个实例组中。在 API 中,这意味着OnCreateOnInitComplete不能一起指定。

Permissions

选择或创建允许 HyperPod 代表您运行和访问必要 AWS 资源的 IAM 角色。

仓储服务

将 FSx for Lustre 文件系统配置为在集群上配置 HyperPod 。FSx 配置对于集群创建是可选的,但建议用于生产 ML 工作负载。

  1. 对于文件系统,选择现有 FSx for Lustre 文件系统,创建新的 FSx for Lustre 文件系统,或者不预调配 FSx for Lustre 文件系统。

  2. 对于每单位存储的吞吐量,选择预调配存储中每 TiB 可用的吞吐量。

  3. 存储容量中,输入以 TB 为单位的容量值。

  4. 对于数据压缩类型,选择 LZ4 以启用数据压缩。

  5. 对于 Lustre 版本,查看为新文件系统推荐的值。

注意

使用 AMI-based 配置(在 “生命周期脚本” 下选择 “”)或扩展脚本时,会自动 HyperPod 处理 FSx for Lustre 的挂载。使用自定义生命周期脚本时,您的脚本负责挂载文件系统。

标签 – 可选

对于标签-可选,向新集群添加密钥和值对,并将集群作为 AWS 资源进行管理。要了解更多信息,请参阅标记您的 AWS 资源

部署资源

使用快速设置自定义设置完成集群配置后,选择以下选项以启动资源预调配和集群创建。

  • 提交- SageMaker AI 将开始配置默认配置资源并创建集群。

  • 下载 CloudFormation 模板参数-您将下载配置参数 JSON 文件并运行 AWS CLI 命令部署 CloudFormation 堆栈以配置配置资源并创建集群。如果需要,您可以编辑已下载的参数 JSON 文件。如果选择此选项,请在使用创建 SageMaker HyperPod 集群 CloudFormation 模板中查看更多说明。

删除集群并清理资源

成功测试创建 SageMaker HyperPod 集群后,它会继续以该InService状态运行,直到您删除该集群。我们建议您在不使用按需 SageMaker AI 实例时删除任何使用按需 AI 实例创建的集群,以免产生基于按需定价的持续服务费用。在本教程中,您创建了一个由两个实例组组成的集群。其中一个使用 C5 实例,因此请确保按照 删除集 SageMaker HyperPod 群 中的说明删除集群。

但是,如果您创建了具有预留计算容量的集群,则集群的状态不会影响服务计费。

如果您使用了使用默认生命周期脚本使用自定义生命周期脚本,请转到您在创建集群时使用的 Amazon S3 存储桶并删除生命周期脚本文件。

如果您在没有扩展脚本的情况下使用 “”(仅限AMI-based 配置),则生命周期脚本无需清理 Amazon S3。

如果您将 None 与扩展脚本一起使用,请清理指定的 Amazon S3 存储桶中的扩展脚本文件。

如果您已测试在集群上运行任何工作负载,请确保您是否上传了任何数据,或者您的作业是否将任何构件保存到不同的 S3 存储桶或文件系统服务(如适用于 Lustre 的 Amazon FSx 和 Amazon Elastic File System)。为防止产生任何费用,请删除存储或文件系统中的所有构件和数据。