使用 SageMaker HyperPod 的先决条件
以下各节将向您介绍开始使用 SageMaker HyperPod 之前的先决条件。
主题
SageMaker HyperPod 配额
您可以根据 AWS 账户中集群使用量的配额创建 SageMaker HyperPod 集群。
重要
要了解有关 SageMaker HyperPod 定价的更多信息,请参阅 SageMaker HyperPod 定价 和 Amazon SageMaker 定价
使用 AWS 管理控制台查看 Amazon SageMaker HyperPod 配额
查找用于 SageMaker HyperPod 的集群使用量的配额(也称为限制)的默认值和应用值。
-
打开 服务配额 管理控制台
。 -
在左侧导航窗格中,选择 AWS 服务。
-
从 AWS 服务列表中,搜索并选择 Amazon SageMaker AI。
-
在服务限额列表中,您可以查看服务限额名称、应用的值(如果该值可用)、AWS 默认限额以及限额值是否可调整。
-
在搜索栏中输入集群使用量。这将显示集群使用配额、应用配额和默认配额。
使用 AWS 管理控制台请求增加 Amazon SageMaker HyperPod 配额
增加账户或资源级别的配额。
-
要增加集群使用量的实例配额,请选择要增加的配额。
-
如果配额可调,则可根据可调整性列中列出的值,在账户级别或资源级别请求增加配额。
-
对于增加配额值,输入新值。新值必须大于当前值。
-
选择请求。
-
要在管理控制台中查看任何待处理或最近解决的请求,请从服务详细信息页面导航至请求历史记录选项卡,或从导航窗格中选择控制面板。对于待处理的请求,请选择请求状态以打开收到的请求。请求的初始状态为 Pending。状态更改为已请求限额后,您可以在 AWS 支持 中看到工单编号。选择案例编号以打开请求服务单。
要了解有关请求增加配额的更多信息,请参阅《AWS 服务配额用户指南》中的请求增加配额。
使用自定义 Amazon VPC 设置 SageMaker HyperPod
要使用自定义 Amazon VPC 设置 SageMaker HyperPod 集群,请查看以下先决条件。
注意
要进行 Amazon EKS 编排,必须配置 VPC。对于 Slurm 编排,VPC 设置是可选的。
-
在使用自定义 VPC 创建 SageMaker HyperPod 集群之前,请验证您的 AWS 账户中的弹性网络接口(ENI)容量。ENI 限制由 Amazon EC2 控制,且因 AWS 区域而异。SageMaker HyperPod 无法自动请求增加配额。
要验证您当前的 ENI 配额,请执行以下操作:
-
打开 服务配额 管理控制台
。 -
在管理配额部分,使用 AWS 服务下拉列表搜索 VPC。
-
选择查看 Amazon Virtual Private Cloud(Amazon VPC)的配额。
-
查找服务配额每个区域的网络接口数或配额代码
L-DF5E4CA3。
如果您当前的 ENI 限制不足以满足 SageMaker HyperPod 集群需求,可请求增加配额。提前确保充足的 ENI 容量,有助于避免集群部署失败。
-
-
使用自定义 VPC 将 SageMaker HyperPod 集群与 AWS 资源连接时,请在集群创建期间提供 VPC 名称、ID、AWS 区域、子网 ID 和安全组 ID。
注意
当您的 Amazon VPC 和子网在集群的
VPCConfig或实例组级别,通过ClusterInstanceGroupSpecification的OverrideVPCConfig属性支持 IPv6 时,网络通信会因集群编排平台而异:-
Slurm 编排的集群会自动为节点配置双 IPv6 和 IPv4 地址,从而允许即时 IPv6 网络通信。除了
VPCConfigIPv6 设置外,无需进行其他配置。 -
在 EKS 编排的集群中,节点将获得双栈地址,但容器组(pod)只能在 Amazon EKS 集群显式启用 IPv6 时使用 IPv6。您必须创建一个新的 IPv6 Amazon EKS 集群 – 现有 IPv4 Amazon EKS 集群无法转换为 IPv6。有关部署 IPv6 Amazon EKS 集群的信息,请参阅 Amazon EKS IPv6 集群部署。
IPv6 配置的其他资源:
-
有关向 VPC 添加 IPv6 支持的信息,请参阅 VPC 的 IPv6 支持。
-
有关创建新的与 IPv6 兼容的 VPC 的信息,请参阅 Amazon VPC 创建指南。
-
要使用自定义 Amazon VPC 配置 SageMaker HyperPod,请参阅 SageMaker HyperPod 的自定义 Amazon VPC 设置。
-
-
确保所有资源都部署在与 SageMaker HyperPod 集群相同的 AWS 区域中。配置安全组规则以允许 VPC 内的资源间通信。例如,在
us-west-2中创建 VPC 时,跨一个或多个可用区预调配子网(例如us-west-2a或us-west-2b),然后创建一个允许组内流量的安全组。注意
SageMaker HyperPod 支持多可用区部署。有关更多信息,请参阅跨多个可用区设置 SageMaker HyperPod 集群。
-
通过创建 VPC 端点,为 VPC 部署的 SageMaker HyperPod 实例组建立 Amazon Simple Storage Service(Amazon S3)连接。如果没有互联网访问权限,实例组将无法存储或检索生命周期脚本、训练数据以及模型构件。我们建议您创建一个自定义 IAM 策略,仅允许在私有 VPC 内访问 Amazon S3 存储桶。有关更多信息,请参阅《AWS PrivateLink 指南》中的 Amazon S3 的端点。
-
对于使用启用了 Elastic Fabric Adapter(EFA)的实例的 HyperPod 集群,配置安全组以允许所有进出该安全组本身的入站和出站流量。具体而言,避免为出站规则使用
0.0.0.0/0,因为这可能会导致 EFA 运行状况检查失败。有关 EFA 安全组准备指南的更多信息,请参阅《Amazon EC2 用户指南》中的步骤 1:准备启用 EFA 的安全组。 -
在创建 HyperPod 集群之前,请仔细考虑子网的无类别域间路由(CIDR)块大小。
-
子网 CIDR 块大小一经创建便无法更改。在使用像 P5 这样的大型加速实例时,这一点尤为重要。如果块大小不足,则在纵向扩展时必须重新创建集群。
-
在选择合适的子网 CIDR 块大小时,请考虑以下因素:实例类型、预期实例数以及每个实例使用的 IP 地址数。
-
对于 Slurm 编排的集群,每个 P5 实例可创建 32 个 IP 地址(每个网卡一个)。对于 EKS 编排的集群,每个 P5 实例可创建 81 个 IP 地址(其中 50 个来自主卡,剩余 31 张卡各提供 1 个)。有关详细规格,请参阅《Amazon EC2 实例类型开发人员指南》中的网络规格。
-
有关指定子网 CIDR 块大小的 CloudFormation 模板的示例,请参阅 awsome-distributed-training 存储库
中的 HyperPod Slurm 模板 和 HyperPod Amazon EKS 模板 。
-
跨多个可用区设置 SageMaker HyperPod 集群
您可以跨多个可用区(AZ)配置 SageMaker HyperPod 集群,以提高可靠性和可用性。
注意
Elastic Fabric Adapter(EFA)流量无法跨可用区或 VPC 传输。这不适用于来自 EFA 接口的 ENA 设备的正常 IP 流量。有关更多信息,请参阅 EFA 限制。
-
默认行为
HyperPod 将所有集群实例部署在单个可用区中。VPC 配置决定部署可用区:
-
对于 Slurm 编排的集群,VPC 配置是可选的。如果未提供 VPC 配置,HyperPod 会默认从平台 VPC 中选择一个子网。
-
对于 EKS 编排的集群,VPC 配置是必需的。
-
对于 Slurm 和 EKS 编排工具,如果提供
VpcConfig,HyperPod 会从提供的VpcConfig的子网列表中选择一个子网。所有实例组都继承子网的可用区。
注意
创建集群后,无法修改其
VpcConfig设置。要了解有关为 HyperPod 集群配置 VPC 的更多信息,请参阅上一部分使用自定义 Amazon VPC 设置 SageMaker HyperPod。
-
-
多可用区配置
在创建集群或向现有集群添加新实例组时,可以跨多个可用区设置 HyperPod 集群。要配置多可用区部署,可通过为集群中的单个实例组指定不同的子网和安全组(可能跨不同的可用区)来覆盖集群的默认 VPC 设置。
SageMaker HyperPod API 用户在使用
CreateCluster或UpdateClusterAPI 时,可使用 ClusterInstanceGroupSpecification 中的OverrideVpcConfig属性。OverrideVpcConfig字段:-
实例组一经创建便无法修改。
-
为可选项。如果未指定,则将集群级别
VpcConfig用作默认值。 -
对于 Slurm 编排的集群,只能在提供集群级别
VpcConfig时指定。如果未在集群级别指定VpcConfig,则OverrideVpcConfig不能用于任何实例组。 -
包含两个必填字段:
-
Subnets– 接受 1 到 16 个子网 ID -
SecurityGroupIds– 接受 1 到 5 个安全组 ID
-
有关使用 SageMaker HyperPod 控制台用户界面或 AWS CLI 创建或更新 SageMaker HyperPod 集群的更多信息:
-
Slurm 编排:请参阅运行 Slurm 编排的 HyperPod 集群。
-
EKS 编排。请参阅运行 EKS 编排的 HyperPod 集群。
-
注意
在跨多个可用区运行工作负载时,请注意,可用区之间的网络通信会引入额外延迟。在设计对延迟敏感的应用程序时,请考虑这一影响。
为集群用户访问控制设置 AWS Systems Manager 和以另一种身份运行
SageMaker HyperPod DLAMI 开箱即带 AWS Systems Manager
注意
通过向用户授予对 HyperPod 集群节点的访问权限,可让用户在节点上安装和运行用户管理的软件。确保遵守用户的最低权限原则。
在 AWS 账户中启用“以另一种身份运行”
作为 AWS 账户管理员或云管理员,您可以通过使用 SSM 中的“以另一种身份运行”功能,在 IAM 角色或用户级别管理对 SageMaker HyperPod 集群的访问。有了这项功能,您就可以使用与 IAM 角色或用户相关联的操作系统用户启动每个 SSM 会话。
要在 AWS 账户中启用“以另一种身份运行”功能,请按照为 Linux 和 macOS 托管节点打开“以另一种身份运行”支持中的步骤操作。如果您已经在集群中创建了操作系统用户,请确保按照为 Linux 和 macOS 托管节点打开“以另一种身份运行”支持下步骤 5 的选项 2 中的指导,通过标记 IAM 角色或用户,将其与 IAM 角色或用户关联起来。
(可选)使用适用于 Lustre 的 Amazon FSx 设置 SageMaker HyperPod
要开始使用 SageMaker HyperPod 并在集群和 FSx for Lustre 系统之间映射数据路径,请选择 SageMaker HyperPod 支持的 AWS 区域 之一。选择首选的 AWS 区域 后,还应确定使用哪个可用区(AZ)。
如果您使用的 SageMaker HyperPod 计算节点所在的 AZ 不同于在同一 AWS 区域 中设置 FSx for Lustre 系统的 AZ,则可能会产生通信和网络开销。我们建议您使用与 SageMaker HyperPod 服务账户相同的物理 AZ,以避免 SageMaker HyperPod 集群与您的 FSx for Lustre 系统之间出现任何跨 AZ 流量。此外,请确保已在 VPC 中进行了配置。如果您要使用 Amazon FSx 作为存储的主文件系统,则必须使用 VPC 配置 SageMaker HyperPod 集群。