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.
À l'aide AWS CLI des commandes de SageMaker HyperPod APIs
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 CLI
commandes pour. SageMaker HyperPod À la suite du didacticiel, vous allez créer un HyperPod cluster avec trois nœuds Slurm, my-controller-group
my-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. 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éfixe
sagemaker-
, car le IAMrôle pour SageMaker HyperPod with autoriseAmazonSageMakerClusterInstanceRolePolicy
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 script 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-config
Pour en savoir plus sur les exemples de scripts de cycle de vie, consultezPersonnalisez les SageMaker HyperPod clusters à l'aide de scripts de cycle.
-
Écrivez 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
, etmy-login-group
worker-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
" } ] } -
Téléchargez les scripts sur
s3://sagemaker-
. Vous pouvez le faire en utilisant la console Amazon S3 ou en exécutant la commande 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 JSON format et enregistrez-le sous
create_cluster.json
. Le modèle de demande suivant s'aligne sur la configuration du nœud Slurm définieprovisioning_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}
" } ] } -
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.
-
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. -
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, consultezOffres d'emploi 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.