View a markdown version of this page

Tutorial - Amazon SageMaker HyperPod Checkpointless Pretraining atau Finetuning Model Kustom - Amazon SageMaker AI

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

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

Prasyarat

Sebelum Anda mulai mengatur lingkungan Anda, pastikan Anda memiliki:

Pengaturan lingkungan Kubernetes

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
  2. Siapkan kubectl dan eksctl

  3. Connect ke klaster Kubernetes

    aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
  4. 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

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

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.

Komponen 2: Dataloader yang dipetakan memori (MMAP)

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

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 dan perubahan konfigurasi pelatihan yang sesuai dapat ditemukan di konfigurasi pelatihan llama3 70b.

Peluncuran pelatihan

Anda sekarang dapat meluncurkan pelatihan tanpa pemeriksaan menggunakan kubectl.

kubectl apply -f your_job_config.yaml