

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial de pré-treinamento de clusters do Slurm no Trainium
<a name="hyperpod-trainium-slurm-cluster-pretrain-tutorial"></a>

O tutorial a seguir configura um ambiente Trainium em um cluster do Slurm e inicia uma tarefa de treinamento em um modelo Llama de 8 bilhões de parâmetros.

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Configure um cluster SageMaker HyperPod Trainium Slurm.
Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Você deve receber uma HuggingFace ficha se estiver usando os pesos do modelo HuggingFace para pré-treinamento ou ajuste fino. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurar o ambiente Trainium no cluster do Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-setup-trainium-environment"></a>

Para iniciar uma tarefa de treinamento em um cluster do Slurm, faça o seguinte:
+ Use SSH no nó cabeça do cluster.
+ Depois de fazer login, configure o ambiente Neuron. Para ter informações sobre como configurar o Neuron, consulte as [etapas de configuração do Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_SFT.html#setting-up-the-environment). Recomendamos contar com as AMIs de deep learning que vêm pré-instaladas com os drivers do Neuron, como o [Ubuntu 20 com DLAMI do 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).
+ Clone o repositório de SageMaker HyperPod receitas em um local de armazenamento compartilhado no cluster. O local de armazenamento compartilhado pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.

  ```
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Siga o seguinte tutorial: [HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#) Pretraining
+ Prepare uma configuração do modelo. As configurações do modelo estão disponíveis no repositório do Neuron. Com relação à configuração do modelo usada neste tutorial, consulte a [configuração do modelo llama3 8b](https://github.com/aws-neuron/neuronx-distributed/blob/main/examples/training/llama/tp_zero1_llama_hf_pretrain/8B_config_llama3/config.json).

## Iniciar a tarefa de treinamento no Trainium
<a name="hyperpod-trainium-slurm-cluster-pretrain-launch-training-job-trainium"></a>

Para iniciar uma tarefa de treinamento no Trainium, especifique uma configuração de cluster e uma fórmula do Neuron. Por exemplo, para iniciar uma tarefa de pré-treinamento do llama3 8b no Trainium, defina o script de execução `launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh` como o seguinte:
+ `MODEL_CONFIG`: a configuração do modelo na seção de configuração do ambiente.
+ (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  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 a tarefa de treinamento, execute o seguinte comando:

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

Para ter mais informações sobre como configurar um cluster do Slurm, consulte [Executando um trabalho de treinamento no HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).