本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建集 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-json
file://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