

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Tutorial - Amazon SageMaker HyperPod Checkpointless Full Finetuning GPT OSS 120b
<a name="sagemaker-eks-checkpointless-recipes-finetune"></a>

Urutan langkah berikut diperlukan untuk menjalankan resep pelatihan tanpa pemeriksaan. HyperPod

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

Sebelum Anda mulai mengatur lingkungan Anda, pastikan Anda memiliki:
+ [Mengaktifkan dukungan Amazon EKS di Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Siapkan operator HyperPod pelatihan (v1.2 \+)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Lokasi penyimpanan bersama. Ini bisa berupa sistem file Amazon FSx atau sistem NFS yang dapat diakses dari node cluster.
+ Data dalam salah satu format berikut:
  + JSON
  + JSONGZ (JSON Terkompresi)
  + PANAH
+ [Pilih resep pelatihan checkpointless yang didukung untuk Llama 70B atau GPT-OSS 120B dari sumbernya.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Unduh bobot model wajah pelukan](https://huggingface.co/docs/hub/models-downloading) dan terselubung ke format yang didukung [Nemo](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face).
+ Siapkan lingkungan Anda

## Pengaturan lingkungan Kubernetes
<a name="sagemaker-eks-checkpointless-finetune-recipes-kubernetes"></a>

Untuk menyiapkan lingkungan Kubernetes Anda, lakukan hal berikut:

1. Siapkan lingkungan virtual. Pastikan versi Python Anda lebih besar dari atau sama dengan 3.10 dan lebih rendah dari 3.14.

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

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

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

1. Connect ke klaster Kubernetes

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

1. Instal dependensi menggunakan salah satu metode berikut:

   1. Metode 1: Metode SageMaker HyperPod Resep:

      ```
      # 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. Metode 2: kubectl dengan metode yaml pekerjaan yang telah ditentukan sebelumnya

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

Anda sekarang dapat meluncurkan resep pelatihan tanpa pemeriksaan menggunakan NeMo-style peluncur atau menggunakan kubectl.

## Luncurkan pekerjaan pelatihan dengan peluncur resep
<a name="sagemaker-eks-checkpointless-recipes-finetune-launcher"></a>

Anda dapat menggunakan SageMaker HyperPod resep Amazon untuk mengirimkan pekerjaan pelatihan Anda. Menggunakan resep melibatkan pembaruan k8s.yaml, config.yaml dan menjalankan skrip peluncuran.

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

   your\_container: Wadah Pembelajaran Mendalam. Untuk menemukan rilis terbaru dari wadah pelatihan checkpointless, lihat catatan rilis pelatihan [tanpa pemeriksaan](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. Luncurkan pekerjaan pelatihan

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

Setelah Anda mengirimkan pekerjaan pelatihan, Anda dapat menggunakan perintah berikut untuk memverifikasi apakah Anda berhasil mengirimkannya.

```
kubectl get pods

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

Jika STATUS di PENDING atau ContainerCreating, jalankan perintah berikut untuk mendapatkan detail lebih lanjut

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

Setelah status pekerjaan berubah menjadi Running, Anda dapat memeriksa log dengan menggunakan perintah berikut.

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

`STATUS`Kehendak beralih ke `COMPLETED` saat Anda berlari`kubectl get pods`.

## Luncurkan pekerjaan pelatihan dengan kubectl dengan yaml yang telah ditentukan sebelumnya
<a name="sagemaker-eks-checkpointless-recipes-finetune-kubectl"></a>

Pilihan lainnya adalah meluncurkan pelatihan melalui kubectl dengan yaml pekerjaan yang telah ditentukan sebelumnya.

1. perbarui examples/gpt\_oss/launch/full\_finetune\_gpt\_oss\_120b\_checkpointless\_p5.yaml
   + gambar: Wadah Pembelajaran Mendalam. Untuk menemukan rilis terbaru dari wadah pelatihan checkpointless, lihat catatan rilis pelatihan [tanpa pemeriksaan](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html).
   + [resume.restore\_config.path=: Jalur untuk mengunduh weigth model terlatih sebelumnya dalam format Nemo dalam langkah Prasyarat.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs) <path\_to\_pretrained\_weights>
   + dataset.dataset\_path=<path\_to\_dataset>: Jalur ke dataset yang disimpan dalam penyimpanan bersama

1. Kirim pekerjaan menggunakan kubectl dengan full\_finetune\_gpt\_oss\_120b\_checkpointless\_p5.yaml

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

Setelah Anda mengirimkan pekerjaan pelatihan, Anda dapat menggunakan perintah berikut untuk memverifikasi apakah Anda berhasil mengirimkannya.

```
kubectl get pods

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

Jika STATUS di PENDING atau ContainerCreating, jalankan perintah berikut untuk mendapatkan detail lebih lanjut

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

Setelah status pekerjaan berubah menjadi Running, Anda dapat memeriksa log dengan menggunakan perintah berikut.

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

STATUS akan berubah menjadi Selesai saat Anda menjalankan kubectl get pods