Tutorial - Amazon SageMaker HyperPod Checkpointless PEFT-LoRA GPT OSS 120b - 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 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:

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 < 3.14.

    python3 -m venv ${PWD}/venv source venv/bin/activate
  2. Siapkan kubectl dan eksctl

  3. Instal Helm

  4. Connect ke klaster Kubernetes

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

  1. Perbarui launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh

    your_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 \
  2. 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.

  1. perbarui examples/gpt_oss/launch/peft _gpt_oss_120b_checkpointless_p5.yaml

  2. 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