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.
Commencer à SageMaker HyperPod utiliser le AWS CLI
Créez votre premier SageMaker HyperPod cluster à l'aide des AWS CLI commandes pour HyperPod.
Créez votre premier SageMaker HyperPod cluster avec Slurm
Le didacticiel suivant explique comment créer un nouveau SageMaker HyperPod cluster et le configurer avec Slurm à l'aide des AWS CLIcommandes pour. SageMaker HyperPod À la suite du didacticiel, vous allez créer un HyperPod cluster avec trois nœuds Slurm, my-controller-groupmy-login-group, et. worker-group-1
-
Tout d’abord, préparez et chargez des scripts de cycle de vie dans un compartiment Amazon S3. Lors de la création du cluster, HyperPod exécutez-les dans chaque groupe d'instances. Chargez des scripts de cycle de vie sur Amazon S3 à l’aide de la commande suivante.
aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/srcNote
Le chemin du compartiment S3 doit commencer par un préfixe
sagemaker-, car le Rôle IAM pour SageMaker HyperPod avecAmazonSageMakerClusterInstanceRolePolicyautorise uniquement l’accès aux compartiments Amazon S3 qui commencent par le préfixe spécifique.Si vous partez de zéro, utilisez des exemples de scripts de cycle de vie fournis dans le GitHub référentiel Awsome Distributed Training
. Les sous-étapes suivantes montrent comment télécharger, ce qu’il faut modifier et comment charger les exemples de scripts de cycle de vie dans un compartiment Amazon S3. -
Téléchargez une copie des exemples de scripts de cycle de vie dans un répertoire de votre ordinateur local.
git clone https://github.com/aws-samples/awsome-distributed-training/ -
Accédez au répertoire
1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config, où vous trouverez un ensemble de scripts de cycle de vie. cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-configPour en savoir plus sur les exemples de scripts de cycle de vie, consultez Personnalisation des SageMaker HyperPod clusters à l'aide de scripts de cycle de vie.
-
Écrivez un fichier de configuration Slurm et enregistrez-le sous
provisioning_parameters.json. Dans le fichier, spécifiez les paramètres de configuration de base de Slurm pour attribuer correctement les nœuds Slurm aux groupes d'instances du SageMaker HyperPod cluster. Dans ce didacticiel, configurez trois nœuds Slurm nommésmy-controller-group,my-login-groupetworker-group-1, comme indiqué dans l’exemple de configuration suivantprovisioning_parameters.json.{ "version": "1.0.0", "workload_manager": "slurm", "controller_group": "my-controller-group", "login_group": "my-login-group", "worker_groups": [ { "instance_group_name": "worker-group-1", "partition_name": "partition-1" } ] } -
Chargez les scripts dans
s3://sagemaker-. Vous pouvez le faire en utilisant la console Amazon S3 ou en exécutant la commande de l’AWS CLI Amazon S3 suivante.<unique-s3-bucket-name>/<lifecycle-script-directory>/srcaws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
-
-
Préparez un fichier de CreateClusterdemande au format JSON et enregistrez-le sous
create_cluster.json. Le modèle de demande suivant s’aligne sur la configuration des nœuds Slurm définie dansprovisioning_parameters.jsonà l’étape 1.c. PourExecutionRole, fournissez l’ARN du rôle IAM que vous avez créé avec la politiqueAmazonSageMakerClusterInstanceRolePolicygérée dans Conditions préalables pour l’utilisation du SageMaker HyperPod..{// Required: Specify the name of the cluster."ClusterName": "my-hyperpod-cluster",// Required: Configure instance groups to be launched in the cluster"InstanceGroups": [ {// Required: Specify the basic configurations to set up a controller node."InstanceGroupName": "my-controller-group", "InstanceType": "ml.c5.xlarge", "InstanceCount":1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}",// Optional: Configure an additional storage per instance group."InstanceStorageConfigs": [ {// Attach an additional EBS volume to each instance within the instance group.// The default mount path for the additional EBS volume is /opt/sagemaker."EbsVolumeConfig":{// Specify an integer between 1 and 16384 in gigabytes (GB)."VolumeSizeInGB":<integer>} } ] }, { "InstanceGroupName": "my-login-group", "InstanceType": "ml.m5.4xlarge", "InstanceCount":1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}" }, { "InstanceGroupName": "worker-group-1", "InstanceType": "ml.trn1.32xlarge", "InstanceCount":1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}" } ] } -
Exécutez la commande suivante pour créer le cluster.
aws sagemaker create-cluster --cli-input-jsonfile://complete/path/to/create_cluster.jsonElle devrait renvoyer l’ARN du cluster créé.
Si vous recevez un message d’erreur dû à des limites de ressources, assurez-vous de remplacer le type d’instance par un type avec des quotas suffisants sur votre compte, ou demandez des quotas supplémentaires en suivant la section SageMaker HyperPod quotas.
-
Exécutez
describe-clusterpour vérifier le statut du cluster.aws sagemaker describe-cluster --cluster-namemy-hyperpod-clusterUne fois que le statut du cluster passe à
InService, passez à l’étape suivante. -
Exécutez
list-cluster-nodespour vérifier les détails des nœuds du cluster.aws sagemaker list-cluster-nodes --cluster-namemy-hyperpod-clusterCela renvoie une réponse et
InstanceIdcorrespond à ce dont les utilisateurs de votre cluster ont besoin pour s’y connecter (aws ssm). Pour plus d’informations sur la connexion aux nœuds du cluster et l’exécution de charges de travail ML, consultez Offres d'emploi sur SageMaker HyperPod des clusters.
Suppression du cluster et nettoyage des ressources
Une fois que vous avez testé avec succès la création d'un SageMaker HyperPod cluster, celui-ci continue de fonctionner tel quel InService jusqu'à ce que vous le supprimiez. Nous vous recommandons de supprimer tous les clusters créés à l'aide de capacités d' SageMaker IA à la demande lorsqu'ils ne sont pas utilisés afin d'éviter de devoir payer des frais de service continus basés sur la tarification à la demande. Dans ce didacticiel, vous avez créé un cluster composé de deux groupes d’instances. L’un d’eux utilise une instance C5. Veillez donc à supprimer le cluster en exécutant la commande suivante.
aws sagemaker delete-cluster --cluster-namemy-hyperpod-cluster
Pour nettoyer les scripts de cycle de vie du compartiment Amazon S3 utilisé pour ce didacticiel, accédez au compartiment Amazon S3 que vous avez utilisé lors de la création du cluster et supprimez complètement les fichiers.
Si vous avez testé l'exécution de charges de travail de formation de modèles sur le cluster, vérifiez également si vous avez téléchargé des données ou si votre tâche a enregistré des artefacts dans différents buckets Amazon S3 ou services de système de fichiers tels qu'Amazon FSx for Lustre et Amazon Elastic File System. Pour éviter d’encourir des frais, supprimez tous les artefacts et toutes les données du stockage ou du système de fichiers.