

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.

# Tutoriales de SageMaker HyperPod formación de Amazon Checkpointless
<a name="sagemaker-eks-checkpointless-recipes"></a>

[ HyperPod Las recetas de entrenamiento sin puntos de control](https://github.com/aws/sagemaker-hyperpod-checkpointless-training) son configuraciones de trabajo predefinidas con las funciones de entrenamiento sin control habilitadas. El uso de estas recetas hace que sea más fácil empezar con el entrenamiento sin puntos de control. HyperPod

**Topics**
+ [Tutoriales - Optimización completa SageMaker HyperPod de Amazon Checkpointless (GPT OSS 120b)](sagemaker-eks-checkpointless-recipes-finetune.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b](sagemaker-eks-checkpointless-recipes-peft.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b](sagemaker-eks-checkpointless-recipes-pretraining-llama3.md)
+ [Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora Llama 3 70b](sagemaker-eks-checkpointless-recipes-peft-llama.md)
+ [Tutoriales: Amazon SageMaker HyperPod Checkpointless: preentrenamiento o ajuste de modelos personalizados](sagemaker-eks-checkpointless-recipes-custom.md)

# Tutoriales - Optimización completa SageMaker HyperPod de Amazon Checkpointless (GPT OSS 120b)
<a name="sagemaker-eks-checkpointless-recipes-finetune"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-finetune-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ 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
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-finetune-recipes-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de que su versión de Python sea superior o igual a la 3.10 e inferior a la 3.14.

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

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

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

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

1. Instale las dependencias siguiendo uno de estos métodos:

   1. Método 1: método de SageMaker HyperPod recetas:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Método 2: kubectl con el método job yaml predefinido

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

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Lanza trabajos de formación con el lanzador de recetas
<a name="sagemaker-eks-checkpointless-recipes-finetune-launcher"></a>

Puedes usar las SageMaker HyperPod recetas de Amazon para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh`.

   your\$1container: un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación de checkpointless, consulte las notas de la versión de formación de [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_full_fine_tuning \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El `STATUS` pasará a `COMPLETED` cuando ejecute `kubectl get pods`.

## Lanza el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-finetune-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. examples/gpt\$1oss/launch/fullactualiza el \$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + imagen: un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulta las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).
   + [resume.restore\$1config.path=: la ruta para descargar las pesas de modelos previamente entrenadas en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs) <path\$1to\$1pretrained\$1weights>
   + dataset.dataset\$1path=<path\$1to\$1dataset>: la ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envía el trabajo mediante kubectl con full\$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/full_finetune_gpt_oss_120b_checkpointless_p5.yaml
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Si el ESTADO es PENDIENTE o, ejecuta el siguiente comando para obtener más detalles ContainerCreating

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b
<a name="sagemaker-eks-checkpointless-recipes-peft"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-peft-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ 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
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 y < 3.14.

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

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

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

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

1. Instale las dependencias siguiendo uno de estos métodos:
   + SageMaker HyperPod método de recetas:

     ```
     # install SageMaker HyperPod Recipes.
     git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
     cd sagemaker-hyperpod-recipes
     pip3 install -r requirements.txt
     ```
   + kubectl con el método job yaml predefinido

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

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Lanzamiento del trabajo de entrenamiento con el lanzador de fórmulas
<a name="sagemaker-eks-checkpointless-recipes-peft-recipes-launcher"></a>

Como alternativa, puedes usar las SageMaker HyperPod recetas para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh`.

   your\$1contrainer: un contenedor de aprendizaje profundo. [Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulte las notas de la versión de formación sobre checkpointless.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)

   ```
   #!/bin/bash
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_lora \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El ESTADO pasará a Completado cuando ejecutes kubectl get pods

## Inicia el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-peft-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. examples/gpt\$1oss/launch/peftactualiza el \$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + imagen: Un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulta las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).
   + [resume.restore\$1config.path=: la ruta para descargar modelos de pesas preentrenados en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft.html#sagemaker-eks-checkpointless-recipes-peft-prereqs) <path\$1to\$1pretrained\$1weights>
   + <path\$1to\$1dataset>dataset.dataset\$1path=: la ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envía el trabajo mediante kubectl con peft\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/peft_gpt_oss_120b_checkpointless_p5.yaml
   ```

Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

```
kubectl get pods

NAME                                             READY   STATUS             RESTARTS        AGE
gpt-120b-lora-checkpointless-worker-0             0/1    running               0            36s
```

Si el ESTADO es PENDIENTE o, ejecuta el siguiente comando para obtener más detalles ContainerCreating

```
kubectl describe pod <name of pod>
```

Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

```
kubectl logs <name of pod>
```

El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ 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
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 e inferior a 3.14.

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

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

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

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

1. Instale las dependencias siguiendo uno de estos métodos:

   1. Método 1: método de SageMaker HyperPod recetas:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Método 2: kubectl con el método job yaml predefinido

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

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Método 1: inicia el trabajo de entrenamiento con el lanzador de recetas
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-recipes-launcher"></a>

Como alternativa, puedes usar las SageMaker HyperPod recetas para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh`.

   Un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulte las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=training/llama/checkpointless_llama3_70b_pretrain \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.data.global_batch_size=16 \
       recipes.data.micro_batch_size=4 \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

## Método 2: inicia el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. Actualizar el `examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml`
   + `image`: es un contenedor de aprendizaje profundo. [Para encontrar la versión más reciente del contenedor de formación de checkpointless, consulta las notas de la versión de formación de checkpointless.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: La ruta para descargar modelos de pesas preentrenados en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs)
   + `dataset.dataset_path=<path_to_dataset>`: La ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envíe el trabajo mediante kubectl con `pretrain_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-pretrain-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Si el STATUS está en PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más detalles

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales - Amazon SageMaker HyperPod Checkpointless PEFT-Lora Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-peft-llama"></a>

Se requiere la siguiente secuencia de pasos para ejecutar recetas de entrenamiento sin puntos de control. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ 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
+ [Elija una receta de entrenamiento sin puntos de control compatible para Llama 70B o GPT-OSS 120B de la fuente.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) [y conviértelo en un formato compatible con Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 e inferior a 3.14.

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

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

1. [Instala Helm](https://helm.sh/docs/intro/install/)

1. Conéctese con su clúster de Kubernetes.

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

1. Instale las dependencias siguiendo uno de estos métodos:

   1. Método 1: método de SageMaker HyperPod recetas:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Método 2: kubectl con el método job yaml predefinido

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

Ahora puedes lanzar la receta de entrenamiento sin puntos de control usando el lanzador style o usando kubectl. NeMo

## Método 1: inicia el trabajo de entrenamiento con el lanzador de recetas
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-recipes-launcher"></a>

Como alternativa, puedes usar las SageMaker HyperPod recetas para enviar tu trabajo de formación. El uso de las recetas implica actualizar k8s.yaml, config.yaml y ejecutar el script de lanzamiento.

1. Actualice `launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh`.

   Un contenedor de aprendizaje profundo. Para encontrar la versión más reciente del contenedor de formación sobre checkpointless, consulte las notas de la versión de formación sobre [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/llama/checkpointless_llama3_70b_lora \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Lanzamiento del trabajo de entrenamiento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Si el estado es PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más información

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

## Método 2: inicia el trabajo de entrenamiento con kubectl con yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubectl"></a>

Otra opción es iniciar la formación a través de kubectl con un trabajo predefinido, yaml.

1. Actualizar el `examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml`
   + `image`: es un contenedor de aprendizaje profundo. [Para encontrar la versión más reciente del contenedor de formación de checkpointless, consulta las notas de la versión de formación de checkpointless.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: La ruta para descargar modelos de pesas preentrenados en formato Nemo en el paso de requisitos previos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs)
   + `dataset.dataset_path=<path_to_dataset>`: La ruta al conjunto de datos almacenado en el almacenamiento compartido

1. Envíe el trabajo mediante kubectl con `peft_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml
   ```

1. Después de enviar el trabajo de entrenamiento, puede usar el siguiente comando para comprobar si lo ha enviado correctamente.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-70b-lora-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Si el STATUS está en PENDIENTE o ContainerCreating, ejecute el siguiente comando para obtener más detalles

   ```
   kubectl describe pod <name of pod>
   ```

1. Cuando el STATUS del trabajo cambie a Running, podrá examinar el registro con el siguiente comando.

   ```
   kubectl logs <name of pod>
   ```

   El ESTADO pasará a Completado cuando ejecutes kubectl get pods

# Tutoriales: Amazon SageMaker HyperPod Checkpointless: preentrenamiento o ajuste de modelos personalizados
<a name="sagemaker-eks-checkpointless-recipes-custom"></a>

La siguiente secuencia de pasos es necesaria para realizar un entrenamiento sin puntos de control con su modelo personalizado activado. HyperPod

## Requisitos previos
<a name="sagemaker-eks-checkpointless-recipes-custom-prereqs"></a>

Antes de configurar el entorno, asegúrese de disponer de:
+ [Se habilitó el soporte de Amazon EKS en Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configure el operador HyperPod de entrenamiento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ 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
+ [Descarga el modelo Hugging Face con pesas](https://huggingface.co/docs/hub/models-downloading) y encubre el formato compatible con [Nemo](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face).
+ Configure su entorno

## Configuración del entorno de Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-custom-kubernetes"></a>

Para configurar su entorno de Kubernetes, haga lo siguiente:

1. Configure el entorno virtual. Asegúrese de usar Python superior o igual a 3.10 e inferior a 3.14.

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

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

1. Conéctese con su clúster de Kubernetes.

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

1. Cómo instalar las dependencias

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

## Instrucciones de modificación del entrenamiento sin control
<a name="sagemaker-eks-checkpointless-recipes-custom-modification-instructions"></a>

Para adoptar gradualmente el entrenamiento sin puntos de control para modelos personalizados, sigue la guía de integración (aquí utilizamos el preentrenamiento de Llama 3 70b como ejemplo), que incluye:
+ Creación rápida de comunicadores
+ Cargador de datos mapeado en memoria (MMAP)
+ Recuperación en proceso y sin puntos de control

### Componente 1: Creación rápida de comunicadores
<a name="sagemaker-eks-checkpointless-recipes-custom-component1"></a>

Esto es para optimizar el tiempo necesario para establecer conexiones entre los trabajadores. No es necesario realizar cambios en el código y solo es necesario configurar las variables de entorno

```
  # 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 \
              ...
```

El cambio completo se encuentra en la configuración del trabajo de [lanzamiento previo al entrenamiento de llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml).

### Componente 2: Cargador de datos mapeado en memoria (MMAP)
<a name="sagemaker-eks-checkpointless-recipes-custom-component2"></a>

El MMAP se almacena en caché para almacenar muestras de datos precargadas y permitir el inicio inmediato del entrenamiento sin necesidad de esperar a que se preprocesen los datos. Requiere cambios mínimos en el código para adaptarlo al cargador de datos existente.

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

### Componentes 3 y 4: Recuperación en proceso y sin puntos de control
<a name="sagemaker-eks-checkpointless-recipes-custom-components3-4"></a>

Esto permite la recuperación de fallos sin tener que reiniciar los procesos de formación ni cargar desde los puntos de control. Se necesitan cambios adicionales en el código (actualización de la configuración de estrategia y entrenamiento, actualización del código 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,
)
```

El cambio completo se encuentra en el [script de entrada previo al entrenamiento de llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/llama3_70b_pretrain_checkpointless.py) y el cambio de configuración de entrenamiento correspondiente se encuentra en la configuración de entrenamiento de [llama3 70b](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/config/llama3_70b_peft_checkpointless.yaml).

### Inicie el entrenamiento
<a name="sagemaker-eks-checkpointless-recipes-custom-launch"></a>

Ahora puedes iniciar el entrenamiento sin puntos de control con kubectl.

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