

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

# HyperPod Tutorial pra-pelatihan klaster slurm (GPU)
<a name="hyperpod-gpu-slurm-pretrain-tutorial"></a>

Tutorial berikut mengatur lingkungan Slurm dan memulai pekerjaan pelatihan pada model parameter Llama 8 miliar.

**Prasyarat**  
Sebelum Anda mulai mengatur lingkungan Anda untuk menjalankan resep, pastikan Anda memiliki:  
Siapkan cluster HyperPod GPU Slurm.  
Cluster HyperPod Slurm Anda harus mengaktifkan Nvidia Enroot dan Pyxis (ini diaktifkan secara default).
Lokasi penyimpanan bersama. Ini bisa berupa sistem FSx file Amazon atau sistem NFS yang dapat diakses dari node cluster.
Data dalam salah satu format berikut:  
JSON
JSONGZ (JSON Terkompresi)
PANAH
(Opsional) Anda harus mendapatkan HuggingFace token jika Anda menggunakan bobot model HuggingFace untuk pra-pelatihan atau fine-tuning. Untuk informasi selengkapnya tentang mendapatkan token, lihat [Token akses pengguna](https://huggingface.co/docs/hub/en/security-tokens).

## HyperPod Pengaturan lingkungan GPU Slurm
<a name="hyperpod-gpu-slurm-environment-setup"></a>

Untuk memulai pekerjaan pelatihan pada cluster HyperPod GPU Slurm, lakukan hal berikut:

1. SSH ke node kepala cluster Slurm Anda.

1. Setelah Anda masuk, atur lingkungan virtual. Pastikan Anda menggunakan Python 3.9 atau lebih tinggi.

   ```
   #set up a virtual environment
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. Kloning SageMaker HyperPod resep dan repositori SageMaker HyperPod adaptor ke lokasi penyimpanan bersama.

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git
   git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
   cd sagemaker-hyperpod-recipes
   pip3 install -r requirements.txt
   ```

1. Buat file squash menggunakan Enroot. Untuk menemukan rilis terbaru dari wadah SMP, lihat[Catatan rilis untuk pustaka paralelisme SageMaker model](model-parallel-release-notes.md). Untuk mendapatkan pemahaman yang lebih dalam tentang cara menggunakan file Enroot, lihat [Build AWS-optimized Nemo-Launcher](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/2.nemo-launcher#2-build-aws-optimized-nemo-launcher-image) image.

   ```
   REGION="{{<region>}}"
   IMAGE="658645717510.dkr.ecr.${{{REGION}}}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
   aws ecr get-login-password --region ${{{REGION}}} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${{{REGION}}}.amazonaws.com
   enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE}
   mv $PWD/smdistributed-modelparallel.sqsh "/fsx/{{<any-path-in-the-shared-filesystem>}}"
   ```

1. Untuk menggunakan file squash Enroot untuk memulai pelatihan, gunakan contoh berikut untuk memodifikasi file. `recipes_collection/config.yaml`

   ```
   container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
   ```

## Luncurkan pekerjaan pelatihan
<a name="hyperpod-gpu-slurm-launch-training-job"></a>

Setelah Anda menginstal dependensi, mulai pekerjaan pelatihan dari direktori. `sagemaker-hyperpod-recipes/launcher_scripts` [Anda mendapatkan dependensi dengan mengkloning repositori resep: SageMaker HyperPod ](https://github.com/aws/sagemaker-hyperpod-recipes)

Pertama, pilih resep pelatihan Anda dari Github, nama model ditentukan sebagai bagian dari resep. Kami menggunakan `launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh` skrip untuk meluncurkan Llama 8b dengan panjang urutan 8192 resep pra-pelatihan,`llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain`, dalam contoh berikut.
+ `IMAGE`: Wadah dari bagian pengaturan lingkungan.
+ (Opsional) Anda dapat memberikan HuggingFace token jika Anda membutuhkan bobot yang telah dilatih sebelumnya HuggingFace dengan menetapkan pasangan nilai kunci berikut:

  ```
  recipes.model.hf_access_token={{<your_hf_token>}}
  ```

```
#!/bin/bash
IMAGE="${YOUR_IMAGE}"
SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}"

TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset
VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset

# experiment ouput directory
EXP_DIR="${YOUR_EXP_DIR}"

HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
  recipes=training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \
  base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
  recipes.run.name="hf_llama3_8b" \
  recipes.exp_manager.exp_dir="$EXP_DIR" \
  recipes.model.data.train_dir="$TRAIN_DIR" \
  recipes.model.data.val_dir="$VAL_DIR" \
  container="${IMAGE}" \
  +cluster.container_mounts.0="/fsx:/fsx"
```

Setelah Anda mengkonfigurasi semua parameter yang diperlukan dalam skrip peluncur, Anda dapat menjalankan skrip menggunakan perintah berikut.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
```

Untuk informasi selengkapnya tentang konfigurasi klaster Slurm, lihat. [Menjalankan pekerjaan pelatihan di HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md)