

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
<a name="nova-hp-essential-commands-guide"></a>

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)

**Topics**
+ [

## Memasang Resep CLI
](#nova-hp-essential-commands-guide-install)
+ [

## Menghubungkan ke klaster Anda
](#nova-hp-essential-commands-guide-connect)
+ [

## Memulai pekerjaan pelatihan
](#nova-hp-essential-commands-guide-start-job)
+ [

## Memeriksa status pekerjaan
](#nova-hp-essential-commands-guide-status)
+ [

## Memantau log pekerjaan
](#nova-hp-essential-commands-guide-logs)
+ [

## Listing lowongan kerja aktif
](#nova-hp-essential-commands-guide-list-jobs)
+ [

## Membatalkan pekerjaan
](#nova-hp-essential-commands-guide-cancel-job)
+ [

## Menjalankan pekerjaan evaluasi
](#nova-hp-essential-commands-guide-evaluation)
+ [

## Masalah umum
](#nova-hp-essential-commands-guide-troubleshooting)

## Memasang Resep CLI
<a name="nova-hp-essential-commands-guide-install"></a>

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 deactivate`untuk lingkungan conda/anaconda/miniconda
`deactivate`untuk 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 baru](https://docs.python.org/3/library/venv.html) sebelum menjalankan`pip install -e .`, jalankan:  
`python -m venv nova_forge`
`source nova_forge/bin/activate`
Baris perintah Anda sekarang akan ditampilkan (nova\$1forge) di awal prompt Anda
Ini memastikan tidak ada dependensi yang bersaing saat menggunakan CLI

**Tujuan**: Mengapa kita lakukan`pip 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
<a name="nova-hp-essential-commands-guide-connect"></a>

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
<a name="nova-hp-essential-commands-guide-start-job"></a>

**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
<a name="nova-hp-essential-commands-guide-status"></a>

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 | 
| --- |--- |
| `Pending` | Pod diterima tetapi belum dijadwalkan ke node, atau menunggu gambar kontainer ditarik | 
| `Running` | Pod terikat pada sebuah node dengan setidaknya satu kontainer berjalan atau dimulai | 
| `Succeeded` | Semua kontainer berhasil diselesaikan dan tidak akan dimulai ulang | 
| `Failed` | Semua kontainer diakhiri dengan setidaknya satu berakhir dengan kegagalan | 
| `Unknown` | Status pod tidak dapat ditentukan (biasanya karena masalah komunikasi node) | 
| `CrashLoopBackOff` | Container berulang kali gagal; Kubernetes mundur dari upaya restart | 
| `ImagePullBackOff` / `ErrImagePull` | Tidak dapat menarik gambar kontainer dari registri | 
| `OOMKilled` | Kontainer dihentikan karena melebihi batas memori | 
| `Completed` | 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
<a name="nova-hp-essential-commands-guide-logs"></a>

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 dipanggil`my-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-00b3d8a1bf25714e4`di sini mewakili nama mesin Hyperpodfriendly tempat pekerjaan pelatihan Anda berjalan. Ingat bagaimana dalam `kubectl 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-00b3d8a1bf25714e4` dan dengan demikian kita akan menggunakan string itu untuk memilih grup log untuk dilihat. Pilih salah satu yang mengatakan `SagemakerHyperPodTrainingJob/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 membuntuti log Anda menggunakan AWS CLI. Sebelum melakukannya, periksa versi aws cli Anda menggunakan`aws --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
<a name="nova-hp-essential-commands-guide-list-jobs"></a>

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
<a name="nova-hp-essential-commands-guide-cancel-job"></a>

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
<a name="nova-hp-essential-commands-guide-evaluation"></a>

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.json` terlatih)
+ 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 dari `manifest.json` atau 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
<a name="nova-hp-essential-commands-guide-troubleshooting"></a>
+ `ModuleNotFoundError: No module named 'nemo_launcher'`, Anda mungkin harus menambahkan `nemo_launcher` ke jalur python Anda berdasarkan tempat `hyperpod_cli` diinstal. 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
  ```