Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'un SageMaker HyperPod cluster
Découvrez comment créer des SageMaker HyperPod clusters orchestrés par Amazon EKS à l'aide du AWS CLI.
-
Avant de créer un SageMaker HyperPod cluster :
-
Assurez-vous qu'un cluster Amazon EKS existant est opérationnel. Pour obtenir des instructions détaillées sur la configuration d'un cluster Amazon EKS, consultez la section Créer un cluster Amazon EKS dans le guide de l'utilisateur Amazon EKS.
-
Installez le tableau Helm comme indiqué dans le manuelInstallation de packages sur le cluster Amazon EKS à l'aide de Helm. Si vous créez unCréation d'un cluster HyperPod EKS avec un groupe d'instances restreint (RIG), vous aurez besoin d'un graphique Helm distinct.
-
-
Préparez un script de configuration du cycle de vie et chargez-le dans un compartiment Amazon S3, tel que
s3://
.amzn-s3-demo-bucket
/Lifecycle-scripts
/base-config
/Pour démarrer rapidement, téléchargez l'exemple
on_create.sh
de script depuis le GitHub référentiel AWS ome Distributed Training et chargez-le dans le compartiment S3. Vous pouvez également inclure des instructions de configuration supplémentaires, une série de scripts de configuration ou des commandes à exécuter pendant la phase de provisionnement du HyperPod cluster. Important
Si vous créez une Rôle IAM pour SageMaker HyperPod pièce jointe uniquement au managed
AmazonSageMakerClusterInstanceRolePolicy
, votre cluster a accès aux compartiments Amazon S3 avec le préfixesagemaker-
spécifique.Si vous créez un groupe d'instances restreint, il n'est pas nécessaire de télécharger et d'exécuter le script de cycle de vie. Au lieu de cela, tu dois courir
install_rig_dependencies.sh
.Les conditions requises pour exécuter le
install_rig_dependencies.sh
script sont les suivantes :-
AWS Node (CNI) et CoreDNS doivent tous deux être activés. Il s'agit de modules complémentaires EKS standard qui ne sont pas gérés par le SageMaker HyperPod Helm standard, mais qui peuvent être facilement activés dans la console EKS sous Extensions.
-
Le graphique SageMaker HyperPod Helm standard doit être installé avant d'exécuter ce script.
Le
install_rig_dependencies.sh
script exécute les actions suivantes.-
aws-node
(CNI) : nouveaurig-aws-node
Daemonset créé ;aws-node
patchs existants corrigés pour éviter les nœuds RIG. -
coredns
: Converti en Daemonset pour prendre en charge l'utilisation RIGs sur plusieurs plates-formes et éviter les surcharges. -
training-operators : mise à jour avec les tolérances d'altération de RIG Worker et NodeAffinity privilégiant les instances non RIG.
-
Elastic Fabric Adapter (EFA) : mis à jour pour tolérer les taches des travailleurs du RIG et utiliser des images de conteneur correctes pour chaque région.
-
-
Préparez un fichier de demande d'CreateClusterAPI au format JSON. Pour
ExecutionRole
, fournissez l'ARN du rôle IAM que vous avez créé avec le rôle géré dansAmazonSageMakerClusterInstanceRolePolicy
la sectionRôle IAM pour SageMaker HyperPod.Note
Assurez-vous que votre SageMaker HyperPod cluster est déployé dans le même Virtual Private Cloud (VPC) que votre cluster Amazon EKS. Les sous-réseaux et les groupes de sécurité spécifiés dans la configuration du SageMaker HyperPod cluster doivent permettre la connectivité réseau et la communication avec le point de terminaison du serveur API du cluster Amazon EKS.
// 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" }Notez les points suivants lors de la configuration pour créer un nouveau SageMaker HyperPod cluster associé à un cluster EKS.
-
Vous pouvez configurer jusqu'à 20 groupes d'instances sous
InstanceGroups
ce paramètre. -
Pour
Orchestator.Eks.ClusterArn
, spécifiez l'ARN du cluster EKS que vous souhaitez utiliser comme orchestrateur. -
Pour
OnStartDeepHealthChecks
, ajouterInstanceStress
etInstanceConnectivity
activerContrôles de santé approfondis. -
Pour
NodeRecovery
, spécifiezAutomatic
d'activer la restauration automatique des nœuds. SageMaker HyperPod remplace ou redémarre les instances (nœuds) lorsque des problèmes sont détectés par l'agent de surveillance de l'état. -
Pour le
Tags
paramètre, vous pouvez ajouter des balises personnalisées pour gérer le SageMaker HyperPod cluster en tant que AWS ressource. Vous pouvez ajouter des balises à votre cluster de la même manière que vous les ajoutez dans d'autres AWS services qui prennent en charge le balisage. Pour en savoir plus sur le balisage AWS des ressources en général, consultez le Guide de l'utilisateur AWS des ressources de balisage. -
Pour le
VpcConfig
paramètre, spécifiez les informations du VPC utilisé dans le cluster EKS. Les sous-réseaux doivent être privés.
-
-
Exécutez la commande create-cluster comme suit.
Important
Lorsque vous exécutez la
create-cluster
commande avec le--cli-input-json
paramètre, vous devez inclure lefile://
préfixe avant le chemin complet du fichier JSON. Ce préfixe est nécessaire pour s'assurer que l'entrée AWS CLI est reconnue comme un chemin de fichier. L'omission dufile://
préfixe entraîne une erreur de paramètre d'analyse.aws sagemaker create-cluster \ --cli-input-json
file://complete/path/to/create_cluster.json
Cela devrait renvoyer l'ARN du nouveau cluster.
Important
Vous pouvez utiliser l'opération update-cluster pour supprimer un groupe d'instances restreint (RIG). Lorsqu'un RIG est réduit à 0, le système de fichiers FSx for Lustre n'est pas supprimé. Pour supprimer complètement le système de fichiers FSx for Lustre, vous devez supprimer complètement le RIG.
La suppression d'un RIG ne supprimera aucun artefact stocké dans le compartiment Amazon S3 géré par le service. Cependant, vous devez vous assurer que tous les artefacts du système de fichiers FSx for Lustre sont entièrement synchronisés avec Amazon S3 avant de les supprimer. Nous vous recommandons d'attendre au moins 30 minutes après la fin du travail pour garantir la synchronisation complète de tous les artefacts du système de fichiers FSx for Lustre avec le compartiment Amazon S3 géré par le service.