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 Llama 3 70b
Urutan langkah berikut diperlukan untuk menjalankan resep pelatihan tanpa pemeriksaan. 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
Pilih resep pelatihan checkpointless yang didukung untuk Llama 70B atau GPT-OSS 120B dari sumbernya.
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 menggunakan salah satu metode berikut:
-
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 -
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 peluncur NeMo -style atau menggunakan kubectl.
Metode 1: Luncurkan pekerjaan pelatihan dengan peluncur resep
Atau, Anda dapat menggunakan SageMaker HyperPod resep untuk mengirimkan pekerjaan pelatihan Anda. Menggunakan resep melibatkan pembaruan k8s.yaml, config.yaml dan menjalankan skrip peluncuran.
-
Perbarui
launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.shWadah Pembelajaran Mendalam. Untuk menemukan rilis terbaru dari wadah pelatihan checkpointless, lihat catatan rilis pelatihan tanpa pemeriksaan.
#!/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}" HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \ recipes=training/llama/checkpointless_llama3_70b_pretrain \ recipes.dataset.dataset_path="${TRAIN_DIR}" \ recipes.exp_manager.exp_dir="${EXP_DIR}" \ recipes.log_dir="${LOG_DIR}" \ recipes.data.global_batch_size=16 \ recipes.data.micro_batch_size=4 \ 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 \ -
Luncurkan pekerjaan pelatihan
bash launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.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 llama-3-70b-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
Metode 2: Luncurkan pekerjaan pelatihan dengan kubectl dengan yaml yang telah ditentukan sebelumnya
Pilihan lainnya adalah meluncurkan pelatihan melalui kubectl dengan yaml pekerjaan yang telah ditentukan sebelumnya.
-
Perbarui
examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yamlimage: Wadah Pembelajaran Mendalam. Untuk menemukan rilis terbaru dari wadah pelatihan checkpointless, lihat catatan rilis pelatihan tanpa pemeriksaan.resume.restore_config.path=<path_to_pretrained_weights>: Jalur untuk mengunduh bobot model terlatih dalam format Nemo dalam langkah Prasyarat.dataset.dataset_path=<path_to_dataset>: Jalur ke kumpulan data yang disimpan di penyimpanan bersama
-
Kirim pekerjaan menggunakan kubectl dengan
pretrain_llama3_70b_checkpointless_p5.yamlkubectl apply -f examples/llama3/launch/pretrain_llama3_70b_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 llama3-pretrain-checkpointless-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