Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Panduan Per SageMaker HyperPod intah Esensial Amazon
Amazon SageMaker HyperPod menyediakan fungsionalitas baris perintah yang luas untuk mengelola alur kerja pelatihan. Panduan ini mencakup perintah penting untuk operasi umum, mulai dari menghubungkan ke cluster Anda hingga memantau kemajuan pekerjaan.
Prasyarat
Sebelum menggunakan perintah ini, pastikan Anda telah menyelesaikan pengaturan berikut:
-
SageMaker HyperPod cluster dengan RIG dibuat (biasanya di us-east-1)
-
Buket keluaran Amazon S3 dibuat untuk artefak pelatihan
-
Peran IAM dikonfigurasi dengan izin yang sesuai
-
Data pelatihan diunggah dalam format JSONL yang benar
-
FSx untuk sinkronisasi Lustre selesai (verifikasi dalam log cluster pada pekerjaan pertama)
Topik
Menginstal Recipe CLI
Arahkan ke root repositori resep Anda sebelum menjalankan perintah instalasi.
Gunakan repositori Hyperpodrecipes jika menggunakan teknik penyesuaian Non Forge, untuk kustomisasi berbasis Forge lihat repositori resep khusus forge.
Jalankan perintah berikut untuk menginstal SageMaker HyperPod CLI:
catatan
Pastikan Anda tidak berada di lingkungan conda/anaconda/miniconda aktif atau lingkungan virtual lainnya
Jika ya, silakan keluar dari lingkungan menggunakan:
-
conda deactivateuntuk lingkungan conda/anaconda/miniconda -
deactivateuntuk lingkungan virtual python
Jika Anda menggunakan teknik kustomisasi Non Forge, unduh sagemaker-hyperpod-recipes-seperti yang ditunjukkan di bawah ini:
git clone -b release_v2 https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli pip install -e . cd .. root_dir=$(pwd) export PYTHONPATH=${root_dir}/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nemo/nemo_framework_launcher/launcher_scripts:$PYTHONPATH curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh
Jika Anda adalah Pelang gan Forge, Anda harus mengunduh resep menggunakan proses yang disebutkan di bawah ini.
mkdir NovaForgeHyperpodCLI cd NovaForgeHyperpodCLI aws s3 cp s3://nova-forge-c7363-206080352451-us-east-1/v1/ ./ --recursive pip install -e . curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh
Tip
Untuk menggunakan lingkungan virtual baru pip install -e ., jalankan:
-
python -m venv nova_forge -
source nova_forge/bin/activate -
Baris perintah Anda sekarang akan ditampilkan (nova_forge) di awal prompt Anda
-
Ini memastikan tidak ada dependensi yang bersaing saat menggunakan CLI
Tujuan: Mengapa kita melakukannyapip install -e .?
Perintah ini menginstal SageMaker HyperPod CLI dalam mode yang dapat diedit, memungkinkan Anda untuk menggunakan resep yang diperbarui tanpa menginstal ulang setiap kali. Ini juga memungkinkan Anda untuk menambahkan resep baru yang dapat diambil CLI secara otomatis.
Menghubungkan ke cluster Anda
Hubungkan SageMaker HyperPod CLI ke cluster Anda sebelum menjalankan pekerjaan apa pun:
export AWS_REGION=us-east-1 && SageMaker HyperPod connect-cluster --cluster-name <your-cluster-name> --region us-east-1
penting
Perintah ini membuat file konteks (/tmp/hyperpod_context.json) yang diperlukan perintah berikutnya. Jika Anda melihat kesalahan tentang file ini tidak ditemukan, jalankan kembali perintah connect.
Kiat pro: Anda dapat lebih lanjut mengkonfigurasi cluster Anda untuk selalu menggunakan kubeflow namespace dengan menambahkan --namespace
kubeflow argumen ke perintah Anda sebagai berikut:
export AWS_REGION=us-east-1 && \ hyperpod connect-cluster \ --cluster-name <your-cluster-name> \ --region us-east-1 \ --namespace kubeflow
Ini menghemat upaya menambahkan perintah -n kubeflow di setiap saat berinteraksi dengan pekerjaan Anda.
Memulai pekerjaan pelatihan
catatan
Jika menjalankan PPO/RFT pekerjaan, pastikan Anda menambahkan pengaturan pemilih label src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/cluster/k8s.yaml agar semua pod dijadwalkan pada node yang sama.
label_selector: required: sagemaker.amazonaws.com/instance-group-name: - <rig_group>
Luncurkan pekerjaan pelatihan menggunakan resep dengan penggantian parameter opsional:
hyperpod start-job -n kubeflow \ --recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_p4d_gpu_lora_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest" }'
Output yang diharapkan:
Final command: python3 <path_to_your_installation>/NovaForgeHyperpodCLI/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=fine-tuning/nova/nova_micro_p5_gpu_sft cluster_type=k8s cluster=k8s base_results_dir=/local/home/<username>/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" container="708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX-latest" Prepared output directory at /local/home/<username>/results/<job-name>/k8s_templates Found credentials in shared credentials file: ~/.aws/credentials Helm script created at /local/home/<username>/results/<job-name>/<job-name>_launch.sh Running Helm script: /local/home/<username>/results/<job-name>/<job-name>_launch.sh NAME: <job-name> LAST DEPLOYED: Mon Sep 15 20:56:50 2025 NAMESPACE: kubeflow STATUS: deployed REVISION: 1 TEST SUITE: None Launcher successfully generated: <path_to_your_installation>/NovaForgeHyperpodCLI/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT { "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/<your-cluster-name>" }
Memeriksa status pekerjaan
Pantau pekerjaan berjalan Anda menggunakan kubectl:
kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep <your-job-name>)
Memahami status pod
Tabel berikut menjelaskan status pod umum:
Status |
Deskripsi |
|---|---|
|
Pod diterima tetapi belum dijadwalkan ke node, atau menunggu gambar kontainer ditarik |
|
Pod terikat ke node dengan setidaknya satu kontainer berjalan atau dimulai |
|
Semua kontainer berhasil diselesaikan dan tidak akan restart |
|
Semua kontainer dihentikan dengan setidaknya satu berakhir dengan kegagalan |
|
Status pod tidak dapat ditentukan (biasanya karena masalah komunikasi node) |
|
Kontainer berulang kali gagal; Kubernetes mundur dari upaya restart |
|
Tidak dapat menarik gambar kontainer dari registri |
|
Wadah dihentikan karena melebihi batas memori |
|
Pekerjaan atau Pod berhasil diselesaikan (penyelesaian tugas batch) |
Tip
Gunakan ben -w dera untuk menonton pembaruan status pod secara real-time. Tek Ctrl+C an untuk berhenti menonton.
Memantau log pekerjaan
Anda dapat melihat log Anda salah satu dari tiga cara:
Menggunakan CloudWatch
Log Anda tersedia di AWS akun Anda yang berisi Hyperpodcluster di bawah. CloudWatch Untuk melihatnya di browser Anda, navigasikan ke CloudWatch beranda di akun Anda dan cari nama cluster Anda. Misalnya, jika cluster Anda di my-hyperpod-rig panggil grup log akan memiliki awalan:
-
Grup log:
/aws/sagemaker/Clusters/my-hyperpod-rig/{UUID} -
Setelah Anda berada di grup log, Anda dapat menemukan log spesifik Anda menggunakan ID instance node seperti -
hyperpod-i-00b3d8a1bf25714e4.-
i-00b3d8a1bf25714e4di sini mewakili nama mesin Hyperpodfriendly tempat pekerjaan pelatihan Anda berjalan. Ingat bagaimana padakubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-cpt-run)output perintah sebelumnya kita menangkap kolom yang disebut NODE. -
Node “master” yang dijalankan dalam hal ini berjalan pada hyperpod-
i-00b3d8a1bf25714e4dan dengan demikian kita akan menggunakan string itu untuk memilih grup log untuk dilihat. Pilih salah satu yang mengatakanSagemakerHyperPodTrainingJob/rig-group/[NODE]
-
Menggunakan CloudWatch Wawasan
Jika Anda memiliki nama pekerjaan Anda dan tidak ingin melalui semua langkah di atas, Anda cukup menanyakan semua log di bawah /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID} untuk menemukan log individu.
CPT:
fields @timestamp, @message, @logStream, @log | filter @message like /(?i)Starting CPT Job/ | sort @timestamp desc | limit 100
Untuk penyelesaian pekerjaan ganti Starting CPT Job dengan CPT Job
completed
Kemudian Anda dapat mengklik hasil dan memilih salah satu yang mengatakan “Epoch 0" karena itu akan menjadi node master Anda.
Menggunakan AWS CLI
Anda dapat memilih untuk mengekor log Anda menggunakan AWS CLI. Sebelum melakukannya, silakan periksa AWS CLI versi Anda menggunakanaws --version. Disarankan juga untuk menggunakan skrip utilitas ini yang membantu dalam pelacakan log langsung di terminal Anda
untuk V1:
aws logs get-log-events \ --log-group-name /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --start-from-head | jq -r '.events[].message'
untuk V2:
aws logs tail /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --since 10m \ --follow
Mendaftarkan pekerjaan aktif
Lihat semua pekerjaan yang berjalan di cluster Anda:
hyperpod list-jobs -n kubeflow
Contoh keluaran:
{ "jobs": [ { "Name": "test-run-nhgza", "Namespace": "kubeflow", "CreationTime": "2025-10-29T16:50:57Z", "State": "Running" } ] }
Membatalkan pekerjaan
Hentikan pekerjaan yang sedang berjalan kapan saja:
hyperpod cancel-job --job-name <job-name> -n kubeflow
Menemukan nama pekerjaan Anda
Opsi 1: Dari resep Anda
Nama pekerjaan ditentukan di run blok resep Anda:
run: name: "my-test-run" # This is your job name model_type: "amazon.nova-micro-v1:0:128k" ...
Opsi 2: Dari perintah list-jobs
Gunakan hyperpod list-jobs -n kubeflow dan salin Name bidang dari output.
Menjalankan pekerjaan evaluasi
Evaluasi model terlatih atau model dasar menggunakan resep evaluasi.
Prasyarat
Sebelum menjalankan pekerjaan evaluasi, pastikan Anda memiliki:
-
Pos pemeriksaan Amazon S3 URI dari
manifest.jsonfile pekerjaan pelatihan Anda (untuk model terlatih) -
Dataset evaluasi diunggah ke Amazon S3 dalam format yang benar
-
Jalur keluaran Amazon S3 untuk hasil evaluasi
Perintah
Jalankan perintah berikut untuk memulai pekerjaan evaluasi:
hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'
Deskripsi parameter:
-
recipes.run.name: Nama unik untuk pekerjaan evaluasi Anda -
recipes.run.model_name_or_path: URI Amazon S3 darimanifest.jsonatau jalur model dasar (mis.,nova-micro/prod) -
recipes.run.output_s3_path: Lokasi Amazon S3 untuk hasil evaluasi -
recipes.run.data_s3_path: Lokasi Amazon S3 dari kumpulan data evaluasi Anda
Tips:
-
Model-specific resep: Setiap ukuran model (mikro, lite, pro) memiliki resep evaluasi sendiri
-
Evaluasi model dasar: Gunakan jalur model dasar (misalnya,
nova-micro/prod) alih-alih URI pos pemeriksaan untuk mengevaluasi model dasar
Format data evaluasi
Format masukan (JSONL):
{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }
Format keluaran:
{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }
Deskripsi bidang:
-
prompt: Input yang diformat dikirim ke model -
inference: Respon yang dihasilkan model -
gold: Diharapkan jawaban benar dari kumpulan data input -
metadata: Metadata opsional dilewatkan dari input
Masalah umum
-
ModuleNotFoundError: No module named 'nemo_launcher', Anda mungkin harus menambahkannemo_launcherke jalur python Anda berdasarkan dihyperpod_climana diinstal. Perintah sampel:export PYTHONPATH=<path_to_hyperpod_cli>/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nemo/nemo_framework_launcher/launcher_scripts:$PYTHONPATH -
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/hyperpod_current_context.json'menunjukkan Anda melewatkan menjalankan perintah cluster hyperpod connect. -
Jika Anda tidak melihat pekerjaan Anda dijadwalkan, periksa kembali apakah output SageMaker HyperPod CLI Anda memiliki bagian ini dengan nama pekerjaan dan metadata lainnya. Jika tidak, instal ulang bagan helm dengan menjalankan:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh rm -f ./get_helm.sh