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.
Le didacticiel suivant permet de configurer un environnement Trainium sur un cluster Slurm et de démarrer une tâche de formation sur un modèle de 8 milliards de paramètres Llama.
Prérequis
Avant de commencer à configurer votre environnement, assurez-vous que vous disposez des éléments suivants :
-
Configurez un cluster SageMaker HyperPod Trainium Slurm.
-
Un lieu de stockage partagé. Il peut s'agir d'un système de FSx fichiers Amazon ou d'un système NFS accessible depuis les nœuds du cluster.
-
Données dans l'un des formats suivants :
-
JSON
-
JSONGZ (JSON compressé)
-
FLÈCHE
-
-
(Facultatif) Vous devez obtenir un HuggingFace jeton si vous utilisez les poids du modèle à des HuggingFace fins de pré-entraînement ou de réglage. Pour plus d'informations sur l'obtention du jeton, consultez la section Jetons d'accès utilisateur
.
Configuration de l'environnement Trainium sur le Slurm Cluster
Pour lancer une tâche de formation sur un cluster Slurm, procédez comme suit :
-
Connectez-vous en SSH au nœud principal de votre cluster Slurm.
-
Une fois connecté, configurez l'environnement Neuron. Pour plus d'informations sur la configuration de Neuron, consultez la section Étapes de configuration de Neuron
. Nous vous recommandons de vous fier aux AMI d'apprentissage profond qui sont préinstallées avec les pilotes de Neuron, comme Ubuntu 20 avec DLAMI Pytorch. -
Clonez le référentiel de SageMaker HyperPod recettes sur un emplacement de stockage partagé dans le cluster. L'emplacement de stockage partagé peut être un système de FSx fichiers Amazon ou un système NFS accessible depuis les nœuds du cluster.
git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git cd sagemaker-hyperpod-recipes pip3 install -r requirements.txt
-
Suivez le didacticiel suivant : HuggingFace Llama3-8B
Pretraining -
Préparez une configuration de modèle. Les configurations des modèles disponibles dans le référentiel Neuron. Pour la configuration du modèle utilisée dans ce didacticiel, voir llama3 8b
model config
Lancez le job de formation dans Trainium
Pour lancer une tâche de formation dans Trainium, spécifiez une configuration de cluster et une recette Neuron. Par exemple, pour lancer une tâche de pré-formation llama3 8b dans Trainium, définissez le script de lancement comme suit : launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
-
MODEL_CONFIG
: La configuration du modèle depuis la section de configuration de l'environnement -
(Facultatif) Vous pouvez fournir le HuggingFace jeton si vous avez besoin de poids préentraînés HuggingFace en définissant la paire clé-valeur suivante :
recipes.model.hf_access_token=
<your_hf_token>
#!/bin/bash
#Users should set up their cluster type in /recipes_collection/config.yaml
SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
COMPILE=0
TRAIN_DIR="${TRAIN_DIR}" # Location of training dataset
MODEL_CONFIG="${MODEL_CONFIG}" # Location of config.json for the model
HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
instance_type="trn1.32xlarge" \
recipes.run.compile="$COMPILE" \
recipes.run.name="hf-llama3-8b" \
recipes.trainer.num_nodes=4 \
recipes=training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \
recipes.data.train_dir="$TRAIN_DIR" \
recipes.model.model_config="$MODEL_CONFIG"
Pour lancer la tâche de formation, exécutez la commande suivante :
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
Pour plus d'informations sur la configuration du cluster Slurm, consultez. Exécutez une tâche de formation sur HyperPod Slurm