Utilisation de AWS CLI commandes pour SageMaker HyperPod APIs - Amazon SageMaker

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.

Utilisation de AWS CLI commandes pour SageMaker HyperPod APIs

Créez votre premier SageMaker HyperPod cluster à l'aide du 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 par le biais du AWS CLI commandes 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. Télé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éfixesagemaker-, car le IAMrôle pour SageMaker HyperPod with autorise AmazonSageMakerClusterInstanceRolePolicy 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 script 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, consultezPréparez des scripts de cycle de vie pour configurer Slurm sur SageMaker HyperPod.

    3. Ecrivez un fichier de configuration Slurm et enregistrez-le sous. provisioning_params.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, et my-login-groupworker-group-1, comme indiqué dans l'exemple de configuration suivant. provisioning_params.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. Téléchargez les scripts surs3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src. Vous pouvez le faire en utilisant la console Amazon S3 ou en exécutant les commandes suivantes AWS CLI commande Amazon S3.

      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 JSON format et enregistrez-le souscreate_cluster.json. Le modèle de demande suivant s'aligne sur la configuration du nœud Slurm définie provisioning_params.json à l'étape 1.c. PourExecutionRole, indiquez le ARN IAM rôle que vous avez créé avec le rôle géré AmazonSageMakerClusterInstanceRolePolicy dansConditions 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

    Cela devrait renvoyer ARN le 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 comportant des quotas suffisants sur votre compte, ou demandez des quotas supplémentaires en suivant le lien surSageMaker HyperPod quotas.

  4. Exécutez describe-cluster pour vérifier l'état du cluster.

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

    Une fois que le statut du cluster est passé à InService zéro, 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 c'est 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, consultezExécuter des tâches sur SageMaker HyperPod des clusters.

Supprimer le cluster et nettoyer les 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 SageMaker capacités à 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. Assurez-vous donc de 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 données du système de stockage ou de fichiers.