Démarrage d'une tâche de formation à l'aide de la HyperPod CLI - Amazon SageMaker AI

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.

Démarrage d'une tâche de formation à l'aide de la HyperPod CLI

HyperPod La CLI est un outil d'interface de ligne de commande permettant de gérer les clusters Amazon SageMaker HyperPod. Vous pouvez utiliser la HyperPod CLI pour créer, configurer et surveiller des HyperPod clusters pour les charges de travail d'apprentissage automatique. Pour plus d'informations, consultez le sagemaker-hyperpod-cli GitHub référentiel.

Prérequis

  • Installez l'interface de ligne de commande HyperPod . Pour personnaliser Amazon Nova sur Amazon SageMaker HyperPod, vous devez consulter la release_v2 branche pour utiliser la SageMaker HyperPod CLI.

  • Vérifiez que le compartiment de sortie Nova existe avant de soumettre des tâches. Pour vérifier, exécutezaws s3 ls s3://nova-111122223333/.

  • Comprendre les exigences de synchronisation FSx des données d'Amazon. Amazon FSx a besoin de temps pour synchroniser les données d'entraînement d'Amazon S3 avant que les tâches puissent être exécutées. L'envoi de tâches avant la fin de la synchronisation entraîne des erreurs « Aucun fichier ou répertoire de ce type ». Attendez la fin de la synchronisation après la création du cluster.

Configuration de la HyperPod CLI pour la personnalisation d'Amazon Nova

Pour configurer la HyperPod CLI pour la personnalisation d'Amazon Nova, suivez les étapes indiquées.
  1. Clonez le sagemaker-hyperpod-cli GitHub dépôt avec une brancherelease_v2.

    git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git --branch release_v2
  2. Accédez au dossier sagemaker-hyperpod-cli.

    cd sagemaker-hyperpod-cli
  3. Vérifiez que vous avez tous les prérequis dans Prérequis.

  4. Pour configurer Helm, procédez comme suit.

    1. Pour télécharger le script d'installation de Helm, exécutez :

      curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
    2. Pour rendre le script exécutable, exécutez :

      chmod 700 get_helm.sh

      Cette commande modifie les autorisations pour rendre le script exécutable.

    3. Pour exécuter le script d'installation de Helm, exécutez :

      ./get_helm.sh
    4. Pour supprimer le script d'installation, exécutez :

      rm -f ./get_helm.sh
  5. Pour installer des HyperPod dépendances prenant en charge les groupes d'instances restreints (RIG), procédez comme suit.

    Note

    Avant d'installer les dépendances, vous devez disposer d'un cluster HyperPod EKS avec RIG. Si vous n'en avez pas déjà un, suivez ces instructions pour en créer un.

    1. Pour vous connecter à votre cluster HyperPod EKS, exécutez :

      aws eks update-kubeconfig --name <eks_cluster_name> --region us-east-1
    2. Pour vérifier la connexion à votre cluster HyperPod EKS, exécutez :

      kubectl config current-context
    3. Pour obtenir des mises à jour pour HyperPod les dépendances standard, exécutez :

      helm dependencies update helm_chart/HyperPodHelmChart
    4. Pour installer HyperPod les dépendances standard, exécutez :

      helm install dependencies helm_chart/HyperPodHelmChart --namespace kube-system
    5. Pour accéder au répertoire du graphique Helm, exécutez :

      cd helm_chart
    6. Pour installer des HyperPod dépendances spécifiques à RIG, exécutez la commande suivante.

      Note

      Avant d'installer les dépendances, tenez compte des points suivants :

      • Vous ne devez exécuter cette commande qu'une seule fois par cluster après sa création.

      • Vous devez vous assurer que l'utilitaire yq possède une version 4 au moins (par exemple v4). Une vérification intégrée permet de confirmer que yq >=4 est disponible dans le script d'installation.

      • Vous devrez confirmer l'installation en entrant y lorsque vous y serez invité. Avant de confirmer, consultez éventuellement l'installation prévue à l'adresse./rig-dependencies.yaml.

      chmod 700 ./install_rig_dependencies.sh && ./install_rig_dependencies.sh
    7. Pour revenir à la racine du codesagemaker-hyperpod-cli dépôt, exécutez :

      cd ..
  6. Pour procéder à l'installation de la HyperPod CLI danssagemaker-hyperpod-cli, suivez les étapes indiquées.

    1. Installez la CLI à l'aide de pip :

      pip install -e .
    2. Vérifier l'installation :

      hyperpod --help

