Tutorial di preaddestramento sul cluster Trainium Slurm - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial di preaddestramento sul cluster Trainium Slurm

Il tutorial seguente configura un ambiente Trainium su un cluster Slurm e avvia un job di addestramento su un modello Llama da 8 miliardi di parametri.

Prerequisiti

Prima di iniziare a configurare l’ambiente, assicurati di avere:

  • Configura un cluster Trainium Slurm SageMaker HyperPod .

  • Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.

  • I dati in uno dei seguenti formati:

    • JSON

    • JSONGZ (JSON compresso)

    • ARROW

  • (Facoltativo) È necessario ottenere un HuggingFace token se si utilizzano i pesi del modello HuggingFace per il pre-allenamento o la messa a punto. Per ulteriori informazioni su come ottenere il token, consulta User access tokens.

Configurazione dell’ambiente Trainium sul cluster Slurm

Per avviare un job di addestramento su un cluster Slurm, procedi come descritto di seguito:

  • SSH nel nodo head del cluster Slurm.

  • Dopo aver effettuato l’accesso, configura l’ambiente Neuron. Per informazioni sulla configurazione di Neuron, consulta Neuron setup steps. Ti consigliamo di fare affidamento sulle AMI di deep learning preinstallate con i driver di Neuron, come Ubuntu 20 con DLAMI PyTorch.

  • Clona l'archivio delle SageMaker HyperPod ricette in una posizione di archiviazione condivisa nel cluster. La posizione di archiviazione condivisa può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.

    git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git cd sagemaker-hyperpod-recipes pip3 install -r requirements.txt
  • Segui il seguente tutorial: HuggingFace Llama3-8B Pretraining

  • Prepara una configurazione del modello. Le configurazioni del modello disponibili nel repository Neuron. Per la configurazione del modello utilizzata in questo tutorial, consulta la configurazione del modello llama3 8b.

Avvio del job di addestramento in Trainium

Per avviare un job di addestramento in Trainium, specifica una configurazione del cluster e una ricetta Neuron. Ad esempio, per avviare un job di preaddestramento di llama3 8b in Trainium, imposta lo script di avvio launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh su quanto segue:

  • MODEL_CONFIG: la configurazione del modello dalla sezione di configurazione dell’ambiente

  • (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token impostando la seguente coppia chiave-valore: HuggingFace

    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"

Per avviare il job di addestramento, utilizza il comando seguente:

bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh

Per ulteriori informazioni sulla configurazione del cluster Slurm, consulta Esecuzione di un lavoro di formazione su HyperPod Slurm.