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à.
HyperPod tutorial di pre-formazione sul cluster Slurm (GPU)
Il seguente tutorial configura l'ambiente Slurm e avvia un lavoro di formazione su un modello Llama da 8 miliardi di parametri.
Prerequisiti
Prima di iniziare a configurare l'ambiente per eseguire la ricetta, assicurati di avere:
-
Configura un cluster HyperPod GPU Slurm.
-
Il tuo cluster HyperPod Slurm deve avere Nvidia Enroot e Pyxis abilitati (questi sono abilitati di default).
-
-
Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
-
Dati in uno dei seguenti formati:
-
JSON
-
JSONGZ (JSON compresso)
-
FRECCIA
-
-
(Facoltativo) È necessario ottenere un HuggingFace gettone se si utilizzano i pesi modello di cui si dispone HuggingFace per il pre-allenamento o la messa a punto. Per ulteriori informazioni su come ottenere il token, consulta Token di accesso degli utenti.
HyperPod Configurazione dell'ambiente GPU Slurm
Per avviare un processo di formazione su un cluster HyperPod GPU Slurm, procedi come segue:
-
Accesso tramite SSH al nodo principale del cluster Slurm.
-
Dopo aver effettuato l'accesso, configura l'ambiente virtuale. Assicurati di usare Python 3.9 o versioni successive.
#set up a virtual environment python3 -m venv ${PWD}/venv source venv/bin/activate
-
Clona le SageMaker HyperPod ricette e gli archivi degli SageMaker HyperPod adattatori in una posizione di archiviazione condivisa.
git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git cd sagemaker-hyperpod-recipes pip3 install -r requirements.txt
-
Crea un file squash usando Enroot. Per trovare la versione più recente del contenitore SMP, vedi. Note di rilascio per la libreria di parallelismo dei SageMaker modelli Per una comprensione più approfondita di come utilizzare il file Enroot, consultate l'immagine AWS Nemo-Launcher ottimizzata per Build
. REGION="
<region>
" IMAGE="658645717510.dkr.ecr.${REGION
}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121" aws ecr get-login-password --region ${REGION
} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${REGION
}.amazonaws.com enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE} mv $PWD/smdistributed-modelparallel.sqsh "/fsx/<any-path-in-the-shared-filesystem>
" -
Per utilizzare il file squash Enroot per iniziare l'allenamento, usa l'esempio seguente per modificare il file.
recipes_collection/config.yaml
container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
Avvia il processo di formazione
Dopo aver installato le dipendenze, avvia un processo di formazione dalla sagemaker-hyperpod-recipes/launcher_scripts
directory. Ottieni le dipendenze clonando il repository delle SageMaker HyperPod ricette:
Innanzitutto, scegli la tua ricetta di allenamento da Github, il nome del modello viene specificato come parte della ricetta. Nel seguente esempio, utilizziamo lo launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
script per lanciare una ricetta di pre-allenamento Llama 8b con lunghezza della sequenza 8192. llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain
-
IMAGE
: Il contenitore della sezione di configurazione dell'ambiente. -
(Facoltativo) Se hai bisogno di pesi preimpostati, puoi fornire il HuggingFace token HuggingFace impostando la seguente coppia chiave-valore:
recipes.model.hf_access_token=
<your_hf_token>
#!/bin/bash IMAGE="${YOUR_IMAGE}" SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}" TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset # experiment ouput directory EXP_DIR="${YOUR_EXP_DIR}" HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \ recipes=training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \ base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \ recipes.run.name="hf_llama3_8b" \ recipes.exp_manager.exp_dir="$EXP_DIR" \ recipes.model.data.train_dir="$TRAIN_DIR" \ recipes.model.data.val_dir="$VAL_DIR" \ container="${IMAGE}" \ +cluster.container_mounts.0="/fsx:/fsx"
Dopo aver configurato tutti i parametri richiesti nello script di avvio, puoi eseguire lo script utilizzando il seguente comando.
bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
Per ulteriori informazioni sulla configurazione del cluster Slurm, vedere. Esegui un processo di formazione su HyperPod Slurm