Commencer à SageMaker HyperPod utiliser le AWS CLI - Amazon SageMaker AI

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

  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>/src
    Note

    Le chemin du compartiment S3 doit commencer par un préfixe sagemaker-, car le Rôle IAM pour SageMaker HyperPod avec AmazonSageMakerClusterInstanceRolePolicy autorise 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.

    1. 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/
    2. 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-config

      Pour 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.

    3. É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és my-controller-group, my-login-group et worker-group-1, comme indiqué dans l’exemple de configuration suivant provisioning_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" } ] }
    4. Chargez les scripts dans s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src. Vous pouvez le faire en utilisant la console Amazon S3 ou en exécutant la commande de l’AWS CLI Amazon S3 suivante.

      aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
  2. Préparez un fichier de CreateClusterdemande au format JSON et enregistrez-le souscreate_cluster.json. Le modèle de demande suivant s’aligne sur la configuration des nœuds Slurm définie dans provisioning_parameters.json à l’étape 1.c. Pour ExecutionRole, fournissez l’ARN du rôle IAM que vous avez créé avec la politique AmazonSageMakerClusterInstanceRolePolicy gé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}" } ] }
  3. Exécutez la commande suivante pour créer le cluster.

    aws sagemaker create-cluster --cli-input-json file://complete/path/to/create_cluster.json

    Elle 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.

  4. Exécutez describe-cluster pour vérifier le statut du cluster.

    aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster

    Une fois que le statut du cluster passe à InService, passez à l’étape suivante.

  5. Exécutez list-cluster-nodes pour vérifier les détails des nœuds du cluster.

    aws sagemaker list-cluster-nodes --cluster-name my-hyperpod-cluster

    Cela renvoie une réponse et InstanceId correspond à 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-name my-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.