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:
Mengaktifkan dukungan Amazon EKS di Amazon SageMaker HyperPod
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 dan terselubung ke format yang didukung Nemo
. Siapkan lingkungan Anda
Pengaturan lingkungan Kubernetes
Untuk menyiapkan lingkungan Kubernetes Anda, lakukan hal berikut:
-
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 -
Connect ke klaster Kubernetes
aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}" -
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
Peluncuran pelatihan
Anda sekarang dapat meluncurkan pelatihan tanpa pemeriksaan menggunakan kubectl.
kubectl apply -f your_job_config.yaml