

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 Pretraining atau Finetuning Model Kustom
<a name="sagemaker-eks-checkpointless-recipes-custom"></a>

Urutan langkah berikut diperlukan untuk menjalankan pelatihan tanpa pemeriksaan dengan model kustom Anda aktif. HyperPod

## Prasyarat
<a name="sagemaker-eks-checkpointless-recipes-custom-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 \$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ 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
+ [Unduh bobot model wajah pelukan](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) 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-recipes-custom-kubernetes"></a>

Untuk menyiapkan lingkungan Kubernetes Anda, lakukan hal berikut:

1. Siapkan lingkungan virtual. Pastikan Anda menggunakan Python 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. Connect ke klaster Kubernetes

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

1. Instal dependensi

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

## Instruksi modifikasi pelatihan tanpa pemeriksaan
<a name="sagemaker-eks-checkpointless-recipes-custom-modification-instructions"></a>

Untuk secara bertahap mengadopsi pelatihan tanpa pemeriksaan untuk model khusus, ikuti panduan integrasi (di sini kami menggunakan prapelatihan Llama 3 70b sebagai contoh), yang melibatkan:
+ Pembuatan komunikator cepat
+ Dataloader yang dipetakan memori (MMAP)
+ Pemulihan dalam proses & Tanpa Pemeriksaan

### Komponen 1: Pembuatan komunikator cepat
<a name="sagemaker-eks-checkpointless-recipes-custom-component1"></a>

Ini untuk mengoptimalkan waktu untuk membangun koneksi antar pekerja. Tidak ada perubahan kode yang diperlukan dan hanya memerlukan pengaturan variabel 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 \
              ...
```

Perubahan penuh dapat ditemukan di konfigurasi pekerjaan peluncuran [pretrain llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml).

### Komponen 2: Dataloader yang dipetakan memori (MMAP)
<a name="sagemaker-eks-checkpointless-recipes-custom-component2"></a>

Cache MMAP untuk menyimpan sampel data yang telah diambil sebelumnya & mengaktifkan pelatihan segera dimulai tanpa perlu menunggu pra-pemrosesan data. Ini membutuhkan perubahan kode minimal untuk diadopsi dengan membungkus dataloader yang ada.

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

### Komponen 3 dan 4: Pemulihan dalam proses dan tanpa pemeriksaan
<a name="sagemaker-eks-checkpointless-recipes-custom-components3-4"></a>

Ini memungkinkan pemulihan kegagalan tanpa memulai kembali proses pelatihan atau memuat dari pos pemeriksaan. Diperlukan perubahan kode tambahan (pembaruan konfigurasi strategi & pelatihan, bungkus main yang ada)

```
@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,
)
```

[Perubahan penuh dapat ditemukan di [skrip entri pretrain llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/llama3_70b_pretrain_checkpointless.py) dan perubahan konfigurasi pelatihan yang sesuai dapat ditemukan di konfigurasi pelatihan llama3 70b.](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/config/llama3_70b_peft_checkpointless.yaml)

### Peluncuran pelatihan
<a name="sagemaker-eks-checkpointless-recipes-custom-launch"></a>

Anda sekarang dapat meluncurkan pelatihan tanpa pemeriksaan menggunakan kubectl.

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