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 la AWS CLI
Les rubriques suivantes fournissent des conseils sur l'écriture de fichiers de requêtes d' SageMaker HyperPod API au format JSON et leur exécution à l'aide des AWS CLI commandes.
Rubriques
- Création d'un nouveau cluster
- Décrire un cluster
- Afficher les détails des nœuds du cluster
- Décrire les détails d'un nœud de cluster
- Lister les clusters
- Mettre à jour la configuration du cluster
- Mettre à jour le logiciel de SageMaker HyperPod plate-forme d'un cluster
- Diminuer la taille d'un cluster
- Supprimer un cluster
Création d'un nouveau cluster
-
Préparez des scripts de configuration du cycle de vie et chargez-les dans un compartiment S3, tel que
s3://
. L'étape 2 suivante suppose qu'un script de point d'entrée est nomméamzn-s3-demo-bucket
-sagemaker/lifecycle-script-directory/src/
on_create.sh
dans le compartiment S3 spécifié.Important
Assurez-vous de définir le chemin S3 pour commencer
s3://sagemaker-
. Le Rôle IAM pour SageMaker HyperPod gestionnaire estAmazonSageMakerClusterInstanceRolePolicy
attaché, ce qui permet d'accéder aux compartiments S3 avec le préfixesagemaker-
spécifique. -
Préparez un fichier de demande d'CreateClusterAPI au format JSON. Vous devez configurer les groupes d'instances pour qu'ils correspondent au cluster Slurm que vous concevez dans le
provisioning_params.json
fichier qui sera utilisé lors de la création du cluster dans le cadre de l'exécution d'un ensemble de scripts de cycle de vie. Pour en savoir plus, consultez Personnalisez les SageMaker HyperPod clusters à l'aide de scripts de cycle. Le modèle suivant comporte deux groupes d'instances répondant aux exigences minimales d'un cluster Slurm : un nœud de contrôleur (tête) et un nœud de calcul (de travail). PourExecutionRole
, 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.// create_cluster.json
{ "ClusterName": "your-hyperpod-cluster
", "InstanceGroups": [ { "InstanceGroupName": "controller-group
", "InstanceType": "ml.m5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket
-sagemaker/lifecycle-script-directory/src/
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "arn:aws:iam::111122223333
:role/iam-role-for-cluster
",// 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": "worker-group-1
", "InstanceType": "ml.p4d.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket
-sagemaker/lifecycle-script-directory/src/
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "arn:aws:iam::111122223333
:role/iam-role-for-cluster
" } ], // Optional "Tags": [ { "Key": "string
", "Value": "string
" } ], // Optional "VpcConfig": { "SecurityGroupIds": [ "string
" ], "Subnets": [ "string
" ] } }Selon la façon dont vous concevez la structure du cluster par le biais de vos scripts de cycle de vie, vous pouvez configurer jusqu'à 20 groupes d'instances selon le
InstanceGroups
paramètre.Pour le paramètre de
Tags
requête, 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 paramètre de
VpcConfig
demande, spécifiez les informations du VPC que vous souhaitez utiliser. Pour de plus amples informations, veuillez consulter Configuration SageMaker HyperPod avec votre Amazon VPC. -
Exécutez la commande create-cluster comme suit.
aws sagemaker create-cluster \ --cli-input-json
file://complete/path/to/create_cluster.json
Cela devrait renvoyer l'ARN du nouveau cluster.
Décrire un cluster
Exécutez describe-cluster pour vérifier l'état du cluster. Vous pouvez spécifier le nom ou l'ARN du cluster.
aws sagemaker describe-cluster --cluster-name
your-hyperpod-cluster
Une fois que le statut du cluster est passé à InService
zéro, passez à l'étape suivante. À l'aide de cette API, vous pouvez également récupérer les messages d'échec liés à l'exécution d'autres opérations d' HyperPod API.
Afficher les détails des nœuds du cluster
Exécutez list-cluster-nodespour vérifier les informations clés des nœuds du cluster.
aws sagemaker list-cluster-nodes --cluster-name
your-hyperpod-cluster
Cela renvoie une réponse, et InstanceId
c'est ce que vous devez utiliser pour vous y connecter (utiliseraws ssm
).
Décrire les détails d'un nœud de cluster
Exécutez describe-cluster-nodepour récupérer les détails d'un nœud de cluster. Vous pouvez obtenir l'ID du nœud du cluster à partir de la list-cluster-nodes sortie. Vous pouvez spécifier le nom ou l'ARN du cluster.
aws sagemaker describe-cluster-node \ --cluster-name
your-hyperpod-cluster
\ --node-idi-111222333444555aa
Lister les clusters
Exécutez list-clusters pour répertorier tous les clusters de votre compte.
aws sagemaker list-clusters
Vous pouvez également ajouter des indicateurs supplémentaires pour filtrer la liste des clusters vers le bas. Pour en savoir plus sur le fonctionnement de cette commande à bas niveau et sur les indicateurs supplémentaires pour le filtrage, consultez la référence de l'ListClustersAPI.
Mettre à jour la configuration du cluster
Exécutez update-cluster pour mettre à jour la configuration d'un cluster.
-
Créez un fichier de
UpdateCluster
requête au format JSON. Assurez-vous de spécifier le nom de cluster et le nom de groupe d'instances appropriés à mettre à jour. Vous pouvez modifier le type d'instance, le nombre d'instances, le script d'entrée de configuration du cycle de vie et le chemin d'accès au script.-
Pour
ClusterName
, spécifiez le nom du cluster que vous souhaitez mettre à jour. -
Pour
InstanceGroupName
-
Pour mettre à jour un groupe d'instances existant, spécifiez le nom du groupe d'instances que vous souhaitez mettre à jour.
-
Pour ajouter un nouveau groupe d'instances, spécifiez un nouveau nom qui n'existe pas dans votre cluster.
-
-
Pour
InstanceType
-
Pour mettre à jour un groupe d'instances existant, vous devez associer le type d'instance que vous avez initialement spécifié au groupe.
-
Pour ajouter un nouveau groupe d'instances, spécifiez le type d'instance avec lequel vous souhaitez configurer le groupe.
-
-
Pour
InstanceCount
-
Pour mettre à jour un groupe d'instances existant, spécifiez un entier correspondant au nombre d'instances souhaité. Vous pouvez fournir une valeur supérieure ou inférieure (jusqu'à 0) pour augmenter ou diminuer le groupe d'instances.
-
Pour ajouter un nouveau groupe d'instances, spécifiez un entier supérieur ou égal à 1.
-
-
En effet
LifeCycleConfig
, vous pouvez modifier à la fois lesOnCreat
valeursSourceS3Uri
et les valeurs comme vous le souhaitez pour mettre à jour le groupe d'instances. -
Pour
ExecutionRole
-
Pour mettre à jour un groupe d'instances existant, continuez à utiliser le même rôle IAM que celui que vous avez attaché lors de la création du cluster.
-
Pour ajouter un nouveau groupe d'instances, spécifiez le rôle IAM que vous souhaitez associer.
-
-
Pour
TreadsPerCore
-
Pour mettre à jour un groupe d'instances existant, continuez à utiliser la même valeur que celle que vous avez spécifiée lors de la création du cluster.
-
Pour ajouter un nouveau groupe d'instances, vous pouvez choisir n'importe quelle valeur parmi les options autorisées par type d'instance. Pour plus d'informations, recherchez le type d'instance et consultez la colonne Nombre de processus valides par cœur dans le tableau de référence relatif aux cœurs de processeur et aux threads par cœur de processeur par type d'instance dans le guide de l' EC2 utilisateur Amazon.
-
L'extrait de code suivant est un modèle de fichier de requête JSON que vous pouvez utiliser. Pour plus d'informations sur la syntaxe des demandes et les paramètres de cette API, consultez la référence de l'UpdateClusterAPI.
// update_cluster.json { // Required "ClusterName": "
name-of-cluster-to-update
", // Required "InstanceGroups": [ { "InstanceGroupName": "name-of-instance-group-to-update
", "InstanceType": "ml.m5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket
-sagemaker/lifecycle-script-directory/src/
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "arn:aws:iam::111122223333
:role/iam-role-for-cluster
",// 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
, } } ] }, // add more blocks of instance groups as needed { ... } ] } -
-
Exécutez la
update-cluster
commande suivante pour envoyer la demande.aws sagemaker update-cluster \ --cli-input-json
file://complete/path/to/update_cluster.json
Mettre à jour le logiciel de SageMaker HyperPod plate-forme d'un cluster
Exécutez update-cluster-softwarepour mettre à jour les clusters existants avec les logiciels et les correctifs de sécurité fournis par le SageMaker HyperPod service. Pour--cluster-name
, spécifiez le nom ou l'ARN du cluster à mettre à jour.
Important
Notez que vous devez sauvegarder votre travail avant d'exécuter cette API. Le processus d'application des correctifs remplace le volume racine par l'AMI mise à jour, ce qui signifie que les données précédemment stockées dans le volume racine de l'instance seront perdues. Assurez-vous de sauvegarder vos données depuis le volume racine de l'instance vers Amazon S3 ou Amazon FSx for Lustre. Pour de plus amples informations, veuillez consulter Utilisez le script de sauvegarde fourni par SageMaker HyperPod.
aws sagemaker update-cluster-software --cluster-name
your-hyperpod-cluster
Cette commande appelle l'UpdateClusterSoftwareAPI. Après l'appel d'API, SageMaker HyperPod met à jour les instances de cluster pour utiliser les dernières versions SageMaker HyperPod DLAMI et exécute vos scripts de cycle de vie dans le compartiment S3 que vous avez spécifié lors de la création ou de la mise à jour du cluster. L'équipe SageMaker HyperPod de service déploie régulièrement de nouvelles SageMaker HyperPod DLAMI solutions pour renforcer la sécurité et améliorer l'expérience utilisateur. Nous vous recommandons de toujours mettre à jour le DLAMI le plus récent SageMaker HyperPod . Pour les futures SageMaker HyperPod mises à jour du DLAMI relatives aux correctifs de sécurité, contactez. Notes de SageMaker HyperPod publication d'Amazon
Astuce
Si le correctif de sécurité échoue, vous pouvez récupérer les messages d'échec en exécutant l'DescribeCluster
API comme indiqué surDécrire un cluster.
Note
Vous ne pouvez exécuter cette API que par programmation. La fonctionnalité d'application de correctifs n'est pas implémentée dans l'interface utilisateur de la SageMaker HyperPod console.
Utilisez le script de sauvegarde fourni par SageMaker HyperPod
SageMaker HyperPod fournit un script pour sauvegarder et restaurer vos données 1.architectures/5.sagemaker-hyperpod/patching-backup.sh
Pour sauvegarder les données dans un compartiment S3 avant d'appliquer des correctifs
sudo bash patching-backup.sh --create
<s3-buckup-bucket-path>
Après avoir exécuté la commande, le script vérifie squeue
s'il existe des tâches en file d'attente, arrête Slurm s'il n'y a aucune tâche dans la file d'attentemariadb
, sauvegarde et copie les éléments locaux sur le disque défini ci-dessous. LOCAL_ITEMS
Vous pouvez ajouter d'autres fichiers et répertoires àLOCAL_ITEMS
.
# Define files and directories to back up. LOCAL_ITEMS=( "/var/spool/slurmd" "/var/spool/slurmctld" "/etc/systemd/system/slurmctld.service" "/home/ubuntu/backup_slurm_acct_db.sql" # ... Add more items as needed )
Vous pouvez également ajouter du code personnalisé au script fourni pour sauvegarder toutes les applications adaptées à votre cas d'utilisation.
Pour restaurer les données d'un compartiment S3 après l'application d'un correctif
sudo bash patching-backup.sh --restore
<s3-buckup-bucket-path>
Diminuer la taille d'un cluster
Vous pouvez réduire le nombre d'instances de votre SageMaker HyperPod cluster pour optimiser l'allocation des ressources, réduire les coûts ou modifier les types d'instances utilisés par votre cluster selon vos besoins.
Vous pouvez réduire la taille en utilisant l'opération d'UpdateCluster
API pour mettre fin de manière aléatoire à des instances de votre groupe d'instances jusqu'à un nombre spécifié, ou en mettant fin à des instances spécifiques à l'aide de l'opération d'BatchDeleteClusterNodes
API. Pour plus d'informations sur la manière de réduire la taille à l'aide de ces méthodes, consultezDiminuer la taille d'un SageMaker HyperPod cluster.
Note
Vous ne pouvez pas supprimer des instances configurées en tant que nœuds de contrôleur Slurm. Toute tentative de suppression d'un nœud de contrôleur Slurm entraîne une erreur de validation avec le code d'erreur. NODE_ID_IN_USE
Supprimer un cluster
Exécutez delete-cluster pour supprimer un cluster. Vous pouvez spécifier le nom ou l'ARN du cluster.
aws sagemaker delete-cluster --cluster-name
your-hyperpod-cluster