Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ada dua cara untuk meluncurkan pekerjaan pelatihan di cluster GPU Kubernetes:
-
(Disarankan) HyperPod alat baris perintah
-
Peluncur NeMo gaya
Prasyarat
Sebelum Anda mulai mengatur lingkungan Anda, pastikan Anda memiliki:
-
Cluster HyperPod GPU Kubernetes diatur dengan benar.
-
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
-
-
(Opsional) Anda harus mendapatkan HuggingFace token jika Anda menggunakan bobot model HuggingFace untuk pra-pelatihan atau fine-tuning. Untuk informasi selengkapnya tentang mendapatkan token, lihat Token akses pengguna
.
Pengaturan lingkungan GPU Kubernetes
Untuk menyiapkan lingkungan GPU Kubernetes, lakukan hal berikut:
-
Siapkan lingkungan virtual. Pastikan Anda menggunakan Python 3.9 atau lebih tinggi.
python3 -m venv ${PWD}/venv source venv/bin/activate
-
Instal dependensi menggunakan salah satu metode berikut:
-
(Disarankan): HyperPod metode alat baris perintah
: # install HyperPod command line tools git clone https://github.com/aws/sagemaker-hyperpod-cli cd sagemaker-hyperpod-cli pip3 install .
-
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
-
-
Connect ke klaster Kubernetes Anda
aws eks update-kubeconfig --region "${
CLUSTER_REGION
}" --name "${CLUSTER_NAME
}" hyperpod connect-cluster --cluster-name "${CLUSTER_NAME
}" [--region "${CLUSTER_REGION
}"] [--namespace <namespace>]
Luncurkan pekerjaan pelatihan dengan SageMaker HyperPod CLI
Sebaiknya gunakan alat antarmuka SageMaker HyperPod baris perintah (CLI) untuk mengirimkan pekerjaan pelatihan Anda dengan konfigurasi Anda. Contoh berikut mengirimkan pekerjaan pelatihan untuk hf_llama3_8b_seq16k_gpu_p5x16_pretrain
model.
-
your_training_container
: Wadah Pembelajaran Mendalam. Untuk menemukan rilis terbaru dari wadah SMP, lihatCatatan rilis untuk pustaka paralelisme SageMaker model. -
(Opsional) Anda dapat memberikan HuggingFace token jika Anda membutuhkan bobot yang telah dilatih sebelumnya HuggingFace dengan menetapkan pasangan nilai kunci berikut:
"recipes.model.hf_access_token": "
<your_hf_token>
"
hyperpod start-job --recipe training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \ --persistent-volume-claims fsx-claim:data \ --override-parameters \ '{ "recipes.run.name": "hf-llama3-8b", "recipes.exp_manager.exp_dir": "/data/
<your_exp_dir>
", "container": "658645717510.dkr.ecr.<region>
.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121", "recipes.model.data.train_dir": "<your_train_data_dir>
", "recipes.model.data.val_dir": "<your_val_data_dir>
", "cluster": "k8s", "cluster_type": "k8s" }'
Setelah mengirimkan pekerjaan pelatihan, Anda dapat menggunakan perintah berikut untuk memverifikasi apakah Anda berhasil mengirimkannya.
kubectl get pods
NAME READY STATUS RESTARTS AGE
hf-llama3-<your-alias>-worker-0 0/1 running 0 36s
Jika STATUS
ada PENDING
atauContainerCreating
, jalankan perintah berikut untuk mendapatkan detail lebih lanjut.
kubectl describe pod
<name of pod>
Setelah pekerjaan STATUS
berubahRunning
, Anda dapat memeriksa log dengan menggunakan perintah berikut.
kubectl logs <name of pod>
STATUS
Menjadi Completed
ketika Anda berlarikubectl get pods
.
Luncurkan pekerjaan pelatihan dengan peluncur resep
Atau, Anda dapat menggunakan SageMaker HyperPod resep untuk mengirimkan pekerjaan pelatihan Anda. Menggunakan resep melibatkan pembaruank8s.yaml
,config.yaml
, dan menjalankan skrip peluncuran.
-
Di
k8s.yaml
, perbaruipersistent_volume_claims
. Ini memasang FSx klaim Amazon ke/data
direktori setiap pod komputasipersistent_volume_claims: - claimName: fsx-claim mountPath: data
-
Di
config.yaml
, perbaruirepo_url_or_path
di bawahgit
.git: repo_url_or_path:
<training_adapter_repo>
branch: null commit: null entry_script: null token: null -
Perbarui
launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
-
your_contrainer
: Wadah Pembelajaran Mendalam. Untuk menemukan rilis terbaru dari wadah SMP, lihatCatatan rilis untuk pustaka paralelisme SageMaker model. -
(Opsional) Anda dapat memberikan HuggingFace token jika Anda membutuhkan bobot yang telah dilatih sebelumnya HuggingFace dengan menetapkan pasangan nilai kunci berikut:
recipes.model.hf_access_token=
<your_hf_token>
#!/bin/bash #Users should setup their cluster type in /recipes_collection/config.yaml REGION="
<region>
" IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121" SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"} EXP_DIR="<your_exp_dir>
" # Location to save experiment info including logging, checkpoints, ect TRAIN_DIR="<your_training_data_dir>
" # Location of training dataset VAL_DIR="<your_val_data_dir>
" # Location of talidation dataset HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \ recipes=training/llama/hf_llama3_8b_seq8k_gpu_p5x16_pretrain \ base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \ recipes.run.name="hf-llama3" \ recipes.exp_manager.exp_dir="$EXP_DIR" \ cluster=k8s \ cluster_type=k8s \ container="${IMAGE}" \ recipes.model.data.train_dir=$TRAIN_DIR \ recipes.model.data.val_dir=$VAL_DIR -
-
Luncurkan pekerjaan pelatihan
bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_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
hf-llama3-<your-alias>-worker-0 0/1 running 0 36s
Jika STATUS
ada PENDING
atauContainerCreating
, jalankan perintah berikut untuk mendapatkan detail lebih lanjut.
kubectl describe pod
<name-of-pod>
Setelah pekerjaan STATUS
berubahRunning
, Anda dapat memeriksa log dengan menggunakan perintah berikut.
kubectl logs <name of pod>
STATUS
Kehendak beralih ke Completed
saat Anda berlarikubectl get pods
.
Untuk informasi selengkapnya tentang konfigurasi kluster k8s, lihat. Jalankan pekerjaan pelatihan di HyperPod k8s