

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 arquivos do Amazon FSx ou um sistema do NFS acessível por meio 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 arquivos do Amazon FSx ou um sistema do NFS acessível por meio 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 Pré-treinamento](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#)
+ 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).