Personnalisation des clusters SageMaker HyperPod à l’aide de scripts de cycle de vie - Amazon SageMaker AI

Personnalisation des clusters SageMaker HyperPod à l’aide de scripts de cycle de vie

SageMaker HyperPod propose des clusters de calcul toujours opérationnels, hautement personnalisables, car vous pouvez écrire des scripts de cycle de vie pour indiquer à SageMaker HyperPod comment configurer les ressources de cluster. Les rubriques suivantes présentent les bonnes pratiques pour préparer des scripts de cycle de vie afin de configurer des clusters SageMaker HyperPod avec des outils de gestion de charge de travail open source.

Les rubriques suivantes présentent en détail les bonnes pratiques relatives à la préparation de scripts de cycle de vie pour configurer les configurations Slurm sur SageMaker HyperPod.

Présentation générale

La procédure suivante est le flux principal du provisionnement d’un cluster HyperPod et de sa configuration avec Slurm. Les étapes sont classées selon une approche ascendante.

  1. Planifiez la manière dont vous souhaitez créer les nœuds Slurm sur un cluster HyperPod. Par exemple, si vous souhaitez configurer deux nœuds Slurm, vous devez configurer deux groupes d’instances dans un cluster HyperPod.

  2. Préparez un fichier provisioning_parameters.json, qui est un Formulaire de configuration pour le provisionnement des nœuds Slurm sur HyperPod. provisioning_parameters.json doit contenir les informations de configuration du nœud Slurm à provisionner sur le cluster HyperPod. Cela doit refléter la conception des nœuds Slurm à partir de l’étape 1.

  3. Préparez un ensemble de scripts de cycle de vie pour configurer Slurm sur HyperPod afin d’installer des packages logiciels et de configurer un environnement dans le cluster adapté à votre cas d’utilisation. Vous devez structurer les scripts de cycle de vie de manière à ce qu’ils s’exécutent collectivement dans un script Python central (lifecycle_script.py), et écrire un script shell de point d’entrée (on_create.sh) pour exécuter le script Python. Le script shell de point d’entrée est ce que vous devrez fournir à une demande de création de cluster HyperPod, plus tard à l’étape 5.

    Notez également que vous devez écrire les scripts pour attendre resource_config.json qui sera généré par HyperPod lors de la création du cluster. resource_config.json contient les informations sur les ressources du cluster HyperPod, telles que les adresses IP, les types d’instances et les ARN, et correspond à ce dont vous avez besoin pour configurer Slurm.

  4. Rassemblez tous les fichiers des étapes précédentes dans un dossier.

    └── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
  5. Chargez tous les fichiers dans un compartiment S3. Copiez et conservez le chemin de ce compartiment S3. Notez que vous devez créer un chemin de compartiment S3 commençant par sagemaker-, car vous devez choisir un Rôle IAM pour SageMaker HyperPod attaché avec AmazonSageMakerClusterInstanceRolePolicy, qui autorise uniquement les chemins de compartiment S3 commençant par le préfixe sagemaker-. La commande suivante est un exemple de commande pour charger tous les fichiers dans un compartiment S3.

    aws s3 cp --recursive ./lifecycle_files s3://sagemaker-hyperpod-lifecycle/src
  6. Préparez une demande de création de cluster HyperPod.

    • Option 1 : si vous utilisez l’AWS CLI, écrivez une demande de création de cluster au format JSON (create_cluster.json) en suivant les instructions sur Création d’un nouveau cluster.

    • Option 2 : si vous utilisez l’interface utilisateur de la console SageMaker AI, remplissez le formulaire de demande Créer un cluster dans l’interface utilisateur de la console HyperPod en suivant les instructions figurant dans Création d’un cluster SageMaker HyperPod.

    À ce stade, assurez-vous de créer des groupes d’instances dans la même structure que celle que vous avez planifiée aux étapes 1 et 2. Assurez-vous également de spécifier le compartiment S3 à l’étape 5 dans les formulaires de demande.

  7. Soumettez la demande de création de cluster. HyperPod provisionne un cluster en fonction de la demande, puis crée un fichier resource_config.json dans les instances de cluster HyperPod et configure Slurm sur le cluster exécutant les scripts de cycle de vie.

Les rubriques suivantes vous guident et vous expliquent en détail comment organiser les fichiers de configuration et les scripts de cycle de vie afin qu’ils fonctionnent correctement lors de la création d’un cluster HyperPod.