Envoi d’une tâche

Vous pouvez utiliser la HyperPod CLI pour soumettre un travail de formation.

Pour soumettre une tâche à l'aide d'une recette, exécutez la commande suivante.

hyperpod start-job [--namespace <namespace>] --recipe {{fine-tuning | evaluation | training}}/nova/<Your_Recipe_Name> --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": <Docker Image>, "recipes.run.name": <custom-run-name>, "recipes.run.output_s3_path": "<customer-s3-path>" }'
  • --recipe: le type de tâche que vous exécutez à l'aide de la recette. Les valeurs valides sont les suivantes : fine-tuning | evaluation |training.

    Type de tâche Valeur
    SFT/PEFT/PPO/DPO tâches fine-tuning
    Emplois d'évaluation evaluation
    Emplois CPT training
  • Nom de la recette : Vous pouvez trouver le nom dans le référentiel sous le répertoire :/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipe_collection/recipes/.

  • Exemple de recette :--recipe evaluation/nova/nova_lite_g5_12xl_bring_your_own_dataset_eval.

  • Conteneur : Ce champ est obligatoire. Pour trouver les images correspondant aux types de tâches, consultez le tableau suivant.

    Technique Conteneur
    DPO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-DPO-Latest nova-fine-tune-repo
    Emplois d'évaluation 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-Eval-Latest nova-evaluation-repo
    CPT 708977205387.dkr. ecr.us-east-1.amazonaws.com /:hp-cpt-latest nova-fine-tune-repo
    PPO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:smhp-ppo-train-latest nova-fine-tune-repo
    SFT/GAUCHE 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-Latest nova-fine-tune-repo
  • Nom d'exécution personnalisé : il existe des contraintes de définition sur l'custom-run-timeentrée, par exemple, en majuscules, sans espaces, sans traits de soulignement. Pour plus d'informations, consultez les sections Noms des objets et IDs.

[Facultatif] Si vous avez déjà un poste de formation et que vous souhaitez cibler un nœud spécifique pour votre prochain travail, suivez les étapes indiquées.

  1. Pour obtenir tous les nœuds gratuits, exécutez la commande suivante.

    kubectl get nodes —no-headers | awk '$2 != "NotReady" && $3 != "SchedulingDisabled" {print $1}'
  2. Ajoutez ce qui suit au src\hyperpod_cli\sagemaker_hyperpod_recipes\recipes_collection\cluster\k8s.yaml fichier pour le sélecteur d'étiquettes.

    label_selector: required: kubernetes.io/hostname: - <node_name>
  3. Dans le répertoire racine, exécutez la commande suivante. Cela garantit SageMaker HyperPod qu'il est installé sur le système de l'utilisateur, ce qui lui permet d'utiliser le mot clé « hyperpod » pour la soumission de tâches et d'autres fonctions. Vous devez exécuter cette commande depuis le dossier racine où se trouve le code de la HyperPod CLI.

    pip install .

Affichage des tâches

Pour répertorier les tâches, exécutez la commande suivante.

hyperpod list-jobs [--namespace <namespace>] [--all-namespaces]

La commande répertorie toutes les tâches dans l'espace de noms spécifié ou dans tous les espaces de noms.

Obtenez les détails du poste

Pour obtenir les détails d'une tâche, exécutez la commande suivante.

hyperpod get-job --job-name <job-name> [--namespace <namespace>] [--verbose]

La commande récupère des informations détaillées sur une tâche spécifique.

Liste des pods

Pour répertorier les pods, exécutez la commande suivante.

hyperpod list-pods --job-name <job-name> [--namespace <namespace>]

La commande répertorie tous les pods associés à une tâche spécifique dans l'espace de noms spécifié.

Annuler des offres d'emploi

Pour annuler une tâche, exécutez la commande suivante.

hyperpod cancel-job --job-name <job-name> [--namespace <namespace>]

Cette commande annule et supprime une tâche d'entraînement en cours dans l'espace de noms spécifié.