Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Panduan Perintah SageMaker HyperPod Penting 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 klaster 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)
-
Output bucket Amazon S3 yang dibuat untuk melatih artefak
-
Peran IAM dikonfigurasi dengan izin yang sesuai
-
Data pelatihan diunggah dalam format JSONL yang benar
-
FSx untuk sinkronisasi Lustre selesai (verifikasi di log cluster pada pekerjaan pertama)
Topik
Memasang Resep CLI
Arahkan ke root repositori resep Anda sebelum menjalankan perintah instalasi.
Gunakan repositori Hyperpodrecipes jika menggunakan teknik kustomisasi Non Forge, untuk kustomisasi berbasis Forge lihat repositori resep khusus tempa.
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 Pelanggan 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 barupip 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 lakukanpip 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 oleh CLI secara otomatis.
Menghubungkan ke klaster 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 dibutuhkan perintah berikutnya. Jika Anda melihat kesalahan tentang file ini tidak ditemukan, jalankan kembali perintah connect.
Kiat pro: Anda dapat mengonfigurasi klaster Anda lebih lanjut 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 Anda untuk menambahkan -n kubeflow di setiap perintah 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 Anda yang sedang berjalan 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 pada sebuah node dengan setidaknya satu kontainer berjalan atau dimulai |
|
Semua kontainer berhasil diselesaikan dan tidak akan dimulai ulang |
|
Semua kontainer diakhiri dengan setidaknya satu berakhir dengan kegagalan |
|
Status pod tidak dapat ditentukan (biasanya karena masalah komunikasi node) |
|
Container berulang kali gagal; Kubernetes mundur dari upaya restart |
|
Tidak dapat menarik gambar kontainer dari registri |
|
Kontainer dihentikan karena melebihi batas memori |
|
Job atau Pod berhasil diselesaikan (penyelesaian pekerjaan batch) |
Tip
Gunakan -w bendera untuk menonton pembaruan status pod secara real-time. Tekan Ctrl+C 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 klaster Anda dipanggilmy-hyperpod-rig, 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 dalamkubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-cpt-run)output perintah sebelumnya kita menangkap kolom yang disebut NODE. -
Run node “master” 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 yang berguna 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 AWS CLI
Anda dapat memilih untuk mengekor log Anda menggunakan AWS CLI. Sebelum melakukannya, periksa versi aws cli 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
Listing lowongan kerja 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 daftar-pekerjaan
Gunakan hyperpod list-jobs -n kubeflow dan salin Name bidang dari output.
Menjalankan pekerjaan evaluasi
Mengevaluasi model terlatih atau model dasar menggunakan resep evaluasi.
Prasyarat
Sebelum menjalankan pekerjaan evaluasi, pastikan Anda memiliki:
-
Checkpoint Amazon S3 URI dari file pekerjaan pelatihan Anda (untuk model
manifest.jsonterlatih) -
Dataset evaluasi diunggah ke Amazon S3 dalam format yang benar
-
Output jalur 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: Amazon S3 URI 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
Kiat:
-
Resep khusus model: Setiap ukuran model (mikro, lite, pro) memiliki resep evaluasi sendiri
-
Evaluasi model dasar: Gunakan jalur model dasar (misalnya,
nova-micro/prod) alih-alih pos pemeriksaan URIs 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: Respons yang dihasilkan model -
gold: Diharapkan jawaban yang benar dari dataset input -
metadata: Metadata opsional dilewatkan dari input
Masalah umum
-
ModuleNotFoundError: No module named 'nemo_launcher', Anda mungkin harus menambahkannemo_launcherke jalur python Anda berdasarkan tempathyperpod_clidiinstal. Contoh perintah: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 jadwal pekerjaan Anda, 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