

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á.

# Tutoriais - Pré-treinamento ou ajuste fino de modelos personalizados do Amazon SageMaker HyperPod Checkpointless
<a name="sagemaker-eks-checkpointless-recipes-custom"></a>

A sequência de etapas a seguir é necessária para realizar um treinamento sem pontos de verificação com seu modelo personalizado ativado. HyperPod

## Pré-requisitos
<a name="sagemaker-eks-checkpointless-recipes-custom-prereqs"></a>

Antes de começar a configurar seu ambiente, você deve:
+ [Suporte habilitado para Amazon EKS na Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configurar operador HyperPod de treinamento (v1.2\+)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ 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
+ [Baixe os pesos do modelo Hugging Face](https://huggingface.co/docs/hub/models-downloading) [e converta para o formato compatível com Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurar o ambiente

## Configuração do ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-custom-kubernetes"></a>

Para configurar seu ambiente Kubernetes, faça o seguinte:

1. Configure um ambiente virtual. Certifique-se de usar Python maior ou igual a 3,10 e menor que 3,14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configurar kubectl e eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. Conecte-se ao cluster do Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale as dependências

   ```
   # install SageMaker HyperPod checkpointless training.
   git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
   cd sagemaker-hyperpod-checkpointless-training
   ```

## Instruções de modificação de treinamento Checkpointless
<a name="sagemaker-eks-checkpointless-recipes-custom-modification-instructions"></a>

Para adotar incrementalmente o treinamento sem pontos de verificação para modelos personalizados, siga o guia de integração (aqui usamos o pré-treinamento do Llama 3 70b como exemplo), que envolve:
+ Criação rápida de comunicadores
+ Carregador de dados mapeado na memória (MMAP)
+ Recuperação em andamento e sem pontos de verificação

### Componente 1: Criação rápida de comunicadores
<a name="sagemaker-eks-checkpointless-recipes-custom-component1"></a>

Isso é para otimizar o tempo para estabelecer conexões entre os trabalhadores. Não há necessidade de alterações de código e requer apenas a configuração de variáveis env

```
  # Enable Rootless features
  export HPCT_USE_ROOTLESS=1 && \
  sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \

  hyperpodrun --nproc_per_node=8 \
              ...
              --inprocess-restart \
              ...
```

A alteração completa pode ser encontrada na configuração do trabalho de [lançamento do pré-treinamento llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml).

### Componente 2: carregador de dados mapeado na memória (MMAP)
<a name="sagemaker-eks-checkpointless-recipes-custom-component2"></a>

O MMAP armazena em cache para armazenar amostras de dados pré-buscadas e permitir o início imediato do treinamento sem precisar esperar pelo pré-processamento dos dados. Ele requer mudanças mínimas de código para ser adotado ao encapsular o dataloader existente.

```
data_module = MMAPDataModule(
  data_module=base_data_module,
  mmap_config=CacheResumeMMAPConfig(cache_dir=…)
)
```

### Componentes 3 e 4: Recuperação em andamento e sem pontos de verificação
<a name="sagemaker-eks-checkpointless-recipes-custom-components3-4"></a>

Isso permite a recuperação de falhas sem reiniciar os processos de treinamento ou carregar dos pontos de verificação. Mudanças adicionais no código são necessárias (atualização da configuração de estratégia e treinamento, encapsulamento da principal existente)

```
@HPWrapper(
  health_check=CudaHealthCheck(),
  hp_api_factory=HPAgentK8sAPIFactory(),
  abort_timeout=60.0,
...)
def run_main(
  cfg,
  caller: Optional[HPCallWrapper] = None):
...


CheckpointlessMegatronStrategy(
  **self.cfg.strategy,
  ddp=self.ddp,
)
```

[A alteração completa pode ser encontrada no [script de entrada de pré-treinamento llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/llama3_70b_pretrain_checkpointless.py) e a alteração correspondente na configuração de treinamento pode ser encontrada na configuração de treinamento llama3 70b.](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/config/llama3_70b_peft_checkpointless.yaml)

### Treinamento de lançamento
<a name="sagemaker-eks-checkpointless-recipes-custom-launch"></a>

Agora você pode iniciar o treinamento sem pontos de verificação usando kubectl.

```
kubectl apply -f your_job_config.yaml
```