

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

# 开始 SageMaker HyperPod 使用 SageMaker AI 控制台
<a name="smcluster-getting-started-slurm-console"></a>

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

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

**Topics**
+ [创建集群](#smcluster-getting-started-slurm-console-create-cluster-page)
+ [部署资源](#smcluster-getting-started-slurm-console-create-cluster-deploy)
+ [删除集群并清理资源](#smcluster-getting-started-slurm-console-delete-cluster-and-clean)

## 创建集群
<a name="smcluster-getting-started-slurm-console-create-cluster-page"></a>

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

1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

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

1. 在**SageMaker HyperPod 集群**页面上，选择**创建 HyperPod 集群**。

1. 在**创建 HyperPod 集群**下拉列表中，选择**由 Slurm 编排**。

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

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

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

## 快速设置
<a name="smcluster-getting-started-slurm-console-create-cluster-default"></a>

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

### 常规设置
<a name="smcluster-getting-started-slurm-console-create-cluster-default-general"></a>

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

### 实例组
<a name="smcluster-getting-started-slurm-console-create-cluster-default-instance-groups"></a>

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

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

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

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

1. 对于**名称**，指定实例组的名称。在本教程中，创建三个实例组，分别命名为 `my-controller-group`、`my-login-group` 和 `worker-group-1`。

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

1. 对于**实例类型**，为实例组选择实例。本教程中，选择 `ml.c5.xlarge` 为 `my-controller-group`，`ml.m5.4xlarge` 为 `my-login-group`，`ml.trn1.32xlarge` 为 `worker-group-1`。
**重要**  
请确保为账户选择具有足够配额以及充足的未分配 IP 地址的实例类型。要查看或请求更多配额，请参阅 [SageMaker HyperPod 配额](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)。

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

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

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

1. 选择**添加实例组**。

### 快速设置默认值
<a name="smcluster-getting-started-slurm-console-create-cluster-default-settings"></a>

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

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

## 自定义设置
<a name="smcluster-getting-started-slurm-console-create-cluster-custom"></a>

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

### 常规设置
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-general"></a>

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

对于**实例恢复**，选择**自动 – *推荐***或**无**。

### Networking
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-network"></a>

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

1. 对于 **VPC**，如果您已经拥有可以让 SageMaker AI 访问您的 VPC 的 VPC，请选择您自己的 VPC。要创建新的 VPC，请按照 [Amazon Virtual Private Cloud 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)中的*创建 VPC* 进行操作。您可以将其保留为 “**无**” 以使用默认 SageMaker AI VPC。

1. 对于 **VPC IPv4 CIDR 块**，输入 VPC 的起始 IP。

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

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

### 实例组
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-instance-groups"></a>

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

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

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

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

1. 对于**名称**，指定实例组的名称。在本教程中，创建三个实例组，分别命名为 `my-controller-group`、`my-login-group` 和 `worker-group-1`。

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

1. 对于**实例类型**，为实例组选择实例。本教程中，选择 `ml.c5.xlarge` 为 `my-controller-group`，`ml.m5.4xlarge` 为 `my-login-group`，`ml.trn1.32xlarge` 为 `worker-group-1`。
**重要**  
请确保为账户选择具有足够配额以及充足的未分配 IP 地址的实例类型。要查看或请求更多配额，请参阅 [SageMaker HyperPod 配额](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)。

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

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

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

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

1. 选择**添加实例组**。

### 生命周期配置-可选
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-lifecycle"></a>

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

1. 对于**生命周期脚本**，请选择以下选项之一来控制集群中节点的配置方式：
   + **无** — 使用 HyperPod 配置自动 AMI-based 配置节点。Slurm 守护程序、Docker、Enroot、Pyxis、使用 MariaDB 的 Slurm 记账、SSH 密钥生成和传播、日志轮换和主目录设置都是在没有任何脚本或 Amazon S3 存储桶的情况下配置的。所有软件都预先打包在 AMI 中，因此在配置期间无需访问互联网。这是新集群的最简单路径。
   + **使用默认生命周期脚本**-默认生命周期脚本上传到选定的 Amazon S3 存储桶并用于配置节点。此选项使用来自 [Awsome 分布式训练资料库](https://github.com/awslabs/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) (ADTR) 的脚本。
   + **使用自定义生命周期脚本**-从 Amazon S3 存储桶中选择生命周期脚本。这与 API 中的`OnCreate`路径相对应，在该路径中，您的脚本拥有整个配置序列，包括 Slurm 启动的时间。 HyperPod 选择此选项时不运行 AMI-based配置。

   下表汇总了三个选项：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/smcluster-getting-started-slurm-console.html)

1. 对于 **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 文件夹](https://github.com/awslabs/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/Extensions)。该`run_extensions.sh`脚本通过简单的布尔值切换来编排多种功能，以启用或禁用每项功能。

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

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

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

### Permissions
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-permissions"></a>

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

### 仓储服务
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-storage"></a>

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

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

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

1. 在**存储容量**中，输入以 TB 为单位的容量值。

1. 对于**数据压缩类型**，选择 **LZ4** 以启用数据压缩。

1. 对于 **Lustre 版本**，查看为新文件系统推荐的值。

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

### 标签 – 可选
<a name="smcluster-getting-started-slurm-console-create-cluster-tags"></a>

对于**标签-*可选***，向新集群添加密钥和值对，并将集群作为 AWS 资源进行管理。要了解更多信息，请参阅[标记您的 AWS 资源](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)。

## 部署资源
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy"></a>

使用**快速设置**或**自定义设置**完成集群配置后，选择以下选项以启动资源预调配和集群创建。
+  **提交**- SageMaker AI 将开始配置默认配置资源并创建集群。
+ **下载 CloudFormation 模板参数**-您将下载配置参数 JSON 文件并运行 AWS CLI 命令部署 CloudFormation 堆栈以配置配置资源并创建集群。如果需要，您可以编辑已下载的参数 JSON 文件。如果选择此选项，请在[使用创建 SageMaker HyperPod 集群 CloudFormation 模板](smcluster-getting-started-slurm-console-create-cluster-cfn.md)中查看更多说明。

## 删除集群并清理资源
<a name="smcluster-getting-started-slurm-console-delete-cluster-and-clean"></a>

成功测试创建 SageMaker HyperPod 集群后，它会继续以该`InService`状态运行，直到您删除该集群。我们建议您在不使用按需 SageMaker AI 实例时删除任何使用按需 AI 实例创建的集群，以免产生基于按需定价的持续服务费用。在本教程中，您创建了一个由两个实例组组成的集群。其中一个使用 C5 实例，因此请确保按照 [删除集 SageMaker HyperPod 群](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster) 中的说明删除集群。

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

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

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

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

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