

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial de entrenamiento previo del clúster Trainium de Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-tutorial"></a>

En el siguiente tutorial se muestra cómo configurar el entorno de Trainium en un clúster de Slurm y lanzar un trabajo de entrenamiento en un modelo de 8000 millones de parámetros de Llama.

**Requisitos previos**  
Antes de configurar el entorno, asegúrese de disponer de:  
Configure un clúster de SageMaker HyperPod Trainium Slurm.
Una ubicación de almacenamiento compartida. Puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.
Datos en uno de los siguientes formatos:  
JSON
JSONGZ (JSON comprimido)
ARROW
(Opcional) Debes obtener un HuggingFace token si utilizas las pesas del modelo para el entrenamiento previo o HuggingFace para realizar ajustes. Para obtener más información sobre cómo obtener el token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configuración del entorno de Trainium en el clúster de Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-setup-trainium-environment"></a>

Para iniciar un trabajo de entrenamiento en un clúster de Slurm, haga lo siguiente:
+ SSH en el nodo principal del clúster de Slurm.
+ Después de iniciar sesión, configure el entorno de Neuron. Para obtener más información sobre la configuración de Neuron, consulte los [pasos de configuración de Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_SFT.html#setting-up-the-environment). Recomendamos que confíe en las AMI de aprendizaje profundo preinstaladas con los controladores de Neuron, como [Ubuntu 20 con DLAMI Pytorch](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu20-pytorch-dlami.html#setup-torch-neuronx-ubuntu20-dlami-pytorch).
+ Clona el repositorio de SageMaker HyperPod recetas en una ubicación de almacenamiento compartida del clúster. La ubicación de almacenamiento compartido puede ser un sistema de FSx archivos Amazon o un sistema NFS al que se pueda acceder desde los nodos del clúster.

  ```
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Siga el siguiente tutorial: Capacitación previa sobre [HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#)
+ Prepare la configuración de un modelo. Las configuraciones de modelos están disponibles en el repositorio de Neuron. Para ver la configuración del modelo utilizada en este tutorial, consulte [llama3 8b model config](https://github.com/aws-neuron/neuronx-distributed/blob/main/examples/training/llama/tp_zero1_llama_hf_pretrain/8B_config_llama3/config.json).

## Lanzamiento del trabajo de entrenamiento en Trainium
<a name="hyperpod-trainium-slurm-cluster-pretrain-launch-training-job-trainium"></a>

Para iniciar un trabajo de entrenamiento en Trainium, especifique una configuración de clúster y una fórmula de Neuron. Por ejemplo, para lanzar un trabajo de entrenamiento previo de llama3 8b en Trainium, defina el script de lanzamiento, `launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh`, de la siguiente manera:
+ `MODEL_CONFIG`: es el modelo de configuración de la sección de configuración del entorno.
+ (Opcional) Puedes proporcionar el HuggingFace token si necesitas pesas previamente entrenadas HuggingFace configurando el siguiente par clave-valor:

  ```
  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"
```

Para iniciar el trabajo de entrenamiento, ejecute el siguiente comando:

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
```

Para obtener más información acerca de la configuración del clúster de Slurm, consulte [¿Estás realizando un trabajo de formación en HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).