创建集 SageMaker HyperPod 群 - 亚马逊 SageMaker AI

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

创建集 SageMaker HyperPod 群

了解如何使用创建由 Amazon EKS 编排的 SageMaker HyperPod 集群。 AWS CLI

  1. 在创建集 SageMaker HyperPod 群之前:

    1. 确保现有 Amazon EKS 集群已启动并运行。有关如何设置 Amazon EKS 集群的详细说明,请参阅 Amazon EKS 用户指南中的创建 Amazon EKS 集群

    2. 按照 使用 Helm 在 Amazon EKS 集群上安装软件包 中的说明安装 Helm 图表。如果您创建一个使用受限实例组 (RIG) 创建 HyperPod EKS 集群,则需要一个单独的 Helm 图表。

  2. 准备生命周期配置脚本然后上传到 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 工作人员污点,并为每个区域使用正确的容器映像。

  3. 准备一个 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,添加 InstanceStressInstanceConnectivity,以启用 深度运行状况检查

    • 对于NodeRecoveryAutomatic请指定启用自动节点恢复。 SageMaker HyperPod 当运行状况监控代理发现问题时,替换或重启实例(节点)。

    • 对于Tags参数,您可以添加用于将 SageMaker HyperPod 集群作为 AWS 资源进行管理的自定义标签。在其他支持标记的 AWS 服务中添加标签的方式与在集群中添加标签的方式相同。要了解有关标记 AWS 资源的更多信息,请参阅《标记 AWS 资源用户指南》

    • 对于 VpcConfig 参数,请指定 EKS 集群中使用的 VPC 的信息。子网必须是专用的。

  4. 运行 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