Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial pra-pelatihan klaster Trainium Kubernetes
Anda dapat menggunakan salah satu metode berikut untuk memulai pekerjaan pelatihan di cluster Trainium Kubernetes.
-
(Disarankan) HyperPod alat baris perintah
-
Peluncur NeMo gaya
Prasyarat
Sebelum Anda mulai mengatur lingkungan Anda, pastikan Anda memiliki:
-
Siapkan cluster HyperPod Trainium Kubernetes
-
Lokasi penyimpanan bersama yang dapat 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
.
Siapkan lingkungan Trainium Kubernetes Anda
Untuk mengatur lingkungan Trainium Kubernetes, lakukan hal berikut:
-
Selesaikan langkah-langkah dalam tutorial berikut: HuggingFace Llama3-8B Pretraining
mulai dari Download dataset. -
Siapkan konfigurasi model. Mereka tersedia di repo Neuron. Untuk tutorial ini, Anda dapat menggunakan konfigurasi model llama3 8b.
-
Pengaturan lingkungan virtual. Pastikan Anda menggunakan Python 3.9 atau lebih tinggi.
python3 -m venv ${PWD}/venv source venv/bin/activate
-
Instal dependensi
-
(Disarankan) Gunakan alat baris HyperPod perintah berikut
# install HyperPod command line tools git clone https://github.com/aws/sagemaker-hyperpod-cli cd sagemaker-hyperpod-cli pip3 install .
-
Jika Anda menggunakan SageMaker HyperPod resep, tentukan yang berikut
# 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>]
-
Wadah: Wadah Neuron
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 model hf_llama3_8b_seq8k_trn1x4_pretrain
Trainium.
-
your_neuron_container
: Wadah Neuron. -
your_model_config
: Konfigurasi model dari bagian pengaturan lingkungan -
(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_seq8k_trn1x4_pretrain \ --persistent-volume-claims fsx-claim:data \ --override-parameters \ '{ "cluster": "k8s", "cluster_type": "k8s", "container": "
<your_neuron_contrainer>
", "recipes.run.name": "hf-llama3", "recipes.run.compile": 0, "recipes.model.model_config": "<your_model_config>
", "instance_type": "trn1.32xlarge", "recipes.data.train_dir": "<your_train_data_dir>
" }'
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
Kehendak beralih ke Completed
saat Anda berlarikubectl get pods
.
Luncurkan pekerjaan pelatihan dengan peluncur resep
Atau, gunakan SageMaker HyperPod resep untuk mengirimkan pekerjaan pelatihan Anda. Untuk mengirimkan pekerjaan pelatihan menggunakan resep, perbarui k8s.yaml
danconfig.yaml
. Jalankan skrip bash untuk model untuk meluncurkannya.
-
Di
k8s.yaml
, perbarui persistent_volume_claims untuk memasang klaim FSx Amazon ke direktori /data di node komputasipersistent_volume_claims: - claimName: fsx-claim mountPath: data
-
Perbarui peluncur_ _hf_llama3_8b_seq8k_trn1x4_pretrain.sh scripts/llama/run
-
your_neuron_contrainer
: Wadah dari bagian pengaturan lingkungan -
your_model_config
: Konfigurasi model dari bagian pengaturan lingkungan
(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 set up their cluster type in /recipes_collection/config.yaml IMAGE="
<your_neuron_contrainer>
" MODEL_CONFIG="<your_model_config>
" SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"} 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_trn1x4_pretrain \ base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \ recipes.run.name="hf-llama3-8b" \ instance_type=trn1.32xlarge \ recipes.model.model_config="$MODEL_CONFIG" \ cluster=k8s \ cluster_type=k8s \ container="${IMAGE}" \ recipes.data.train_dir=$TRAIN_DIR \ recipes.data.val_dir=$VAL_DIR -
-
Luncurkan pekerjaan
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
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
berada di PENDING
atauContainerCreating
, 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
Kehendak beralih ke Completed
saat Anda berlarikubectl get pods
.
Untuk informasi selengkapnya tentang konfigurasi kluster k8s, lihat. Tutorial pra-pelatihan klaster Trainium Kubernetes