本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建集 SageMaker HyperPod 群
了解如何使用创建由 Amazon EKS 编排的 SageMaker HyperPod 集群。 AWS CLI
-
在创建集 SageMaker HyperPod 群之前:
-
确保现有 Amazon EKS 集群已启动并运行。有关如何设置 Amazon EKS 集群的详细说明,请参阅 Amazon EKS 用户指南中的创建 Amazon EKS 集群。
-
按照 使用 Helm 在 Amazon EKS 集群上安装软件包 中的说明安装 Helm 图表。如果您创建一个使用受限实例组 (RIG) 创建 HyperPod EKS 集群,则需要一个单独的 Helm 图表。
-
-
准备生命周期配置脚本然后上传到 Amazon S3 存储桶,如
s3://。amzn-s3-demo-bucket/Lifecycle-scripts/base-config/要快速入门,请
on_create.sh从 AWS ome 分布式训练 GitHub 存储库下载示例脚本,然后将其上传到 S3 存储桶。您还可以包括其他设置说明、一系列安装脚本或要在 HyperPod 集群配置阶段执行的命令。 重要
如果您创建的 的 IAM 角色适用于 SageMaker HyperPod 只附加托管的
AmazonSageMakerClusterInstanceRolePolicy,则集群可访问具有特定前缀sagemaker-的 Amazon S3 存储桶。如果您创建受限实例组,则无需下载和运行生命周期脚本。相反,你需要逃跑
install_rig_dependencies.sh。运行
install_rig_dependencies.sh脚本的先决条件包括:-
AWS 节点 (CNI) 和 CoreDNS 都应启用。这些是标准的 EKS 附加组件,不由标准 SageMaker HyperPod Helm 管理,但可以在 EKS 控制台的 Add-ons 下轻松启用。
-
在运行此脚本之前,应安装标准 SageMaker HyperPod Helm 图表。
该
install_rig_dependencies.sh脚本执行以下操作。-
aws-node(CNI):已创建新的rig-aws-node守护程序集;已aws-node修补现有守护程序以避开 RIG 节点。 -
coredns: 已转换为 Daemonset RIGs 以支持多装备使用并防止过载。 -
训练操作员:更新了 RIG Worker 污点容忍度和 NodeAffinity 偏爱非 Rig 实例。
-
Elastic Fabric Adapter (EFA) Fabric Adapter:已更新以容忍 RIG 工作人员污点,并为每个区域使用正确的容器映像。
-
-
准备一个 JSON 格式的 CreateClusterAPI 请求文件。对于
ExecutionRole,请提供使用托管的AmazonSageMakerClusterInstanceRolePolicy从 的 IAM 角色适用于 SageMaker HyperPod 部分创建的 IAM 角色的 ARN。注意
确保您的 SageMaker HyperPod 集群与您的 Amazon EKS 集群部署在同一个虚拟私有云 (VPC) 中。 SageMaker HyperPod 集群配置中指定的子网和安全组必须允许与 Amazon EKS 集群的 API 服务器终端节点进行网络连接和通信。
// create_cluster.json{ "ClusterName":"string", "InstanceGroups": [{ "InstanceGroupName":"string", "InstanceType":"string", "InstanceCount":number, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/", "OnCreate":"on_create.sh"}, "ExecutionRole":"string", "ThreadsPerCore":number, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"] }], "RestrictedInstanceGroups": [ { "EnvironmentConfig": { "FSxLustreConfig": { "PerUnitStorageThroughput":number, "SizeInGiB":number} }, "ExecutionRole":"string", "InstanceCount":number, "InstanceGroupName":"string", "InstanceStorageConfigs": [ { ... } ], "InstanceType":"string", "OnStartDeepHealthChecks": ["string"], "OverrideVpcConfig": { "SecurityGroupIds": ["string"], "Subnets": ["string"] }, "ScheduledUpdateConfig": { "DeploymentConfig": { "AutoRollbackConfiguration": [ { "AlarmName":"string"} ], "RollingUpdatePolicy": { "MaximumBatchSize": { "Type":"string", "Value":number}, "RollbackMaximumBatchSize": { "Type":"string", "Value":number} }, "WaitIntervalInSeconds":number}, "ScheduleExpression":"string"}, "ThreadsPerCore":number, "TrainingPlanArn":"string"} ], "VpcConfig": { "SecurityGroupIds": ["string"], "Subnets": ["string"] }, "Tags": [{ "Key":"string", "Value":"string"}], "Orchestrator": { "Eks": { "ClusterArn":"string", } }, "NodeRecovery": "Automatic" }配置为创建与 EKS SageMaker HyperPod 集群关联的新集群时,请注意以下几点。
-
在
InstanceGroups参数下最多可配置 20 个实例组。 -
对于
Orchestator.Eks.ClusterArn,请指定要用作编排工具的 EKS 集群的 ARN。 -
对于
OnStartDeepHealthChecks,添加InstanceStress和InstanceConnectivity,以启用 深度运行状况检查。 -
对于
NodeRecovery,Automatic请指定启用自动节点恢复。 SageMaker HyperPod 当运行状况监控代理发现问题时,替换或重启实例(节点)。 -
对于
Tags参数,您可以添加用于将 SageMaker HyperPod 集群作为 AWS 资源进行管理的自定义标签。在其他支持标记的 AWS 服务中添加标签的方式与在集群中添加标签的方式相同。要了解有关标记 AWS 资源的更多信息,请参阅《标记 AWS 资源用户指南》。 -
对于
VpcConfig参数,请指定 EKS 集群中使用的 VPC 的信息。子网必须是专用的。
-
-
运行 create-cluster 命令如下。
重要
使用
--cli-input-json参数运行create-cluster命令时,必须在 JSON 文件的完整路径前file://添加前缀。必须使用此前缀来确保将输入 AWS CLI 识别为文件路径。省略前file://缀会导致解析参数错误。aws sagemaker create-cluster \ --cli-input-jsonfile://complete/path/to/create_cluster.json这将返回新集群的 ARN。
重要
您可以使用更新集群操作来移除受限实例组 (RIG)。当 RIG 缩小到 0 时,for FSx Lustre 的文件系统不会被删除。要完全删除 f FSx or Lustre 文件系统,必须完全删除 RIG。
移除 RIG 不会删除存储在服务托管的 Amazon S3 存储桶中的任何项目。但是,在移除之前,您应确保 for FSx Lustre 文件系统中的所有项目都与 Amazon S3 完全同步。我们建议在任务完成后至少等待 30 分钟,以确保从 for Lustre 文件系统的所有项目完全同步到服务托管的 Amazon S3 存储桶。 FSx