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 PEFT-LoRA GPT OSS 120b
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 < 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:
-
SageMaker HyperPod metode 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 -
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.
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/gpt_oss/run_checkpointless_gpt_oss_120b_lora.shyour_er: Wadah 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}" MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}" HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \ recipes=fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_lora \ recipes.dataset.dataset_path="${TRAIN_DIR}" \ recipes.exp_manager.exp_dir="${EXP_DIR}" \ recipes.log_dir="${LOG_DIR}" \ recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \ 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/gpt_oss/run_checkpointless_gpt_oss_120b_lora.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 gpt-oss-120b-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
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/gpt_oss/launch/peft _gpt_oss_120b_checkpointless_p5.yaml
gambar: Wadah Pembelajaran Mendalam. Untuk menemukan rilis terbaru dari wadah pelatihan checkpointless, lihat catatan rilis pelatihan tanpa pemeriksaan.
resume.restore_config.path=: Jalur untuk mengunduh bobot model terlatih sebelumnya dalam format Nemo dalam langkah Prasyarat. <path_to_pretrained_weights>
dataset.dataset_path=<path_to_dataset>: Jalur ke dataset yang disimpan dalam penyimpanan bersama
-
Kirim pekerjaan menggunakan kubectl dengan peft_gpt_oss_120b_checkpointless_p5.yaml
kubectl apply -f examples/gpt_oss/launch/peft_gpt_oss_120b_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 gpt-120b-lora-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