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.
Diminution d'un SageMaker HyperPod cluster
Vous pouvez réduire le nombre d'instances exécutées sur votre SageMaker HyperPod cluster Amazon. Vous souhaiterez peut-être réduire verticalement un cluster pour diverses raisons, telles qu’une réduction de l’utilisation des ressources ou l’optimisation des coûts.
La page suivante décrit deux approches principales en matière de réduction verticale :
-
Réduction verticale au niveau du groupe d’instances : cette approche utilise l’API
UpdateCluster, avec laquelle vous pouvez :-
Réduire verticalement le nombre d’instances indépendamment pour des groupes d’instances spécifiques. SageMaker L'IA gère la terminaison des nœuds de manière à atteindre le nouveau nombre d'instances cibles que vous avez défini pour chaque groupe. Consultez Réduction verticale d’un groupe d’instances.
-
Supprimer complètement les groupes d’instances de votre cluster. Consultez Suppression de groupes d’instances.
-
-
Réduction verticale au niveau des instances : cette approche utilise l’API
BatchDeleteClusterNodes, avec laquelle vous pouvez spécifier les nœuds individuels que vous souhaitez résilier. Consultez Réduction verticale au niveau des instances.
Note
Lorsque vous utilisez la réduction verticale au niveau des instances avec BatchDeleteCusterNodes, vous pouvez résilier un maximum de 99 instances à la fois. UpdateCluster prend en charge la résiliation d’un nombre quelconque d’instances.
Considérations importantes
-
Lorsque vous réduisez verticalement un cluster, vous devez vous assurer que les ressources restantes sont suffisantes pour gérer votre charge de travail et que toute migration ou rééquilibrage nécessaire des données est correctement géré(e) afin d’éviter les interruptions.
-
Assurez-vous de sauvegarder vos données sur Amazon S3 ou sur un système de fichiers FSx pour Lustre avant d'appeler l'API sur un groupe de nœuds de travail. Cela permet d’éviter toute perte de données potentielle à partir du volume racine de l’instance. Pour plus d’informations sur la sauvegarde, consultez Utilisez le script de sauvegarde fourni par SageMaker HyperPod.
-
Pour appeler cette API sur un cluster existant, vous devez d'abord appliquer un correctif au cluster en exécutant l' UpdateClusterSoftwareAPI. Pour plus d’informations sur l’application de correctifs à un cluster, consultez Mettre à jour le logiciel de SageMaker HyperPod plate-forme d'un cluster.
-
Les mesures et la facturation pour les instances à la demande seront automatiquement arrêtées après une réduction verticale. Pour arrêter de mesurer les instances réservées dont la taille est réduite, vous devez contacter l'équipe chargée de votre AWS compte pour obtenir de l'aide.
-
Vous pouvez utiliser la capacité libérée par les instances réservées réduites pour augmenter le volume d'un autre SageMaker HyperPod cluster.
Réduction verticale au niveau du groupe d’instances
L'UpdateClusteropération vous permet d'apporter des modifications à la configuration de votre SageMaker HyperPod cluster, par exemple en réduisant le nombre d'instances d'un groupe d'instances ou en supprimant des groupes d'instances entiers. Cela peut être utile lorsque vous souhaitez ajuster les ressources allouées à votre cluster en fonction de l’évolution de votre charge de travail, optimiser les coûts ou modifier le type d’instance d’un groupe d’instances.
Réduction verticale d’un groupe d’instances
Utilisez cette approche lorsqu’un groupe d’instances est inactif et qu’il est possible de résilier l’une quelconque des instances en toute sécurité pour effectuer une réduction verticale. Lorsque vous soumettez une UpdateCluster demande de réduction, choisit de HyperPod manière aléatoire les instances à résilier et réduit la taille jusqu'au nombre de nœuds spécifié pour le groupe d'instances.
Note
Lorsque vous réduisez verticalement le nombre d’instances d’un groupe d’instances à 0, toutes les instances de ce groupe sont résiliées. Cependant, le groupe d'instances lui-même existera toujours dans le SageMaker HyperPod cluster. Vous pourrez augmenter verticalement le groupe d’instances ultérieurement, en utilisant la même configuration de groupe d’instances.
Vous pouvez également choisir de supprimer définitivement un groupe d’instances. Pour de plus amples informations, veuillez consulter Suppression de groupes d’instances.
Pour effectuer une réduction verticale avec UpdateCluster
-
Suivez les étapes décrites dans Mettre à jour la configuration SageMaker HyperPod du cluster. Lorsque vous atteignez l'étape 1.d où vous spécifiez le InstanceCountchamp, entrez un nombre inférieur au nombre actuel d'instances pour réduire le cluster.
-
Exécutez la AWS CLI commande update-cluster pour soumettre votre demande.
Vous trouverez ci-dessous un exemple d’objet JSON UpdateCluster. Imaginons le cas où votre groupe d’instances possède actuellement 2 instances en cours d’exécution. Si vous définissez le InstanceCountchamp sur 1, comme indiqué dans l'exemple, sélectionnez de HyperPod manière aléatoire l'une des instances et y mettez fin.
{ "ClusterName":"name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName":"training-instances", "InstanceType":"instance-type", "InstanceCount":1, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket/training-script.py", "OnCreate":"s3://amzn-s3-demo-bucket/setup-script.sh"}, "ExecutionRole":"arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore":number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] } ], "NodeRecovery":"Automatic"}
Suppression de groupes d’instances
Vous pouvez utiliser cette UpdateClusteropération pour supprimer des groupes d'instances entiers de votre SageMaker HyperPod cluster lorsqu'ils ne sont plus nécessaires. Cela va au-delà d’une simple réduction verticale et vous permet d’éliminer complètement des groupes d’instances spécifiques de la configuration de votre cluster.
Note
Lors de la suppression d’un groupe d’instances :
-
Toutes les instances du groupe ciblé sont résiliées.
-
L’intégralité de la configuration du groupe est supprimée du cluster.
-
Toutes les charges de travail exécutées sur ce groupe d’instances sont arrêtées.
Pour supprimer des groupes d’instances avec UpdateCluster
-
Lorsque vous suivez les étapes décrites dans Mettre à jour la configuration SageMaker HyperPod du cluster :
-
Définissez le paramètre
InstanceGroupsToDeletefacultatif dans votre code JSONUpdateClusteret transmettez la liste séparée par des virgules des noms de groupes d’instances que vous souhaitez supprimer. -
Lorsque vous spécifiez la liste
InstanceGroups, assurez-vous que les spécifications des groupes d’instances que vous supprimez ne figurent plus dans la listeInstanceGroups.
-
-
Exécutez la AWS CLI commande update-cluster pour soumettre votre demande.
Important
-
Votre SageMaker HyperPod cluster doit toujours gérer au moins un groupe d'instances.
-
Assurez-vous que toutes les données critiques sont sauvegardées avant leur suppression.
-
Le processus de suppression ne peut pas être annulé.
Vous trouverez ci-dessous un exemple d’objet JSON UpdateCluster. Prenons le cas où un cluster possède actuellement 3 groupes d’instances, un groupe d’entraînement, un groupe d’entraînement de prototype et un groupe d’inférence. Vous souhaitez supprimer le groupe d’entraînement de prototype.
{ "ClusterName":"name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName":"training", "InstanceType":"instance-type", "InstanceCount":, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket/training-script.py", "OnCreate":"s3://amzn-s3-demo-bucket/setup-script.sh"}, "ExecutionRole":"arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore":number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] }, { "InstanceGroupName":"inference-serving", "InstanceType":"instance-type", "InstanceCount":2, [...] }, ], "InstanceGroupsToDelete": ["prototype-training"], "NodeRecovery":"Automatic"}
Réduction verticale au niveau des instances
L'BatchDeleteClusterNodesopération vous permet de réduire la taille d'un SageMaker HyperPod cluster en spécifiant les nœuds individuels que vous souhaitez terminer. BatchDeleteClusterNodesfournit un contrôle plus granulaire pour la suppression ciblée des nœuds et l'optimisation des clusters. Par exemple, vous pouvez utiliser BatchDeleteClusterNodes pour supprimer des nœuds ciblés à des fins de maintenance, de mises à niveau continues ou de rééquilibrage géographique des ressources.
Demande et réponse d’API
Lorsque vous soumettez une BatchDeleteClusterNodes demande, SageMaker HyperPod supprime les nœuds en fonction de leur instance IDs. L'API accepte une demande avec le nom du cluster et une liste de nœuds IDs à supprimer.
La réponse contient deux sections :
-
Failed: liste des erreurs de typeBatchDeleteClusterNodesError: une par ID d’instance. -
Successful: La liste des instances IDs a été interrompue avec succès.
Validation et gestion des erreurs
L’API effectue diverses validations, telles que :
-
Vérification du format de l'ID de nœud (préfixe
i-et structure d'ID d' EC2 instance Amazon). -
Vérification de la longueur de la liste de nœuds, avec une limite de 99 nœuds IDs ou moins par
BatchDeleteClusterNodesdemande. -
Assurez-vous qu'un SageMaker HyperPod cluster valide portant le nom de cluster en entrée est présent et qu'aucune opération au niveau du cluster (mise à jour, mise à jour du système, application de correctifs ou suppression) n'est en cours.
-
Gestion des cas où les instances sont introuvables, ont un statut non valide ou sont en cours d’utilisation.
Codes de réponse d’API
-
L’API renvoie un code de statut
200en cas de réussite (p. ex., tous les nœuds d’entrée ont réussi la validation) ou des demandes partiellement réussies (p. ex., certains nœuds d’entrée échouent à la validation). -
Si toutes ces validations échouent (p. ex., tous les nœuds d’entrée échouent à la validation), l’API renverra une réponse
400Bad Request avec les messages d’erreur et les codes d’erreur appropriés.
Exemple
Voici un exemple de réduction verticale d’un cluster au niveau des instances à l’aide de l’AWS CLI :
aws sagemaker batch-delete-cluster-nodes --cluster-name"cluster-name"--node-ids'["i-111112222233333", "i-111112222233333"]'