

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kustomisasi Amazon Nova aktif SageMaker HyperPod
<a name="nova-hp"></a>

Anda dapat menyesuaikan model Amazon Nova, termasuk model Amazon Nova 2.0 yang disempurnakan, menggunakan [resep Amazon Nova](nova-model-recipes.md) dan melatihnya di Hyperpod. Resep adalah file konfigurasi YAMM yang memberikan detail ke SageMaker AI tentang cara menjalankan pekerjaan penyesuaian model Anda. SageMaker HyperPod mendukung dua jenis layanan: Forge dan Non-Forge.

Hyperpod menawarkan komputasi berkinerja tinggi dengan instans GPU yang dioptimalkan dan FSx Amazon untuk penyimpanan Lustre, pemantauan yang kuat melalui integrasi dengan alat TensorBoard seperti, manajemen pos pemeriksaan yang fleksibel untuk peningkatan berulang, penyebaran tanpa batas ke Amazon Bedrock untuk inferensi, dan pelatihan terdistribusi multi-node yang efisien yang dapat diskalakan - semuanya bekerja sama untuk menyediakan organisasi dengan lingkungan yang aman, berkinerja, dan fleksibel untuk menyesuaikan model Amazon Nova dengan kebutuhan bisnis spesifik mereka.

Kustomisasi Amazon Nova pada artefak model SageMaker HyperPod toko termasuk pos pemeriksaan model dalam bucket Amazon S3 yang dikelola layanan. Artefak dalam bucket yang dikelola layanan dienkripsi dengan kunci yang dikelola AI. SageMaker AWS KMS Bucket Amazon S3 yang dikelola layanan saat ini tidak mendukung enkripsi data menggunakan kunci KMS yang dikelola pelanggan. Anda dapat menggunakan lokasi pos pemeriksaan ini untuk pekerjaan evaluasi atau inferensi Amazon Bedrock.

Harga standar dapat berlaku untuk instans komputasi, penyimpanan Amazon S3, dan untuk Lustre. FSx Untuk detail harga, lihat Harga [Hyperpod, harga](https://aws.amazon.com/sagemaker-ai/pricing/) [Amazon S3](https://aws.amazon.com/s3/pricing/), [FSx dan untuk](https://aws.amazon.com/fsx/lustre/pricing/) harga Lustre.

## Persyaratan komputasi untuk model Amazon Nova 2
<a name="nova-hp-compute-2"></a>

Tabel berikut merangkum persyaratan komputasi untuk SageMaker HyperPod dan pelatihan pekerjaan pelatihan SageMaker AI untuk model Amazon Nova 2.


**Persyaratan Pelatihan Nova 2**  

| Teknik Pelatihan | Contoh Minimum | Tipe Instans | Hitungan GPU | Catatan | Model yang Didukung | 
| --- |--- |--- |--- |--- |--- |
| SFT (LoRa) | 4 | P5.48xBesar | 16 | Penyetelan halus yang hemat parameter | Nova 2 Lite | 
| SFT (Peringkat Penuh) | 4 | P5.48xBesar | 32 | Penyetelan halus model lengkap | Nova 2 Lite | 
| RFT tentang Pekerjaan SageMaker Pelatihan (LoRa) | 2 | P5.48xBesar | 16 | Fungsi Hadiah Kustom di AWS Lingkungan Anda | Nova 2 Lite | 
| RFT pada Pekerjaan SageMaker Pelatihan (Peringkat Penuh) | 4 | P5.48xBesar | 32 | Panjang konteks 32K | Nova 2 Lite | 
| RFT pada SageMaker HyperPod | 8 | P5.48xBesar | 64 | Panjang konteks standar 8192 | Nova 2 Lite | 
| CPT | 4 | P5.48xBesar | 16 | Memproses sekitar 400 juta token per instans per hari | Nova 2 Lite | 

Untuk mengoptimalkan alur kerja kustomisasi model Amazon Nova Anda di Hyperpod, ikuti praktik terbaik yang direkomendasikan ini untuk pelatihan yang efisien, manajemen sumber daya, dan penerapan model yang berhasil.

## Praktik Terbaik untuk kustomisasi Amazon Nova
<a name="best-practices"></a>

### Ikhtisar
<a name="nova-customization-overview"></a>

Bagian ini memberikan ikhtisar teknik penyesuaian dan membantu Anda memilih pendekatan terbaik untuk kebutuhan dan data yang tersedia.

#### Dua tahap pelatihan LLM
<a name="nova-llm-training-stages"></a>

Pelatihan model bahasa besar terdiri dari dua tahap utama: pra-pelatihan dan pasca-pelatihan. Selama pra-pelatihan, model memproses token teks mentah dan mengoptimalkan prediksi token berikutnya. Proses ini menciptakan pelengkap pola yang menyerap sintaks, semantik, fakta, dan pola penalaran dari web dan teks yang dikuratori. Namun, model yang telah dilatih sebelumnya tidak memahami instruksi, tujuan pengguna, atau perilaku yang sesuai dengan konteks. Ini melanjutkan teks dalam gaya apa pun yang sesuai dengan distribusi pelatihannya. Model pra-terlatih melengkapi secara otomatis daripada mengikuti petunjuk, menghasilkan pemformatan yang tidak konsisten, dan dapat mencerminkan bias yang tidak diinginkan atau konten yang tidak aman dari data pelatihan. Pra-pelatihan membangun kompetensi umum, bukan kegunaan tugas.

Pasca-pelatihan mengubah pelengkap pola menjadi asisten yang berguna. Anda menjalankan beberapa putaran Supervised Fine-Tuning (SFT) untuk mengajarkan model mengikuti instruksi, mematuhi skema dan kebijakan, memanggil alat, dan menghasilkan output yang andal dengan meniru demonstrasi berkualitas tinggi. Penyelarasan ini mengajarkan model untuk menanggapi permintaan sebagai tugas daripada teks untuk melanjutkan. Anda kemudian menerapkan Reinforcement Fine-Tuning (RFT) untuk mengoptimalkan perilaku menggunakan umpan balik yang terukur (seperti verifier atau an LLM-as-a-judge), menyeimbangkan trade-off seperti akurasi versus singkatnya, keamanan versus cakupan, atau penalaran multi-langkah di bawah kendala. Dalam praktiknya, Anda mengganti SFT dan RFT dalam siklus untuk membentuk model yang telah dilatih sebelumnya menjadi sistem yang andal dan selaras dengan kebijakan yang melakukan tugas-tugas kompleks secara konsisten.

### Pilih pendekatan kustomisasi yang tepat
<a name="nova-choosing-customization-approach"></a>

Pada bagian ini kita akan membahas strategi kustomisasi pasca pelatihan: RFT dan SFT.

#### Penyetelan halus penguatan (RFT)
<a name="nova-reinforcement-fine-tuning"></a>

Penyetelan halus penguatan meningkatkan kinerja model melalui sinyal umpan balik — skor terukur atau penghargaan yang menunjukkan kualitas respons — daripada pengawasan langsung dengan jawaban yang benar dan tepat. Tidak seperti fine-tuning tradisional yang diawasi yang belajar dari pasangan input-output, RFT menggunakan fungsi hadiah untuk mengevaluasi respons model dan secara iteratif mengoptimalkan model untuk memaksimalkan penghargaan ini. Pendekatan ini bekerja dengan baik untuk tugas-tugas di mana mendefinisikan output yang benar secara tepat menantang, tetapi Anda dapat mengukur kualitas respons dengan andal. RFT memungkinkan model untuk mempelajari perilaku dan preferensi yang kompleks melalui uji coba dan umpan balik, menjadikannya ideal untuk aplikasi yang memerlukan pengambilan keputusan bernuansa, pemecahan masalah yang kreatif, atau kepatuhan terhadap kriteria kualitas tertentu yang dapat Anda evaluasi secara terprogram. Misalnya, menjawab pertanyaan hukum yang kompleks adalah kasus penggunaan yang ideal untuk RFT karena Anda ingin mengajarkan model bagaimana bernalar lebih baik untuk menjawab pertanyaan dengan lebih akurat.

##### Cara kerjanya
<a name="nova-rft-how-it-works"></a>

Dalam penyempurnaan penguatan, Anda mulai dari garis dasar yang disetel instruksi dan memperlakukan setiap prompt seperti turnamen kecil. Untuk masukan yang diberikan, Anda mengambil sampel beberapa jawaban kandidat dari model, menilai masing-masing dengan fungsi hadiah, lalu memberi peringkat dalam kelompok itu. Langkah pembaruan mendorong model untuk membuat kandidat dengan skor lebih tinggi lebih mungkin di lain waktu dan yang mendapat skor lebih rendah lebih kecil kemungkinannya, sementara stay-close-to-baseline kendala membuat perilaku tidak melayang atau menjadi bertele-tele atau eksploitatif. Anda mengulangi loop ini melalui banyak petunjuk, menyegarkan hard case, mengencangkan verifier atau menilai rubrik saat Anda melihat eksploitasi, dan terus melacak metrik tugas.

##### Kapan menggunakan RFT
<a name="nova-rft-when-to-use"></a>

Tugas yang paling diuntungkan dari RFT memiliki beberapa sifat. Mereka memiliki sinyal keberhasilan yang terukur bahkan ketika satu output yang benar sulit ditentukan. Mereka mengakui kredit sebagian atau kualitas bertingkat sehingga Anda dapat memberi peringkat yang lebih baik dibandingkan jawaban yang lebih buruk dalam prompt atau menggunakan fungsi hadiah. Mereka melibatkan beberapa tujuan yang harus seimbang (seperti akurasi dengan singkatnya, kejelasan, keamanan, atau biaya). Mereka membutuhkan kepatuhan terhadap batasan eksplisit yang dapat Anda periksa secara terprogram. Mereka beroperasi dalam pengaturan yang dimediasi alat atau berbasis lingkungan di mana hasil dapat diamati (keberhasilan atau kegagalan, latensi, penggunaan sumber daya). Mereka terjadi dalam rezim label rendah di mana mengumpulkan target emas mahal tetapi umpan balik otomatis atau berbasis rubrik berlimpah. RFT bekerja paling baik ketika Anda dapat mengubah kualitas menjadi skalar atau peringkat yang andal dan ingin model tersebut secara istimewa memperkuat perilaku dengan skor lebih tinggi tanpa memerlukan target berlabel lengkap.

**Pertimbangkan metode lain ketika:**
+ Anda memiliki pasangan input-output berlabel yang berlimpah dan andal - Gunakan SFT
+ Kesenjangan utama adalah pengetahuan atau jargon — Gunakan retrieval-augmented generation (RAG)
+ Sinyal hadiah Anda berisik atau tidak dapat diandalkan dan Anda tidak dapat memperbaikinya dengan rubrik atau catur yang lebih baik — Stabilkan itu terlebih dahulu sebelum RFT

##### Kapan tidak menggunakan RFT
<a name="nova-rft-when-not-to-use"></a>

Hindari RFT dalam situasi ini:
+ Anda dapat dengan murah menghasilkan pasangan input-output berlabel yang andal (SFT lebih sederhana, lebih murah, dan lebih stabil)
+ Kesenjangan adalah pengetahuan atau jargon daripada perilaku (gunakan RAG)
+ Sinyal hadiah Anda berisik, jarang, mudah dimainkan, atau mahal atau lambat untuk dihitung (perbaiki evaluator terlebih dahulu)
+ Kinerja dasar mendekati nol (bootstrap dengan SFT sebelum mengoptimalkan preferensi)
+ Tugas ini memiliki skema deterministik, pemformatan ketat, atau satu jawaban yang benar (SFT atau validasi berbasis aturan bekerja lebih baik)
+ Latensi ketat atau anggaran biaya tidak dapat menyerap pengambilan sampel tambahan atau eksplorasi yang dibutuhkan RFT
+ Kendala keamanan atau kebijakan tidak ditentukan secara jelas dan dapat ditegakkan dalam hadiah

Jika Anda dapat menunjuk ke “jawaban yang benar,” gunakan SFT. Jika Anda membutuhkan pengetahuan baru, gunakan RAG. Gunakan RFT hanya setelah Anda memiliki baseline yang solid dan fungsi hadiah yang kuat, cepat, hard-to-exploit.

#### Penyetelan halus yang diawasi (SFT)
<a name="nova-supervised-fine-tuning"></a>

Penyetelan halus yang diawasi melatih LLM pada kumpulan data pasangan input-output berlabel manusia untuk tugas Anda. Anda memberikan contoh petunjuk (pertanyaan, instruksi, dan sebagainya) dengan tanggapan yang benar atau diinginkan, dan terus melatih model pada contoh-contoh ini. Model menyesuaikan bobotnya untuk meminimalkan kerugian yang diawasi (biasanya lintas entropi antara prediksi dan token keluaran target). Ini adalah pelatihan yang sama yang digunakan dalam sebagian besar tugas pembelajaran mesin yang diawasi, diterapkan untuk mengkhususkan LLM.

SFT mengubah perilaku, bukan pengetahuan. Itu tidak mengajarkan model fakta atau jargon baru yang tidak dilihatnya dalam pra-pelatihan. Ini mengajarkan model bagaimana menjawab, bukan apa yang harus diketahui. Jika Anda membutuhkan pengetahuan domain baru (seperti terminologi internal), gunakan retrieval-augmented generation (RAG) untuk menyediakan konteks itu pada waktu inferensi. SFT kemudian menambahkan perilaku mengikuti instruksi yang diinginkan di atas.

##### Cara kerjanya
<a name="nova-sft-how-it-works"></a>

SFT mengoptimalkan LLM dengan meminimalkan kerugian lintas entropi rata-rata pada token respons, memperlakukan token prompt sebagai konteks dan menutupinya dari kerugian. Model menginternalisasi gaya target, struktur, dan aturan keputusan Anda, belajar untuk menghasilkan penyelesaian yang benar untuk setiap prompt. Misalnya, untuk mengklasifikasikan dokumen ke dalam kategori kustom, Anda menyempurnakan model dengan petunjuk (teks dokumen) dan pelengkapan berlabel (label kategori). Anda melatih pasangan tersebut sampai model mengeluarkan label yang tepat untuk setiap prompt dengan probabilitas tinggi.

Anda dapat melakukan SFT dengan sedikitnya beberapa ratus contoh dan skala hingga beberapa ratus ribu. Sampel SFT harus berkualitas tinggi dan langsung selaras dengan perilaku model yang diinginkan.

##### Kapan menggunakan SFT
<a name="nova-sft-when-to-use"></a>

Gunakan SFT ketika Anda memiliki tugas yang terdefinisi dengan baik dengan output yang diinginkan dengan jelas. Jika Anda dapat secara eksplisit menyatakan “Diberikan input X, output yang benar adalah Y” dan mengumpulkan contoh pemetaan tersebut, fine-tuning yang diawasi adalah pilihan yang baik. SFT unggul dalam skenario ini:
+ **Tugas klasifikasi terstruktur atau kompleks** - Klasifikasi dokumen atau kontrak internal ke dalam banyak kategori khusus. Dengan SFT, model mempelajari kategori-kategori spesifik ini lebih baik daripada mendorong saja.
+ **Tugas penjawab pertanyaan atau transformasi dengan jawaban yang diketahui - Sempurnakan** model untuk menjawab pertanyaan dari basis pengetahuan perusahaan, atau mengonversi data antar format di mana setiap input memiliki respons yang benar.
+ **Pemformatan dan konsistensi gaya** — Latih model untuk selalu merespons dalam format atau nada tertentu dengan menyempurnakan contoh format atau nada yang benar. Misalnya, pelatihan pada pasangan respons cepat yang menunjukkan suara merek tertentu mengajarkan model untuk menghasilkan output dengan gaya itu. Perilaku mengikuti instruksi sering kali awalnya diajarkan melalui SFT pada contoh perilaku asisten yang baik yang dikuratori.

SFT adalah cara paling langsung untuk mengajarkan LLM keterampilan atau perilaku baru ketika Anda dapat menentukan seperti apa perilaku yang benar. Ini menggunakan pemahaman bahasa model yang ada dan memfokuskannya pada tugas Anda. Gunakan SFT ketika Anda ingin model melakukan hal tertentu dan Anda memiliki atau dapat membuat kumpulan data contoh.

Gunakan SFT saat Anda dapat merakit pasangan prompt dan respons berkualitas tinggi yang mencerminkan perilaku yang Anda inginkan. Ini cocok dengan tugas dengan target yang jelas atau format deterministik seperti skema, fungsi atau panggilan alat, dan jawaban terstruktur di mana imitasi adalah sinyal pelatihan yang sesuai. Tujuannya adalah membentuk perilaku: mengajarkan model untuk memperlakukan petunjuk sebagai tugas, mengikuti instruksi, mengadopsi kebijakan nada dan penolakan, dan menghasilkan pemformatan yang konsisten. Rencanakan setidaknya ratusan demonstrasi, dengan kualitas data, konsistensi, dan deduplikasi lebih penting daripada volume mentah. Untuk pembaruan yang mudah dan hemat biaya, gunakan metode hemat parameter seperti Adaptasi Peringkat Rendah untuk melatih adaptor kecil sambil membiarkan sebagian besar tulang punggung tidak tersentuh.

##### Kapan tidak menggunakan SFT
<a name="nova-sft-when-not-to-use"></a>

Jangan gunakan SFT ketika kesenjangan adalah pengetahuan daripada perilaku. Itu tidak mengajarkan model fakta baru, jargon, atau peristiwa baru-baru ini. Dalam kasus tersebut, gunakan retrieval-augmented generation untuk membawa pengetahuan eksternal pada kesimpulan. Hindari SFT ketika Anda dapat mengukur kualitas tetapi tidak dapat memberi label satu jawaban yang benar. Gunakan penyetelan penguatan dengan imbalan yang dapat diverifikasi atau untuk mengoptimalkan hadiah tersebut LLM-as-a-judge secara langsung. Jika kebutuhan atau konten Anda sering berubah, andalkan pengambilan dan penggunaan alat daripada melatih ulang model.

**Topics**
+ [Persyaratan komputasi untuk model Amazon Nova 2](#nova-hp-compute-2)
+ [Praktik Terbaik untuk kustomisasi Amazon Nova](#best-practices)
+ [Nova Forge SDK](nova-hp-forge-sdk.md)
+ [Membuat cluster SageMaker HyperPod EKS dengan grup instans terbatas (RIG)](nova-hp-cluster.md)
+ [Panduan Perintah SageMaker HyperPod Penting Amazon](nova-hp-essential-commands-guide.md)
+ [Akses dan pengaturan Nova Forge untuk](nova-forge-hp-access.md)
+ [Pelatihan untuk model Amazon Nova](nova-hp-training.md)
+ [Mengevaluasi model terlatih Anda](nova-hp-evaluate.md)
+ [Memantau HyperPod pekerjaan dengan MLflow](nova-hp-mlflow.md)

# Nova Forge SDK
<a name="nova-hp-forge-sdk"></a>

Amazon Nova Forge SDK adalah SDK Python komprehensif yang menyediakan antarmuka terprogram terpadu untuk siklus hidup kustomisasi model Amazon Amazon Nova yang lengkap. SDK menyederhanakan penyesuaian model dengan menawarkan API tunggal yang konsisten untuk pelatihan, evaluasi, pemantauan, penerapan, dan inferensi di seluruh platform Amazon SageMaker dan Amazon Bedrock.

Untuk informasi selengkapnya, lihat [Nova Forge SDK](nova-forge-sdk.md).

# Membuat cluster SageMaker HyperPod EKS dengan grup instans terbatas (RIG)
<a name="nova-hp-cluster"></a>

Untuk menyesuaikan model pada Hyperpod, infrastruktur yang diperlukan harus disiapkan. Untuk detail tentang menyiapkan kluster SageMaker HyperPod EKS dengan grup instans terbatas (RIG), kunjungi [lokakarya](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US), yang menyediakan panduan terperinci tentang proses penyiapan.

# 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 CLI**  
Anda dapat memilih untuk membuntuti log Anda menggunakan file AWS CLI. Sebelum melakukannya, silakan periksa AWS CLI versi 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
  ```

# Akses dan pengaturan Nova Forge untuk
<a name="nova-forge-hp-access"></a>

Untuk mengatur Amazon Nova Forge untuk digunakan dengan Jobs, Anda perlu:
+ Berlangganan Amazon Nova Forge
+ Siapkan cluster

**Topics**
+ [Berlangganan Amazon Nova Forge](nova-forge-subscribing.md)
+ [Menyiapkan infrastruktur](nova-forge-hyperpod-setup.md)
+ [AI yang bertanggung jawab](nova-forge-responsible-ai.md)

# Berlangganan Amazon Nova Forge
<a name="nova-forge-subscribing"></a>

Untuk mengakses fitur Amazon Nova Forge, selesaikan langkah-langkah berikut:

1. Verifikasi akses administrator ke AWS akun.

1. Arahkan ke konsol SageMaker AI dan [minta akses ke Amazon Nova Forge](nova-forge.md).

1. Tunggu tim Amazon Nova mengirim email konfirmasi setelah permintaan berlangganan disetujui.

1. Tandai peran eksekusi Anda dengan `forge-subscription` tag. Tag ini diperlukan untuk mengakses fitur Amazon Nova Forge dan pos pemeriksaan. Tambahkan tag berikut ke peran eksekusi Anda:
   + Kunci: `forge-subscription`
   + Nilai: `true`

**catatan**  
Fitur Amazon Nova standar tetap tersedia tanpa berlangganan Forge. Amazon Nova Forge dirancang untuk membangun model perbatasan khusus dengan kontrol dan fleksibilitas di semua fase pelatihan model.

# Menyiapkan infrastruktur
<a name="nova-forge-hyperpod-setup"></a>

Setelah langganan Amazon Nova Forge Anda disetujui, siapkan infrastruktur yang diperlukan untuk menggunakan fitur berkemampuan Forge. Untuk petunjuk rinci tentang membuat kluster EKS dengan grup instans terbatas (RIG), ikuti instruksi [lokakarya](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US).

# AI yang bertanggung jawab
<a name="nova-forge-responsible-ai"></a>

**Pengaturan moderasi konten**: Pelanggan Amazon Nova Forge memiliki akses ke Pengaturan Moderasi Konten yang Dapat Disesuaikan (CCMS) untuk model Amazon Nova Lite 1.0 dan Pro 1.0. CCMS memungkinkan Anda menyesuaikan kontrol moderasi konten agar sesuai dengan kebutuhan bisnis spesifik Anda sambil mempertahankan perlindungan AI yang bertanggung jawab. Untuk menentukan apakah kasus penggunaan bisnis Anda memenuhi syarat untuk CCM, hubungi manajer akun Amazon Web Services Anda.

Amazon Nova Forge menyediakan Toolkit AI Bertanggung Jawab yang mencakup data pelatihan, tolok ukur evaluasi, dan kontrol runtime untuk membantu Anda menyelaraskan model Anda dengan pedoman AI bertanggung jawab Amazon Nova.

**Data pelatihan**: Kategori “RAI” dalam pencampuran data berisi kasus dan skenario yang menekankan prinsip AI yang bertanggung jawab, pertimbangan keselamatan, dan penyebaran teknologi yang bertanggung jawab. Gunakan ini untuk menyelaraskan model Anda secara bertanggung jawab selama pra-pelatihan lanjutan.

**Evaluasi**: Tugas benchmark tersedia untuk menguji kemampuan model Anda dalam mendeteksi dan menolak konten yang tidak pantas, berbahaya, atau salah. Gunakan evaluasi ini untuk mengukur perbedaan antara kinerja model dasar dan kinerja model kustom Anda.

# Pelatihan untuk model Amazon Nova
<a name="nova-hp-training"></a>

Melatih model Amazon Nova SageMaker HyperPod mendukung berbagai teknik termasuk Continued Pre-Training (CPT), Supervised Fine-Tuning (SFT), dan Reinforcement Fine-Tuning (RFT). Setiap teknik melayani kebutuhan kustomisasi yang berbeda dan dapat diterapkan ke versi model Amazon Nova yang berbeda.

**Topics**
+ [Pra-pelatihan lanjutan (CPT)](nova-cpt.md)
+ [Penyetelan halus yang diawasi (SFT)](nova-fine-tune.md)
+ [Penguatan Fine-Tuning (RFT) aktif SageMaker HyperPod](nova-hp-rft.md)

# Pra-pelatihan lanjutan (CPT)
<a name="nova-cpt"></a>

Pre-training lanjutan (CPT) adalah teknik pelatihan yang memperluas fase pra-pelatihan model yayasan dengan mengeksposnya ke teks tambahan yang tidak berlabel dari domain atau korpora tertentu. Tidak seperti fine-tuning yang diawasi, yang membutuhkan pasangan input-output berlabel, CPT melatih dokumen mentah untuk membantu model memperoleh pengetahuan yang lebih dalam tentang domain baru, mempelajari terminologi dan pola penulisan khusus domain, dan beradaptasi dengan jenis konten atau area subjek tertentu.

Pendekatan ini sangat berharga ketika Anda memiliki volume besar (puluhan miliar token) data teks khusus domain, seperti dokumen hukum, literatur medis, dokumentasi teknis, atau konten bisnis berpemilik, dan Anda ingin model tersebut mengembangkan kefasihan asli dalam domain itu. Umumnya, setelah tahap CPT, model perlu menjalani tahap penyetelan instruksi tambahan untuk memungkinkan model menggunakan pengetahuan yang baru diperoleh dan menyelesaikan tugas yang berguna.

**Model yang didukung**  
CPT tersedia untuk model Amazon Nova berikut:
+ Nova 1.0 (Mikro, Lite, Pro)
+ Nova 2.0 (Ringan)

**Kapan menggunakan Nova 1.0 versus Nova 2.0**  
Rangkaian model Amazon Nova menawarkan beberapa titik operasi kinerja harga untuk mengoptimalkan antara akurasi, kecepatan, dan biaya.

Pilih Nova 2.0 saat Anda membutuhkan yang berikut ini:
+ Kemampuan penalaran tingkat lanjut untuk tugas analitis yang kompleks
+ Kinerja unggul dalam pengkodean, matematika, dan pemecahan masalah ilmiah
+ Dukungan panjang konteks yang lebih panjang
+ Performa multibahasa yang lebih baik

**catatan**  
Model yang lebih besar tidak selalu lebih baik. Pertimbangkan tradeoff kinerja biaya dan persyaratan bisnis spesifik Anda saat memilih antara model Nova 1.0 dan Nova 2.0.

# CPT pada Nova 2.0
<a name="nova-cpt-2"></a>

Amazon Nova Lite 2.0 adalah model penalaran yang dilatih pada kumpulan data yang lebih besar dan lebih beragam daripada Nova Lite 1.0. Meskipun merupakan model yang lebih besar, Nova Lite 2.0 memberikan inferensi yang lebih cepat daripada Nova Lite 1.0 sambil menawarkan kemampuan penalaran yang ditingkatkan, panjang konteks yang lebih panjang, dan peningkatan kinerja multibahasa.

CPT di Nova 2.0 memungkinkan Anda untuk memperluas kemampuan canggih ini dengan data spesifik domain Anda, memungkinkan model untuk mengembangkan keahlian mendalam di bidang khusus sambil mempertahankan penalaran dan kemampuan analitisnya yang unggul.

## Contoh resep CPT
<a name="nova-cpt-2-sample-recipe"></a>

Berikut ini adalah contoh resep untuk CPT. Anda dapat menemukan resep ini dan lainnya di repositori [resep](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/training/nova).

```
# Note:
# This recipe can run on p5.48xlarge
# Run config
run:
  name: "my-cpt-run"                           # A descriptive name for your training job
  model_type: "amazon.nova-2-lite-v1:0:256k"   # Model variant specification, do not change
  model_name_or_path: "nova-lite-2/prod"        # Base model path, do not change
  replicas: 8                                   # Number of compute instances for training, allowed values are 4, 8, 16, 32
  data_s3_path: ""                              # Customer data paths
  validation_data_s3_path: ""                   # Customer validation data paths
  output_s3_path: ""                            # Output artifact path,  job-specific configuration - not compatible with standard SageMaker Training Jobs
  mlflow_tracking_uri: ""                       # Required for MLFlow
  mlflow_experiment_name: "my-cpt-experiment"   # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-cpt-run"                 # Optional for MLFlow. Note: leave this field non-empty

## Training specific configs
training_config:
  task_type: cpt
  max_length: 8192                              # Maximum context window size (tokens)
  global_batch_size: 256                        # Global batch size, allowed values are 32, 64, 128, 256.

  trainer:
    max_steps: 10                               # The number of training steps to run total
    val_check_interval: 10                      # The number of steps between running validation. Integer count or float percentage
    limit_val_batches: 2                        # Batches of the validation set to use each trigger

  model:
    hidden_dropout: 0.0                         # Dropout for hidden states, must be between 0.0 and 1.0
    attention_dropout: 0.0                      # Dropout for attention weights, must be between 0.0 and 1.0

  optim:
    optimizer: adam
    lr: 1e-5                                    # Learning rate
    name: distributed_fused_adam                # Optimizer algorithm, do not change
    adam_w_mode: true                           # Enable AdamW mode
    eps: 1e-06                                  # Epsilon for numerical stability
    weight_decay: 0.0                           # L2 regularization strength, must be between 0.0 and 1.0
    adam_beta1: 0.9                             # Beta1 for Adam optimizer
    adam_beta2: 0.95                            # Beta2 for Adam optimizer
    sched:
      warmup_steps: 10                          # Learning rate warmup steps
      constant_steps: 0                         # Steps at constant learning rate
      min_lr: 1e-6                              # Minimum learning rate, must be lower than lr
```

## Persiapan data untuk CPT pada 2.0
<a name="nova-cpt-2-data-prep"></a>

**Persyaratan format data**  
Kumpulan data pelatihan dan validasi harus berupa file JSONL mengikuti format yang ditunjukkan di bawah ini, di mana setiap baris berisi objek JSON yang mewakili percakapan dengan bidang dan struktur yang diperlukan. Inilah contohnya:

```
{"text": "AWS stands for Amazon Web Services"}
{"text": "Amazon SageMaker is a fully managed machine learning service"}
{"text": "Amazon Bedrock is a fully managed service for foundation models"}
```

Entri teks harus berisi konten berkualitas tinggi yang mengalir secara alami yang mewakili domain target.

Uji apakah data tersebut mampu diubah menjadi [format Arrow](https://huggingface.co/docs/datasets/en/about_arrow). Gunakan skrip python di bawah ini untuk membantunya. Pastikan `datasets==2.18.0` versi minimal digunakan:

```
from datasets import load_dataset, load_from_disk
from pathlib import Path

input_path = Path("<Your jsonl file>")
output_path = Path("<Your output directory>")

dataset = load_dataset("json", data_files=str(input_path), split="train")
dataset.save_to_disk(str(output_path), max_shard_size="1GB")

try:
  test_dataset = datasets.load_from_disk(output_dir)
  print(f"Dataset loaded successfully ✅! Contains {len(test_dataset)} samples")
except Exception as e:
  print(e)
```

Ini harus mencetak jumlah baris yang sama yang ada di file JSONL.

Saat menggunakan datamixing, jalankan pekerjaan pertama dengan. `max_steps=2` Ini akan membantu membuat pengoptimalan di cluster untuk akses data dan memvalidasi bahwa semua datamix tersedia.

**Cara menyiapkan data untuk CPT**  
Data pelatihan adalah faktor penentu yang paling penting untuk keberhasilan pra-pelatihan berkelanjutan. Sementara data CPT sering digambarkan sebagai “tidak berlabel,” kenyataannya jauh lebih bernuansa. Bagaimana data disusun, diformat, dan disajikan menentukan apakah model akan memperoleh pengetahuan dan keterampilan yang diperlukan untuk kasus penggunaan bisnis.

### Mempersiapkan kumpulan data bisnis terstruktur untuk CPT
<a name="nova-cpt-2-structured-data"></a>

Ini adalah tantangan umum bagi perusahaan dan organisasi yang membangun model pondasi khusus dalam domain mereka. Sebagian besar bisnis memiliki repositori data terstruktur yang kaya: katalog produk, profil pengguna, log transaksi, pengiriman formulir, panggilan API, dan metadata operasional. Pada pandangan pertama, ini terlihat sangat berbeda dari teks web tidak terstruktur yang biasanya digunakan dalam pra-pelatihan standar.

Untuk belajar secara efektif dari data bisnis terstruktur, pikirkan baik-baik tentang tugas-tugas hilir dan rancang presentasi data untuk memaksa model mempelajari hubungan prediktif yang tepat.

Untuk membuka potensi penuh dari pra-pelatihan berkelanjutan, pertimbangkan:
+ Tugas apa yang harus dilakukan model pada waktu inferensi
+ Informasi apa yang ada dalam data mentah
+ Bagaimana menyusun data itu sehingga model belajar mengekstrak dan memanipulasi informasi dengan benar

Cukup membuang data terstruktur ke dalam pelatihan tidak akan mengajarkan model untuk bernalar tentang hal itu. Secara aktif membentuk presentasi data untuk memandu apa yang dipelajari model.

Pada bagian berikut, ada tinjauan literatur yang menunjukkan pentingnya augmentasi data dan memberikan contoh strategi augmentasi untuk data bisnis terstruktur yang akan memberikan ide-ide berguna tentang bagaimana memperlakukan dan mengatur dataset bisnis untuk CPT.

**Data terstruktur untuk CPT dalam literatur**  
CPT dapat mengemas fakta domain ke dalam model tetapi sering gagal membuat fakta tersebut dapat diambil dan dimanipulasi ketika input atau tugas bergeser. Eksperimen terkontrol menunjukkan bahwa tanpa augmentasi yang beragam selama pra-pelatihan, model menghafal fakta dengan cara rapuh yang tetap sulit untuk diekstraksi bahkan setelah penyetelan instruksi selanjutnya, dan mereka merekomendasikan penyuntikan instruksi seperti sinyal di awal pelatihan. Untuk data semi terstruktur, serialisasi acak dan augmentasi lainnya mengurangi overfitting skema, itulah sebabnya CPT harus disisipkan dengan tugas gaya instruksi daripada dijalankan terlebih dahulu dan IFT nanti. Pekerjaan yang berfokus pada keuangan lebih lanjut menemukan bahwa bersama-sama mencampur CPT dan data instruksi pada waktu batch meningkatkan generalisasi dan mengurangi lupa versus resep berurutan. Laporan teknis Qwen menyatu pada pola yang sama dengan mengintegrasikan data instruksi berkualitas tinggi ke dalam pra-pelatihan itu sendiri, yang meningkatkan pembelajaran konteks dan mempertahankan instruksi berikut sambil memperoleh pengetahuan domain baru.

Augmentasi data untuk korpora semi terstruktur adalah tuas kunci. CPT sadar grafik sintetis memperluas kumpulan domain kecil menjadi korpora terkait entitas yang secara eksplisit mengajarkan hubungan dan senyawa dengan pengambilan pada waktu inferensi. Gabungan CPT plus pencampuran instruksi mengungguli jaringan pipa berurutan di bidang keuangan dan menyeimbangkan domain dengan data umum menurunkan degradasi keterampilan umum. CPT domain skala sangat besar juga dapat mempertahankan kemampuan yang luas dan bahkan memungkinkan trade off melalui penggabungan model, namun masih menunjuk ke penyetelan instruksi sebagai langkah penting berikutnya, memperkuat nilai pengenalan sinyal instruksi selama CPT.

**Menyuntikkan keragaman melalui pengacakan dan pengocokan**  
Strategi umum yang membantu mengajarkan model secara efektif dari kumpulan data terstruktur dan semi terstruktur adalah dengan mengacak urutan bidang dalam kumpulan data, dan bahkan secara acak mengeluarkan beberapa kunci.

Mengacak bidang memaksa model untuk membaca apa arti setiap nilai alih-alih di mana ia muncul dan mempelajari hubungan antara semua bidang. Misalnya, dalam kasus permainan video yang diposting di toko amazon, ketika “Judul,” “Platform,” “Harga,” “Kondisi,” dan “Edisi” tiba dalam permutasi yang berbeda, model tidak dapat mengandalkan “slot ketiga adalah platform”; itu harus mengikat label ke nilai dan mempelajari hubungan bilateral antara atribut: judul platform, harga platform, kondisi harga. Jadi dapat, misalnya, menyimpulkan kemungkinan platform dari nama game dan harga yang diamati, atau memperkirakan kisaran harga yang masuk akal yang diberikan judul dan platform.

Menjatuhkan kunci secara acak selama serialisasi bertindak seperti putus fitur: ini mencegah adaptasi bersama pada satu bidang dan memaksa model untuk memulihkan informasi yang hilang dari bukti yang tersisa. Jika “Platform” tidak ada, model harus mengambilnya dari string judul atau teks kompatibilitas; jika “Harga” disembunyikan, ia harus melakukan triangulasi dari platform, edisi, dan kondisi. Ini membangun simetri (A→B dan B→A), ketahanan terhadap daftar dunia nyata yang berantakan, dan invarian skema saat bidang hilang, diganti namanya, atau disusun ulang.

Contoh gaya belanja membuatnya konkret. Serialisasi item yang sama dengan beberapa cara—"Judul: 'Elden Ring' \$1 Platform: PlayStation 5 \$1 Kondisi: Digunakan—Seperti Baru \$1 Harga: \$134,99" dan permutasi seperti “Harga: \$134,99 \$1 Judul: 'Elden Ring' \$1 Kondisi: Digunakan — Seperti Baru \$1 Platform: 5"—dan pada beberapa lintasan, jatuhkan “Platform” sambil meninggalkan “Kompatibel dengan" dalam deskripsi. PlayStation PS5 Latih tujuan pelengkap seperti memprediksi platform dari \$1title, price\$1 dan memprediksi ember harga dari \$1title, platform\$1. Karena urutan dan bahkan kehadiran kunci bervariasi, satu-satunya strategi yang stabil adalah mempelajari hubungan sejati antara atribut daripada menghafal templat.

### Cara data disajikan penting
<a name="nova-cpt-2-data-presentation"></a>

LLMs belajar dengan memprediksi token berikutnya dari apa yang telah mereka lihat. Jadi urutan bidang dan acara yang ditampilkan selama pelatihan memutuskan apa yang dapat dipelajari model. Jika format pelatihan cocok dengan tugas sebenarnya, kerugian mendarat pada token keputusan yang tepat. Jika bidang dilemparkan bersama tanpa struktur, model mempelajari pintasan atau menghafal popularitas dan kemudian gagal ketika diminta untuk memilih di antara opsi.

Tunjukkan situasinya terlebih dahulu, lalu pilihannya, lalu keputusannya. Jika model juga harus belajar tentang hasil atau penjelasan, letakkan setelah keputusan.

### Sampel pengepakan untuk CPT
<a name="nova-cpt-2-packing"></a>

**Apa itu pengepakan?**  
Ini hanya berarti mengisi setiap jendela urutan dalam data pelatihan dengan beberapa contoh utuh sehingga jendela padat dengan token nyata, bukan padding.

**Mengapa itu penting**  
Selama pelatihan panjang konteks maksimum ditetapkan, misalnya 8.192 token. Batch dibentuk menjadi [ukuran batch × panjang konteks]. Jika contoh pelatihan lebih pendek dari panjang konteks, posisi yang tersisa akan empuk. Padding masih berjalan melalui perhatian dan kernel MLP bahkan jika kerugian ditutupi, jadi komputasi dibayar untuk token yang tidak membawa sinyal pembelajaran.

**Bagaimana cara melakukan pengepakan?**  
Untuk mengemas beberapa sampel, gabungkan beberapa sampel pelatihan dengan ` [DOC] ` pemisah di antaranya (perhatikan ruang sebelum dan sesudah [DOC]) sehingga panjang penuh sampel berada di bawah panjang konteks yang diinginkan.

Contoh dokumen yang dikemas akan terlihat seperti ini:

```
{"text": "training sample 1 [DOC] training sample 2 [DOC] training sample 3"}
```

### Parameter Penyetelan CPT
<a name="nova-cpt-2-tuning-parameters"></a>

Parameter yang tersedia untuk fine-tuning dengan CPT meliputi:

**Jalankan Konfigurasi**  

+ **nama: Nama** deskriptif untuk pekerjaan pelatihan Anda. Ini membantu mengidentifikasi pekerjaan Anda di Konsol AWS Manajemen.
+ **model\$1type**: Varian model Amazon Nova untuk digunakan. Opsi yang tersedia adalah`amazon.nova-2-lite-v1:0:256k`.
+ **model\$1name\$1or\$1path: Jalur** ke model dasar yang akan digunakan untuk pelatihan Anda. Opsi yang tersedia adalah`nova-lite-2/prod`, atau jalur S3 untuk pos pemeriksaan pasca-pelatihan (). `s3://customer-escrow-bucket-unique_id/training_run_name`
+ **replika**: Jumlah instance komputasi yang digunakan untuk pelatihan terdistribusi. Nilai yang tersedia bervariasi berdasarkan model yang Anda pilih. Amazon Nova Lite 2.0 mendukung replika 4, 8, 16, atau 32.
+ **data\$1s3\$1path**: Lokasi S3 dari dataset pelatihan, yang merupakan file JSONL. File ini harus berada di AWS akun dan Wilayah yang sama dengan cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.
+ **validation\$1data\$1s3\$1path**: (Opsional) Lokasi S3 dari dataset validasi, yang merupakan file JSONL. File ini harus berada di akun dan wilayah yang sama dengan cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.
+ **output\$1s3\$1path**: Lokasi S3 tempat manifes dan log disimpan. TensorBoard Semua lokasi S3 yang disediakan harus berada di AWS akun dan AWS Wilayah yang sama.
+ **mlflow\$1tracking\$1uri**: ARN Aplikasi yang akan digunakan untuk logging MLFlow MLFlow 
+ **mlflow\$1experiment\$1name: nama percobaan** MLFlow 
+ **mlflow\$1run\$1name**: jalankan nama MLFlow 

**Konfigurasi Pelatihan**  

+ **max\$1length: Panjang** urutan maksimum dalam token. Ini menentukan ukuran jendela konteks untuk pelatihan. Nilai maksimum yang didukung adalah 8192 token untuk CPT.

  Urutan yang lebih panjang akan meningkatkan efisiensi pelatihan dengan mengorbankan peningkatan kebutuhan memori. Kami menyarankan Anda mencocokkan parameter max\$1length dengan distribusi data Anda.
+ **global\$1batch\$1size**: Jumlah total sampel pelatihan yang diproses bersama dalam satu pass maju atau mundur di semua perangkat dan pekerja.

  Nilai ini mengalikan ukuran batch per perangkat dan jumlah perangkat. Ini mempengaruhi stabilitas pelatihan dan throughput. Kami menyarankan Anda memulai dengan ukuran batch yang pas dengan nyaman di dalam memori Anda dan meningkatkan skala dari sana. Untuk data spesifik domain, batch yang lebih besar mungkin gradien yang terlalu halus.

**Pengaturan Pelatih**  

+ **max\$1steps**: Jumlah langkah pelatihan yang harus dijalankan. Setiap langkah akan melatih model dengan `global_batch_size` tidak. elemen

**Pengaturan Model**  

+ **hidden\$1dropout**: Probabilitas menjatuhkan output status tersembunyi. Tingkatkan nilai ini sekitar 0,0-0,2 untuk mengurangi overfitting pada kumpulan data yang lebih kecil. Nilai yang valid adalah antara 0-1, inklusif.
+ **attention\$1dropout**: Probabilitas penurunan bobot perhatian. Parameter ini dapat membantu generalisasi. Nilai yang valid adalah antara 0-1, inklusif.

**Konfigurasi Pengoptimal**  

+ **lr**: Tingkat pembelajaran, yang mengontrol ukuran langkah selama pengoptimalan. Kami merekomendasikan nilai antara 1e-6-1e-4 untuk kinerja yang baik. Nilai yang valid adalah antara 0-1, inklusif.
+ **nama**: Algoritma pengoptimal. Saat ini, hanya `distributed_fused_adam` didukung.
+ **weight\$1decay: Kekuatan regularisasi** L2. Nilai yang lebih tinggi (antara 0,01-0,1) meningkatkan regularisasi.
+ **warmup\$1steps**: Jumlah langkah untuk meningkatkan tingkat pembelajaran secara bertahap. Ini meningkatkan stabilitas pelatihan. Nilai yang valid adalah antara 1-20, inklusif.
+ **min\$1lr**: Tingkat pembelajaran minimum pada akhir pembusukan. Nilai yang valid antara 0-1, inklusif, tetapi harus kurang dari tingkat pembelajaran.

# Penyetelan halus yang diawasi (SFT)
<a name="nova-fine-tune"></a>

Proses pelatihan SFT terdiri dari dua tahap utama:
+ **Persiapan Data**: Ikuti pedoman yang ditetapkan untuk membuat, membersihkan, atau memformat ulang kumpulan data ke dalam struktur yang diperlukan. Pastikan bahwa input, output, dan informasi tambahan (seperti jejak penalaran atau metadata) diselaraskan dan diformat dengan benar.
+ **Konfigurasi Pelatihan**: Tentukan bagaimana model akan dilatih. Saat menggunakan, konfigurasi ini ditulis dalam file resep YAMB yang mencakup:
  + Jalur sumber data (kumpulan data pelatihan dan validasi)
  + Hiperparameter kunci (zaman, tingkat pembelajaran, ukuran batch)
  + Komponen opsional (parameter pelatihan terdistribusi, dll)

## Perbandingan dan Seleksi Model Nova
<a name="nova-model-comparison"></a>

Amazon Nova 2.0 adalah model yang dilatih pada dataset yang lebih besar dan lebih beragam daripada Amazon Nova 1.0. Perbaikan utama meliputi:
+ **Kemampuan penalaran yang ditingkatkan** dengan dukungan mode penalaran eksplisit
+ **Kinerja multibahasa yang lebih luas di seluruh bahasa tambahan**
+ **Peningkatan kinerja pada tugas-tugas kompleks** termasuk pengkodean dan penggunaan alat
+ **Penanganan konteks yang diperluas** dengan akurasi dan stabilitas yang lebih baik pada panjang konteks yang lebih panjang

## Kapan Menggunakan Nova 1.0 vs Nova 2.0
<a name="nova-model-selection"></a>

Pilih Amazon Nova 2.0 saat:
+ Kinerja superior dengan kemampuan penalaran tingkat lanjut diperlukan
+ Dukungan multibahasa atau penanganan tugas yang kompleks diperlukan
+ Hasil yang lebih baik pada pengkodean, panggilan alat, atau tugas analitis diperlukan

# SFT pada Nova 2.0
<a name="nova-sft-2-fine-tune"></a>

Amazon Nova Lite 2.0 menghadirkan kemampuan yang disempurnakan untuk fine-tuning yang diawasi, termasuk mode penalaran lanjutan, pemahaman multimodal yang ditingkatkan, dan penanganan konteks yang diperluas. SFT di Nova 2.0 memungkinkan Anda untuk menyesuaikan kemampuan canggih ini dengan kasus penggunaan spesifik Anda sambil mempertahankan kinerja superior model pada tugas-tugas kompleks.

Fitur utama SFT pada Nova 2.0 meliputi:
+ **Dukungan mode penalaran**: Latih model untuk menghasilkan jejak penalaran eksplisit sebelum jawaban akhir untuk kemampuan analitis yang ditingkatkan.
+ **Pelatihan multimodal tingkat lanjut**: Menyesuaikan pemahaman dokumen (PDF), pemahaman video, dan tugas berbasis gambar dengan akurasi yang ditingkatkan.
+ **Kemampuan pemanggilan alat**: Latih model untuk secara efektif menggunakan alat eksternal dan panggilan fungsi untuk alur kerja yang kompleks.
+ **Dukungan konteks yang diperluas**: Manfaatkan jendela konteks yang lebih panjang dengan stabilitas dan akurasi yang lebih baik untuk aplikasi intensif dokumen.

**catatan**  
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka [resep Amazon Nova](nova-model-recipes.md).

**Topics**
+ [Pemilihan Mode Penalaran (Hanya Nova 2.0)](#nova-sft-2-reasoning-mode)
+ [Alat memanggil format data](#nova-sft-2-tool-calling)
+ [Format data pemahaman dokumen](#nova-sft-2-document-understanding)
+ [Pemahaman Video untuk SFT](#nova-sft-2-video-understanding)
+ [Instruksi Unggah Data](#nova-sft-2-data-upload)
+ [Membuat Fine-Tuning Job](#nova-sft-2-creating-job)
+ [Parameter Penyetelan SFT](#nova-sft-2-tuning-parameters)
+ [Panduan Hyperparameter](#nova-sft-2-hyperparameters)

## Contoh resep SFT
<a name="nova-sft-2-sample-recipe"></a>

Di bawah ini adalah contoh resep untuk SFT. Anda dapat menemukan resep ini dan lainnya di repositori [resep](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/nova).

```
run:
  name: my-full-rank-sft-run
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  data_s3_path: s3://my-bucket-name/train.jsonl  #  only and not compatible with SageMaker Training Jobs
  replicas: 4                                     # Number of compute instances for training, allowed values are 4, 8, 16, 32
  output_s3_path: s3://my-bucket-name/outputs/    # Output artifact path (HyperPod job-specific; not compatible with standard SageMaker Training Jobs)
  mlflow_tracking_uri: ""                         # Required for MLFlow
  mlflow_experiment_name: "my-full-rank-sft-experiment"  # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-full-rank-sft-run"         # Optional for MLFlow. Note: leave this field non-empty

training_config:
  max_steps: 100                    # Maximum training steps. Minimal is 4.
  save_steps: ${oc.select:training_config.max_steps}  # How many training steps the checkpoint will be saved
  save_top_k: 5                     # Keep top K best checkpoints. Note supported only for  jobs. Minimal is 1.
  max_length: 32768                 # Sequence length (options: 8192, 16384, 32768 [default], 65536)
  global_batch_size: 32             # Global batch size (options: 32, 64, 128)
  reasoning_enabled: true           # If data has reasoningContent, set to true; otherwise False

  lr_scheduler:
    warmup_steps: 15                # Learning rate warmup steps. Recommend 15% of max_steps
    min_lr: 1e-6                    # Minimum learning rate, must be between 0.0 and 1.0

  optim_config:                     # Optimizer settings
    lr: 1e-5                        # Learning rate, must be between 0.0 and 1.0
    weight_decay: 0.0               # L2 regularization strength, must be between 0.0 and 1.0
    adam_beta1: 0.9                  # Exponential decay rate for first-moment estimates
    adam_beta2: 0.95                 # Exponential decay rate for second-moment estimates

  peft:                             # Parameter-efficient fine-tuning (LoRA)
    peft_scheme: "null"             # Disable LoRA for PEFT
```

## Pemilihan Mode Penalaran (Hanya Nova 2.0)
<a name="nova-sft-2-reasoning-mode"></a>

Amazon Nova 2.0 mendukung mode penalaran untuk kemampuan analitis yang ditingkatkan:
+ **Mode Penalaran (diaktifkan)**:
  + Atur `reasoning_enabled: true` dalam konfigurasi pelatihan
  + Model melatih untuk menghasilkan jejak penalaran sebelum jawaban akhir
  + Meningkatkan kinerja pada tugas penalaran yang kompleks
+ **Mode Non-Penalaran (dinonaktifkan)**:
  + Mengatur `reasoning_enabled: false` atau menghilangkan parameter (default)
  + SFT standar tanpa alasan eksplisit
  + Cocokkan untuk tugas yang tidak mendapat manfaat dari step-by-step penalaran

**catatan**  
Ketika penalaran diaktifkan, ia beroperasi pada upaya penalaran yang tinggi. Tidak ada opsi penalaran rendah untuk SFT.
Konten penalaran multimodal tidak didukung untuk SFT. Mode penalaran berlaku untuk input teks saja.

### Menggunakan mode penalaran dengan kumpulan data non-penalaran
<a name="nova-sft-2-reasoning-non-reasoning-data"></a>

Melatih Amazon Nova pada kumpulan data non-penalaran dengan `reasoning_enabled: true` diizinkan. Namun, hal itu dapat menyebabkan model kehilangan kemampuan penalarannya, karena Amazon Nova terutama belajar untuk menghasilkan respons yang disajikan dalam data tanpa menerapkan penalaran.

Jika melatih Amazon Nova pada kumpulan data non-penalaran tetapi masih ingin menggunakan penalaran selama inferensi:

1. Nonaktifkan penalaran selama pelatihan () `reasoning_enabled: false`

1. Aktifkan penalaran nanti selama inferensi

Meskipun pendekatan ini memungkinkan penalaran pada waktu inferensi, itu tidak menjamin peningkatan kinerja dibandingkan dengan inferensi tanpa penalaran.

**Praktik terbaik:** Aktifkan penalaran untuk pelatihan dan inferensi saat menggunakan kumpulan data penalaran, dan nonaktifkan keduanya saat menggunakan kumpulan data non-penalaran.

**catatan**  
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka [resep Amazon Nova](nova-model-recipes.md).

## Alat memanggil format data
<a name="nova-sft-2-tool-calling"></a>

SFT mendukung model pelatihan untuk menggunakan alat (panggilan fungsi). Di bawah ini adalah contoh format input untuk pemanggilan alat:

**Masukan sampel:**

```
{
  "schemaVersion": "bedrock-conversation-2024",
  "system": [
    {
      "text": "You are an expert in composing function calls."
    }
  ],
  "toolConfig": {
    "tools": [
      {
        "toolSpec": {
          "name": "getItemCost",
          "description": "Retrieve the cost of an item from the catalog",
          "inputSchema": {
            "json": {
              "type": "object",
              "properties": {
                "item_name": {
                  "type": "string",
                  "description": "The name of the item to retrieve cost for"
                },
                "item_id": {
                  "type": "string",
                  "description": "The ASIN of item to retrieve cost for"
                }
              },
              "required": [
                "item_id"
              ]
            }
          }
        }
      },
      {
        "toolSpec": {
          "name": "getItemAvailability",
          "description": "Retrieve whether an item is available in a given location",
          "inputSchema": {
            "json": {
              "type": "object",
              "properties": {
                "zipcode": {
                  "type": "string",
                  "description": "The zipcode of the location to check in"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The number of items to check availability for"
                },
                "item_id": {
                  "type": "string",
                  "description": "The ASIN of item to check availability for"
                }
              },
              "required": [
                "item_id", "zipcode"
              ]
            }
          }
        }
      }
    ]
  },
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "text": "I need to check whether there are twenty pieces of the following item available. Here is the item ASIN on Amazon: id-123. Please check for the zipcode 94086"
        }
      ]
    },
    {
      "role": "assistant",
      "content": [
        {
          "reasoningContent": {
            "reasoningText": {
              "text": "The user wants to check how many pieces of the item with ASIN id-123 are available in the zipcode 94086"
            }
          }
        },
        {
          "toolUse": {
            "toolUseId": "getItemAvailability_0",
            "name": "getItemAvailability",
            "input": {
              "zipcode": "94086",
              "quantity": 20,
              "item_id": "id-123"
            }
          }
        }
      ]
    },
    {
      "role": "user",
      "content": [
        {
          "toolResult": {
            "toolUseId": "getItemAvailability_0",
            "content": [
              {
                "text": "[{\"name\": \"getItemAvailability\", \"results\": {\"availability\": true}}]"
              }
            ]
          }
        }
      ]
    },
    {
      "role": "assistant",
      "content": [
        {
          "text": "Yes, there are twenty pieces of item id-123 available at 94086. Would you like to place an order or know the total cost?"
        }
      ]
    }
  ]
}
```

Pertimbangan penting untuk data panggilan alat:
+ ToolUse harus muncul di asisten giliran saja
+ ToolResult harus muncul di giliran pengguna saja
+ ToolResult harus berupa teks atau JSON saja; modalitas lain saat ini tidak didukung untuk model Amazon Nova
+ InputSchema dalam ToolSpec harus berupa objek Skema JSON yang valid
+ Masing-masing ToolResult harus mereferensikan yang valid toolUseId dari asisten sebelumnya ToolUse, dengan masing-masing toolUseId digunakan tepat sekali per percakapan

**catatan**  
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka [resep Amazon Nova](nova-model-recipes.md).

## Format data pemahaman dokumen
<a name="nova-sft-2-document-understanding"></a>

SFT mendukung model pelatihan tentang tugas pemahaman dokumen. Di bawah ini adalah contoh format input:

**Masukan sampel**

```
{
  "schemaVersion": "bedrock-conversation-2024",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "text": "What are the ways in which a customer can experience issues during checkout on Amazon?"
        },
        {
          "document": {
            "format": "pdf",
            "source": {
              "s3Location": {
                "uri": "s3://my-bucket-name/path/to/documents/customer_service_debugging.pdf",
                "bucketOwner": "123456789012"
              }
            }
          }
        }
      ]
    },
    {
      "role": "assistant",
      "content": [
        {
          "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?"
        }
      ],
      "reasoning_content": [
        {
          "text": "I need to find the relevant section in the document to answer the question.",
          "type": "text"
        }
      ]
    }
  ]
}
```

Pertimbangan penting untuk pemahaman dokumen:
+ Hanya file PDF yang didukung
+ Ukuran dokumen maksimum adalah 10 MB
+ Sampel dapat berisi dokumen dan teks, tetapi tidak dapat mencampur dokumen dengan modalitas lain (seperti gambar atau video)

**catatan**  
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka [resep Amazon Nova](nova-model-recipes.md).

## Pemahaman Video untuk SFT
<a name="nova-sft-2-video-understanding"></a>

SFT mendukung model fine-tuning untuk tugas pemahaman video. Di bawah ini adalah contoh format input:

**Masukan sampel**

```
{
  "schemaVersion": "bedrock-conversation-2024",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "text": "What are the ways in which a customer can experience issues during checkout on Amazon?"
        },
        {
          "video": {
            "format": "mp4",
            "source": {
              "s3Location": {
                "uri": "s3://my-bucket-name/path/to/videos/customer_service_debugging.mp4",
                "bucketOwner": "123456789012"
              }
            }
          }
        }
      ]
    },
    {
      "role": "assistant",
      "content": [
        {
          "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?"
        }
      ],
      "reasoning_content": [
        {
          "text": "I need to find the relevant section in the video to answer the question.",
          "type": "text"
        }
      ]
    }
  ]
}
```

Pertimbangan penting untuk pemahaman video:
+ Video bisa maksimal 50 MB
+ Video bisa berdurasi hingga 15 menit
+ Hanya satu video yang diizinkan per sampel; beberapa video dalam sampel yang sama tidak didukung
+ Sampel dapat berisi video dan teks, tetapi tidak dapat mencampur video dengan modalitas lain (seperti gambar atau dokumen)

**catatan**  
Untuk informasi lebih lanjut tentang gambar wadah mana, atau contoh resep yang akan digunakan, buka [resep Amazon Nova](nova-model-recipes.md).

## Instruksi Unggah Data
<a name="nova-sft-2-data-upload"></a>

Unggah kumpulan data pelatihan dan validasi ke bucket S3. Tentukan lokasi ini di `run` blok resep:

```
## Run config
run:
  ...
  data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"
```

**Catatan**: Ganti`<bucket-name>`,`<training-directory>`,`<validation-directory>`,`<training-file>`, dan `<validation-file>` dengan jalur S3 yang sebenarnya.

**Catatan**: Kumpulan data validasi saat ini tidak didukung untuk SFT dengan Amazon Nova 2.0. Jika dataset validasi disediakan, itu akan diabaikan.

## Membuat Fine-Tuning Job
<a name="nova-sft-2-creating-job"></a>

Tentukan model dasar menggunakan `model_type` dan `model_name_or_path` bidang di `run` blok:

```
## Run config
run:
  ...
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  ...
```

## Parameter Penyetelan SFT
<a name="nova-sft-2-tuning-parameters"></a>

Parameter yang tersedia untuk penyetelan dengan SFT meliputi:

**Jalankan Konfigurasi**  

+ **nama: Nama** deskriptif untuk pekerjaan pelatihan Anda. Ini membantu mengidentifikasi pekerjaan Anda di Konsol AWS Manajemen.
+ **model\$1type**: Varian model Amazon Nova untuk digunakan. Opsi yang tersedia adalah`amazon.nova-2-lite-v1:0:256k`.
+ **model\$1name\$1or\$1path: Jalur** ke model dasar yang akan digunakan untuk pelatihan Anda. Opsi yang tersedia adalah`nova-lite-2/prod`, atau jalur S3 untuk pos pemeriksaan pasca-pelatihan (). `s3://customer-escrow-bucket-unique_id/training_run_name`
+ **replika**: Jumlah instance komputasi yang digunakan untuk pelatihan terdistribusi. Nilai yang tersedia bervariasi berdasarkan model yang Anda pilih. Amazon Nova Lite 2.0 mendukung replika 4, 8, 16, atau 32.
+ **data\$1s3\$1path**: Lokasi S3 dari dataset pelatihan, yang merupakan file JSONL. File ini harus berada di AWS akun dan Wilayah yang sama dengan cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.
+ **validation\$1data\$1s3\$1path**: (Opsional) Lokasi S3 dari dataset validasi, yang merupakan file JSONL. File ini harus berada di akun dan wilayah yang sama dengan cluster. Semua lokasi S3 yang disediakan harus berada di akun dan Wilayah yang sama.
+ **output\$1s3\$1path**: Lokasi S3 tempat manifes dan log disimpan. TensorBoard Semua lokasi S3 yang disediakan harus berada di AWS akun dan AWS Wilayah yang sama.
+ **mlflow\$1tracking\$1uri**: ARN Aplikasi yang akan digunakan untuk logging. MLFlow MLFlow 
+ **mlflow\$1experiment\$1name**: nama percobaan. MLFlow 
+ **mlflow\$1run\$1name**: jalankan nama. MLFlow 

**Konfigurasi Pelatihan**  

+ **max\$1steps**: Jumlah langkah pelatihan yang harus dijalankan. Setiap langkah akan melatih model dengan `global_batch_size` jumlah elemen.
+ **save\$1steps**: Frekuensi (dalam langkah-langkah) untuk menyimpan pos pemeriksaan model selama pelatihan.
+ **save\$1top\$1k**: Jumlah maksimum pos pemeriksaan terbaik untuk dipertahankan berdasarkan metrik validasi.
+ **max\$1length: Panjang** urutan maksimum dalam token. Ini menentukan ukuran jendela konteks untuk pelatihan. Nilai maksimum yang didukung adalah 32768 token untuk SFT.

  Urutan yang lebih panjang akan meningkatkan efisiensi pelatihan dengan mengorbankan peningkatan kebutuhan memori. Kami menyarankan Anda mencocokkan parameter max\$1length dengan distribusi data Anda.
+ **global\$1batch\$1size**: Jumlah total sampel pelatihan yang diproses bersama dalam satu pass maju atau mundur di semua perangkat dan pekerja.

  Nilai ini mengalikan ukuran batch per perangkat dan jumlah perangkat. Ini mempengaruhi stabilitas pelatihan dan throughput. Kami menyarankan Anda memulai dengan ukuran batch yang pas dengan nyaman di dalam memori Anda dan meningkatkan skala dari sana. Untuk data spesifik domain, batch yang lebih besar mungkin gradien yang terlalu halus.
+ **reasoning\$1enabled**: Boolean flag untuk mengaktifkan kemampuan penalaran selama pelatihan.

**Penjadwal Tingkat Pembelajaran**  

+ **warmup\$1steps**: Jumlah langkah untuk meningkatkan tingkat pembelajaran secara bertahap. Ini meningkatkan stabilitas pelatihan.
+ **min\$1lr**: Tingkat pembelajaran minimum pada akhir pembusukan. Nilai yang valid antara 0-1, inklusif, tetapi harus kurang dari tingkat pembelajaran.

**Konfigurasi Pengoptimal**  

+ **lr**: Tingkat pembelajaran, yang mengontrol ukuran langkah selama pengoptimalan. Kami merekomendasikan nilai antara 1e-6-1e-4 untuk kinerja yang baik. Nilai yang valid adalah antara 0-1, inklusif.
+ **weight\$1decay: Kekuatan regularisasi** L2. Nilai yang lebih tinggi (antara 0,01-0,1) meningkatkan regularisasi.
+ **adam\$1beta1**: Tingkat peluruhan eksponensial untuk perkiraan momen pertama di pengoptimal Adam. Defaultnya adalah 0,9.
+ **adam\$1beta2**: Tingkat peluruhan eksponensial untuk perkiraan momen kedua dalam pengoptimal Adam. Defaultnya adalah 0,95.

**Konfigurasi PEFT**  

+ **peft\$1scheme: Skema fine-tuning** hemat parameter untuk digunakan. Pilihannya adalah `'null'` untuk fine-tuning peringkat penuh atau `lora` untuk fine-tuning berbasis Lora.

**LoRa Tuning (ketika peft\$1scheme adalah 'lora')**  

+ **alpha**: Parameter penskalaan LoRa. Mengontrol besarnya adaptasi peringkat rendah. Nilai tipikal berkisar dari 8 hingga 128.
+ **lora\$1plus\$1lr\$1ratio: Rasio tingkat pembelajaran untuk optimasi LoRa\$1**. Pengganda ini menyesuaikan tingkat pembelajaran khusus untuk parameter LoRa.

## Panduan Hyperparameter
<a name="nova-sft-2-hyperparameters"></a>

Gunakan hiperparameter yang direkomendasikan berikut berdasarkan pendekatan pelatihan:

**Pelatihan Peringkat Penuh**
+ **Zaman: 1**
+ **Tingkat pembelajaran (lr): 1e-5**
+ **Tingkat pembelajaran minimum (min\$1lr**): 1e-6

**LoRa (Adaptasi Peringkat Rendah)**
+ **Zaman: 2**
+ **Tingkat pembelajaran (lr): 5e-5**
+ **Tingkat pembelajaran minimum (min\$1lr**): 1e-6

**Catatan**: Sesuaikan nilai-nilai ini berdasarkan ukuran dataset dan kinerja validasi. Pantau metrik pelatihan untuk mencegah overfitting.

# Penguatan Fine-Tuning (RFT) aktif SageMaker HyperPod
<a name="nova-hp-rft"></a>

Reinforcement Fine-Tuning (RFT) adalah teknik pembelajaran mesin yang meningkatkan kinerja model melalui sinyal umpan balik — skor terukur atau penghargaan yang menunjukkan kualitas respons — daripada pengawasan langsung dengan jawaban yang benar dan tepat. Tidak seperti fine-tuning tradisional yang diawasi yang belajar dari pasangan input-output, RFT menggunakan fungsi hadiah untuk mengevaluasi respons model dan secara iteratif mengoptimalkan model untuk memaksimalkan penghargaan ini.

Pendekatan ini sangat efektif untuk tugas-tugas di mana mendefinisikan output yang benar secara tepat menantang, tetapi Anda dapat mengukur kualitas respons dengan andal. RFT memungkinkan model untuk mempelajari perilaku dan preferensi yang kompleks melalui uji coba dan umpan balik, menjadikannya ideal untuk aplikasi yang membutuhkan pengambilan keputusan bernuansa, pemecahan masalah yang kreatif, atau kepatuhan terhadap kriteria kualitas tertentu yang dapat dievaluasi secara terprogram.

**Kapan menggunakan RFT**  
Gunakan RFT ketika Anda dapat menentukan kriteria keberhasilan yang jelas dan terukur tetapi berjuang untuk memberikan output yang tepat untuk pelatihan. Ini ideal untuk tugas-tugas di mana kualitas bersifat subjektif atau multifase—seperti penulisan kreatif, pengoptimalan kode, atau penalaran kompleks—di mana ada beberapa solusi yang valid tetapi beberapa jelas lebih baik daripada yang lain.

RFT bekerja paling baik ketika Anda memiliki yang berikut:
+ Fungsi hadiah yang andal yang dapat mengevaluasi output model secara terprogram
+ Perlu menyelaraskan perilaku model dengan preferensi atau kendala tertentu
+ Situasi di mana fine-tuning tradisional yang diawasi gagal karena mengumpulkan contoh berlabel berkualitas tinggi mahal atau tidak praktis

Pertimbangkan RFT untuk aplikasi yang membutuhkan perbaikan berulang, personalisasi, atau kepatuhan terhadap aturan bisnis kompleks yang dapat dikodekan sebagai sinyal hadiah.

**RFT apa yang paling cocok untuk**  
RFT unggul dalam domain di mana kualitas output dapat diukur secara objektif tetapi respons optimal sulit untuk didefinisikan di muka:
+ **Pemecahan masalah matematis: Kebenaran** yang dapat diverifikasi dengan beberapa jalur solusi
+ **Pembuatan dan pengoptimalan kode**: Hasil eksekusi dan metrik kinerja yang dapat diuji
+ **Tugas penalaran ilmiah**: Konsistensi logis dan akurasi faktual
+ **Analisis data terstruktur: Output** yang dapat diverifikasi secara terprogram
+ **Penalaran multi-langkah**: Tugas yang membutuhkan perkembangan logis step-by-step
+ **Penggunaan alat dan panggilan API**: Keberhasilan dapat diukur dengan hasil eksekusi
+ **Alur kerja yang kompleks**: Kepatuhan terhadap kendala dan aturan bisnis tertentu

RFT bekerja sangat baik ketika Anda perlu menyeimbangkan beberapa tujuan yang bersaing seperti akurasi, efisiensi, dan gaya.

**Kapan menggunakan mode penalaran untuk pelatihan RFT**  
Amazon Nova 2.0 mendukung mode penalaran selama pelatihan RFT. Mode berikut tersedia:
+ **none**: Tidak ada alasan (hilangkan bidang reasing\$1effort)
+ **rendah**: Overhead penalaran minimal
+ **tinggi**: Kemampuan penalaran maksimum (default saat reasing\$1effort ditentukan)

**catatan**  
Tidak ada opsi medium untuk RFT. Jika bidang reasing\$1effort tidak ada dalam konfigurasi Anda, penalaran akan dinonaktifkan.

Gunakan penalaran tinggi untuk hal-hal berikut:
+ Tugas analitis yang kompleks
+ Pemecahan masalah matematika
+ Pengurangan logis multi-langkah
+ Tugas di mana step-by-step berpikir menambah nilai

Gunakan none (hilangkan reasing\$1effort) atau alasan rendah untuk hal berikut:
+ Pertanyaan faktual sederhana
+ Klasifikasi langsung
+ Optimalisasi kecepatan dan biaya
+ Menjawab pertanyaan langsung

**penting**  
Mode penalaran yang lebih tinggi meningkatkan waktu dan biaya pelatihan, latensi inferensi dan biaya, tetapi juga meningkatkan kemampuan model untuk tugas penalaran yang kompleks.

**Model yang didukung**  
RFT onSageMaker HyperPod mendukung Amazon Nova Lite 2.0 (amazon.nova-2-lite-v 1:0:256 k).

**Langkah-langkah utama**  
Proses RFT melibatkan empat fase utama:
+ **Menerapkan evaluator**: Buat fungsi hadiah untuk menilai respons model secara terprogram berdasarkan kriteria kualitas Anda.
+ **Permintaan pengunggahan**: Mempersiapkan dan mengunggah data pelatihan dalam format percakapan yang ditentukan dengan data referensi untuk evaluasi.
+ **Memulai pekerjaan**: Luncurkan proses fine-tuning penguatan dengan parameter yang Anda konfigurasi.
+ **Pemantauan**: Lacak kemajuan pelatihan melalui dasbor metrik untuk memastikan model belajar secara efektif.

Setiap langkah dibangun di atas langkah sebelumnya, dengan evaluator berfungsi sebagai fondasi yang memandu seluruh proses pelatihan dengan memberikan sinyal umpan balik yang konsisten.

**Topics**
+ [RFT pada Nova 2.0](nova-hp-rft-nova2.md)

# RFT pada Nova 2.0
<a name="nova-hp-rft-nova2"></a>

Data pelatihan RFT mengikuti format percakapan OpenAI. Setiap contoh pelatihan adalah objek JSON yang berisi pesan, jawaban referensi, dan definisi alat opsional. Bagian ini memberikan panduan tentang mempersiapkan data pelatihan yang efektif untuk RFT di Nova 2.0.

**Topics**
+ [Format dan struktur data](#nova-hp-rft-data-format)
+ [Deskripsi bidang](#nova-hp-rft-field-descriptions)
+ [Panduan Hyperparameter](#nova-hp-rft-monitoring-hyperparams)
+ [Properti tambahan](#nova-hp-rft-additional-properties)
+ [Rekomendasi ukuran set data](#nova-hp-rft-dataset-size)
+ [Karakteristik data pelatihan yang efektif](#nova-hp-rft-effective-data)
+ [Memantau pelatihan RFT](nova-hp-rft-monitoring.md)

## Format dan struktur data
<a name="nova-hp-rft-data-format"></a>

Setiap contoh pelatihan adalah objek JSON yang berisi berikut ini:
+ **pesan**: Array giliran percakapan menggunakan sistem, pengguna, dan peran asisten opsional
+ **reference\$1answer**: Output yang diharapkan atau kriteria evaluasi untuk perhitungan hadiah
+ **alat** (opsional): Array definisi fungsi yang tersedia untuk model
+ **id** (opsional): Pengidentifikasi unik untuk pelacakan dan deduplikasi

Setiap contoh harus pada satu baris dalam file JSONL Anda, dengan satu objek JSON per baris.

### Contoh 1: Masalah kimia
<a name="nova-hp-rft-example-chemistry"></a>

Contoh berikut menunjukkan masalah kimia dengan jawaban referensi yang mengandung nilai kebenaran dasar:

```
{  
  "id": "chem-001",  
  "messages": [  
    {  
      "role": "system",  
      "content": "You are a helpful chemistry assistant"  
    },  
    {  
      "role": "user",  
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"  
    }  
  ],  
  "reference_answer": {  
    "donor_bond_counts": 2,  
    "acceptor_bond_counts": 4,  
    "explanation": "Calculated using Lipinski's rule of five: N-H groups (2 donors), N and O atoms with lone pairs (4 acceptors)"  
  }  
}
```

**catatan**  
Reference\$1answer berisi nilai kebenaran dasar yang dihitung menggunakan aturan khusus domain. Fungsi hadiah Anda membandingkan nilai prediksi model dengan nilai referensi ini untuk menghitung skor hadiah.

### Contoh 2: Masalah matematika
<a name="nova-hp-rft-example-math"></a>

Contoh berikut menunjukkan masalah matematika dengan langkah-langkah solusi:

```
{  
  "id": "math-001",  
  "messages": [  
    {  
      "role": "system",  
      "content": "You are a math tutor"  
    },  
    {  
      "role": "user",  
      "content": "Solve: 2x + 5 = 13"  
    }  
  ],  
  "reference_answer": {  
    "solution": "x = 4",  
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]  
  }  
}
```

### Contoh 3: Penggunaan alat
<a name="nova-hp-rft-example-tool"></a>

Contoh berikut menunjukkan penggunaan alat dengan perilaku yang diharapkan:

```
{  
  "id": "tool-001",  
  "messages": [  
    {  
      "role": "system",  
      "content": "You are a helpful game master assistant"  
    },  
    {  
      "role": "user",  
      "content": "Generate a strength stat for a warrior character. Apply a +2 racial bonus modifier."  
    }  
  ],  
  "tools": [  
    {  
      "type": "function",  
      "function": {  
        "name": "StatRollAPI",  
        "description": "Generates character stats by rolling 4d6, dropping the lowest die result, and applying a modifier.",  
        "parameters": {  
          "type": "object",  
          "properties": {  
            "modifier": {  
              "description": "An integer representing the modifier to apply to the total of the stat roll.",  
              "type": "integer"  
            }  
          },  
          "required": ["modifier"]  
        }  
      }  
    }  
  ],  
  "reference_answer": {  
    "tool_called": "StatRollAPI",  
    "tool_parameters": {  
      "modifier": 2  
    },  
    "expected_behavior": "Call StatRollAPI with modifier=2 and return the calculated stat value"  
  }  
}
```

## Deskripsi bidang
<a name="nova-hp-rft-field-descriptions"></a>


| Bidang | Deskripsi | Catatan tambahan | Diperlukan | 
| --- |--- |--- |--- |
| id | Pengidentifikasi unik untuk contoh RFT ini | String (misalnya, “sample-001"). Berguna untuk melacak dan deduplikasi. | Tidak | 
| pesan | Daftar pesan obrolan yang diurutkan yang menentukan prompt dan konteks | Array objek. Model melihat mereka secara berurutan. Biasanya dimulai dengan pesan sistem, lalu pengguna. | Ya | 
| pesan [] .role | Siapa yang berbicara dalam pesan | Nilai umum: “sistem”, “pengguna” (terkadang “asisten” dalam konteks lain) | Tidak | 
| pesan [] .content | Isi teks pesan | Tali polos. Untuk sistem itu instruksi, untuk pengguna itu tugas atau input. | Tidak | 
| alat | Spesifikasi alat tersedia untuk model selama contoh ini | Array. Setiap item mendefinisikan antarmuka alat dan metadata. Jenis mungkin termasuk “fungsi” atau “internal”. | Tidak | 
| referensi\$1jawaban | Output model yang diharapkan untuk contoh ini | String atau objek tergantung pada tugas. Digunakan sebagai target untuk evaluasi atau pelatihan. | Tidak | 

**catatan**  
Setiap bidang kustom tambahan (misalnya, task\$1id, difficult level, context\$1data) tidak divalidasi dan akan diteruskan ke fungsi reward Anda sebagai metadata.

## Panduan Hyperparameter
<a name="nova-hp-rft-monitoring-hyperparams"></a>

Gunakan hiperparameter yang direkomendasikan berikut berdasarkan pendekatan pelatihan Anda:

**Umum:**
+ Zaman: 1
+ Tingkat pembelajaran (lr): 1e-7
+ Jumlah generasi: 8
+ Token baru maks: 8192
+ Ukuran Batch: 256

**LoRa (Adaptasi Peringkat Rendah):**
+ Ranking LoRa: 32

**catatan**  
Sesuaikan nilai-nilai ini berdasarkan ukuran set data dan kinerja validasi Anda. Pantau metrik pelatihan untuk mencegah overfitting.

## Properti tambahan
<a name="nova-hp-rft-additional-properties"></a>

Pengaturan “additionalProperties”: true memungkinkan Anda menyertakan bidang khusus di luar persyaratan skema inti, memberikan fleksibilitas untuk menambahkan data apa pun yang dibutuhkan fungsi hadiah Anda untuk evaluasi yang tepat.

### Bidang tambahan umum
<a name="nova-hp-rft-common-fields"></a>

Anda dapat menyertakan jenis bidang tambahan berikut:

**Metadata:**
+ task\$1id: Pengidentifikasi unik untuk melacak
+ complexty\$1level: Indikator kompleksitas masalah
+ domain: Area subjek atau kategori
+ expected\$1reasoning\$1steps: Jumlah langkah dalam solusi

**Kriteria evaluasi:**
+ evaluation\$1criteria: Rubrik penilaian khusus
+ custom\$1scoring\$1weights: Kepentingan relatif dari berbagai aspek
+ context\$1data: Informasi latar belakang untuk masalah
+ external\$1references: Tautan ke dokumentasi atau sumber daya yang relevan

### Contoh dengan properti tambahan
<a name="nova-hp-rft-additional-example"></a>

Contoh berikut mencakup bidang metadata kustom:

```
{  
  "id": "algebra_001",  
  "messages": [  
    {  
      "role": "system",  
      "content": "You are a math tutor"  
    },  
    {  
      "role": "user",  
      "content": "Solve: 2x + 5 = 13"  
    }  
  ],  
  "reference_answer": {  
    "solution": "x = 4",  
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]  
  },  
  "task_id": "algebra_001",  
  "difficulty_level": "easy",  
  "domain": "algebra",  
  "expected_reasoning_steps": 3  
}
```

## Rekomendasi ukuran set data
<a name="nova-hp-rft-dataset-size"></a>

### Titik awal
<a name="nova-hp-rft-starting-point"></a>

Mulailah dengan ukuran set data minimum berikut:
+ Minimal 100 contoh pelatihan
+ Minimal 100 contoh evaluasi

Prioritaskan data input berkualitas tinggi dan fungsi hadiah yang andal yang dijalankan secara konsisten pada respons model.

### Pendekatan evaluasi-pertama
<a name="nova-hp-rft-evaluation-first"></a>

Sebelum berinvestasi dalam pelatihan RFT skala besar, evaluasi kinerja dasar model Anda:
+ **Kinerja tinggi (hadiah lebih dari 95%)**: RFT mungkin tidak perlu — model Anda sudah berkinerja baik
+ **Kinerja yang sangat buruk (hadiah 0%)**: Beralih ke SFT terlebih dahulu untuk membangun kemampuan dasar
+ **Kinerja sedang**: RFT kemungkinan sesuai

Pendekatan evaluasi pertama ini memastikan fungsi reward Anda bebas bug dan menentukan apakah RFT adalah metode yang tepat untuk kasus penggunaan Anda. Mulai dari yang kecil memungkinkan Anda merasa nyaman dengan alur kerja RFT, mengidentifikasi dan memperbaiki masalah lebih awal, memvalidasi pendekatan Anda sebelum meningkatkan, dan menguji keandalan fungsi hadiah. Setelah divalidasi, Anda dapat memperluas ke kumpulan data yang lebih besar untuk lebih meningkatkan kinerja.

## Karakteristik data pelatihan yang efektif
<a name="nova-hp-rft-effective-data"></a>

### Kejelasan dan konsistensi
<a name="nova-hp-rft-clarity"></a>

Contoh RFT yang baik membutuhkan data input yang jelas dan tidak ambigu yang memungkinkan perhitungan hadiah yang akurat di berbagai output model. Hindari kebisingan dalam data Anda, termasuk:
+ Pemformatan yang tidak konsisten
+ Label atau instruksi yang kontradiktif
+ Permintaan ambigu
+ Jawaban referensi yang bertentangan

Ambiguitas apa pun akan menyesatkan proses pelatihan dan menyebabkan model mempelajari perilaku yang tidak diinginkan.

### Keanekaragaman
<a name="nova-hp-rft-diversity"></a>

Dataset Anda harus menangkap keragaman penuh kasus penggunaan produksi untuk memastikan kinerja dunia nyata yang kuat. Termasuk:
+ Berbagai jenis masalah dan tingkat kesulitan
+ Format input dan kasus tepi yang berbeda
+ Sampel representatif dari semua skenario yang diharapkan

Keragaman ini membantu mencegah overfitting dan memastikan model menangani input yang tidak dikenal dengan anggun.

### Pertimbangan fungsi penghargaan
<a name="nova-hp-rft-reward-considerations"></a>

Rancang fungsi hadiah Anda untuk pelatihan yang efisien:
+ Jalankan dalam hitungan detik (bukan menit)
+ Paralelisasi secara efektif dengan Lambda
+ Kembalikan skor yang konsisten dan andal
+ Tangani berbagai jenis keluaran model dengan anggun

Fungsi hadiah yang cepat dan dapat diskalakan memungkinkan iterasi cepat dan eksperimen hemat biaya dalam skala besar.

# Memantau pelatihan RFT
<a name="nova-hp-rft-monitoring"></a>

Pantau metrik utama selama pelatihan untuk memastikan pembelajaran yang efektif dan mengidentifikasi potensi masalah sejak dini.

**Topics**
+ [Metrik kunci untuk dilacak](#nova-hp-rft-monitoring-metrics)
+ [Evaluasi setelah RFT](#nova-hp-rft-monitoring-evaluation)
+ [Menggunakan model yang disetel dengan baik](#nova-hp-rft-monitoring-checkpoints)
+ [Keterbatasan dan praktik terbaik](#nova-hp-rft-monitoring-limitations)
+ [Pemecahan masalah](#nova-hp-rft-monitoring-troubleshooting)

## Metrik kunci untuk dilacak
<a name="nova-hp-rft-monitoring-metrics"></a>

Pantau metrik berikut yang digunakan MlFlow selama pelatihan:

**Metrik hadiah:**
+ **Skor hadiah rata-rata**: Kualitas keseluruhan respons model (harus meningkat seiring waktu)
+ **Distribusi hadiah**: Persentase tanggapan yang menerima hadiah tinggi, sedang, dan rendah
+ **Hadiah pelatihan vs. validasi**: Bandingkan untuk mendeteksi overfitting

**Metrik pelatihan:**
+ **Pembaruan kebijakan**: Jumlah pembaruan bobot yang berhasil
+ **Tingkat penyelesaian peluncuran**: Persentase sampel yang berhasil dievaluasi

**Mengenai pola:**
+ Imbalan dataran tinggi (menunjukkan pembelajaran yang buruk)
+ Hadiah validasi turun saat hadiah pelatihan meningkat (overfitting)
+ Varians hadiah meningkat secara signifikan dari waktu ke waktu (ketidakstabilan)
+ Persentase kesalahan fungsi hadiah yang tinggi (masalah implementasi)

**Kapan harus menghentikan pelatihan:**
+ Metrik kinerja target tercapai
+ Imbalan dataran tinggi dan tidak lagi membaik
+ Kinerja validasi menurun (overfitting terdeteksi)
+ Anggaran pelatihan maksimum tercapai

## Evaluasi setelah RFT
<a name="nova-hp-rft-monitoring-evaluation"></a>

Setelah pelatihan selesai, evaluasi model yang disetel dengan baik untuk menilai peningkatan kinerja:
+ **Jalankan pekerjaan evaluasi RFT**: Gunakan pos pemeriksaan dari pelatihan RFT Anda sebagai model
+ **Bandingkan dengan baseline**: Evaluasi model dasar dan model yang disetel dengan baik pada set pengujian yang sama
+ **Analisis metrik**: Tinjau metrik khusus tugas (akurasi, skor hadiah, dll.)
+ **Melakukan tinjauan kualitatif**: Periksa secara manual keluaran sampel untuk kualitas

Untuk prosedur evaluasi terperinci, lihat bagian Evaluasi.

## Menggunakan model yang disetel dengan baik
<a name="nova-hp-rft-monitoring-checkpoints"></a>

**Mengakses pos pemeriksaan:**

Setelah pelatihan selesai, cari pos pemeriksaan Anda:

1. Arahkan ke Anda `output_path` di S3

1. Unduh dan ekstrak `output.tar.gz`

1. Terbuka `manifest.json`

1. Salin `checkpoint_s3_bucket` nilainya

**Menerapkan untuk inferensi:**

Gunakan jalur pos pemeriksaan S3 untuk inferensi atau pelatihan lebih lanjut:

```
run:
    model_type: amazon.nova-2-lite-v1:0:256k
    model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"
```

Untuk instruksi penyebaran dan inferensi, lihat bagian Inferensi.

## Keterbatasan dan praktik terbaik
<a name="nova-hp-rft-monitoring-limitations"></a>

**Keterbatasan saat ini:**

**Pembatasan beta:**
+ Perlu membuat grup RIG baru untuk RFT. Batasan ini akan diselesaikan oleh GA.
+ Persyaratan tipe instans: Hanya instans P5 yang didukung (minimal 8x p5.48xLarge). Segera Hadir: Dukungan untuk jenis instans yang lebih kecil (ETA: pertengahan Januari 2025).

**Keterbatasan fungsional:**
+ Batas waktu Lambda 15 menit: Fungsi hadiah harus selesai dalam 15 menit
+ Hanya satu putaran: Percakapan multi-putaran tidak didukung
+ Kumpulan data validasi: Tidak didukung selama pelatihan. Gunakan pekerjaan evaluasi terpisah untuk menilai kemajuan pelatihan.

**Pertimbangan pelatihan:**
+ Skenario hadiah rendah: Mungkin kesulitan ketika kurang dari 5% contoh menerima hadiah positif - pertimbangkan SFT terlebih dahulu
+ Persyaratan data: Membutuhkan keragaman yang cukup untuk belajar secara efektif
+ Biaya komputasi: Lebih mahal daripada fine-tuning yang diawasi

**Nova Forge menghapus beberapa keterbatasan ini:**
+ Mendukung percakapan multi-putaran
+ Memungkinkan fungsi hadiah melebihi batas waktu 15 menit
+ Menyediakan algoritma canggih dan opsi penyetelan
+ Dirancang untuk kasus penggunaan perusahaan yang kompleks, yang secara khusus disetel untuk membangun model perbatasan

**Praktik terbaik:**

**Mulai kecil dan skala:**
+ Mulailah dengan kumpulan data minimal (100-200 contoh) dan beberapa zaman pelatihan
+ Validasi pendekatan Anda sebelum meningkatkan
+ Secara bertahap meningkatkan ukuran dataset dan langkah-langkah pelatihan berdasarkan hasil

**Baseline dengan SFT terlebih dahulu:**
+ Jika skor hadiah secara konsisten rendah (misalnya, selalu 0), lakukan SFT sebelum RFT
+ RFT membutuhkan kinerja dasar yang wajar untuk meningkatkan secara efektif

**Desain fungsi hadiah yang efisien:**
+ Jalankan dalam hitungan detik, bukan menit
+ Minimalkan panggilan API eksternal
+ Gunakan algoritma dan struktur data yang efisien
+ Menerapkan penanganan kesalahan yang tepat
+ Uji secara menyeluruh sebelum pelatihan
+ Memanfaatkan kemampuan penskalaan paralel Lambda

**Pantau pelatihan secara aktif:**
+ Lacak skor hadiah rata-rata dari waktu ke waktu
+ Tonton distribusi hadiah di seluruh sampel
+ Bandingkan hadiah pelatihan vs. validasi
+ Cari pola yang menyangkut (dataran tinggi, overfitting, ketidakstabilan)

**Iterasi berdasarkan hasil:**
+ Jika reward tidak membaik setelah beberapa iterasi, sesuaikan desain fungsi reward
+ Tingkatkan keragaman kumpulan data untuk memberikan sinyal pembelajaran yang lebih jelas
+ Pertimbangkan untuk beralih ke SFT jika hadiah tetap mendekati nol
+ Bereksperimenlah dengan hiperparameter yang berbeda (tingkat pembelajaran, ukuran batch)

**Optimalkan kualitas data:**
+ Pastikan contoh yang beragam dan representatif
+ Sertakan kasing tepi dan sampel yang sulit
+ Verifikasi fungsi hadiah dengan benar menilai semua jenis contoh
+ Hapus atau perbaiki sampel yang membingungkan fungsi hadiah

## Pemecahan masalah
<a name="nova-hp-rft-monitoring-troubleshooting"></a>

**Kesalahan fungsi hadiah:**

Gejala: Tingkat kesalahan tinggi dalam panggilan fungsi hadiah selama pelatihan


| Isu | Gejala | Resolusi | 
| --- |--- |--- |
| Batas waktu Lambda | Batas waktu yang sering setelah 15 menit | Optimalkan kinerja fungsi; pertimbangkan Nova Forge untuk evaluasi kompleks | 
| Konkurensi tidak cukup | Kesalahan pelambatan Lambda | Tingkatkan lambda\$1concurrency\$1limit atau minta kenaikan kuota | 
| Format pengembalian tidak valid | Pelatihan gagal dengan kesalahan format | Verifikasi struktur pengembalian cocok dengan format antarmuka yang diperlukan | 
| Pengecualian yang tidak tertangani | Kesalahan intermiten | Tambahkan penanganan kesalahan dan pencatatan yang komprehensif | 
| Kegagalan API eksternal | Penilaian yang tidak konsisten | Menerapkan logika coba lagi dan strategi mundur | 

**Kinerja pelatihan yang buruk:**

Gejala: Imbalan tidak membaik atau mendatar pada nilai rendah

Resolusi:
+ **Verifikasi kebenaran fungsi hadiah**: Uji dengan contoh yang diketahui good/bad 
+ **Periksa kinerja dasar**: Evaluasi model dasar; jika akurasi mendekati nol, lakukan SFT terlebih dahulu
+ **Tingkatkan keragaman data**: Tambahkan contoh yang lebih bervariasi yang mencakup skenario berbeda
+ **Sesuaikan hiperparameter**: Coba tingkat pembelajaran atau ukuran batch yang berbeda
+ **Tinjau kualitas sinyal hadiah**: Pastikan hadiah membedakan antara respons yang baik dan buruk

**Overfitting:**

Gejala: Hadiah pelatihan meningkat sementara imbalan validasi menurun

Resolusi:
+ **Kurangi langkah pelatihan**: Hentikan pelatihan lebih awal
+ **Tingkatkan ukuran kumpulan data**: Tambahkan lebih banyak contoh pelatihan
+ **Tambahkan regularisasi**: Sesuaikan atau `weight_decay` `entropy_coeff`
+ **Meningkatkan keragaman data**: Pastikan set pelatihan mewakili distribusi penuh

# Mengevaluasi model terlatih Anda
<a name="nova-hp-evaluate"></a>

Resep evaluasi adalah file konfigurasi YAMM yang menentukan bagaimana pekerjaan evaluasi model Amazon Nova Anda dijalankan. Dengan resep ini, Anda dapat menilai kinerja model dasar atau terlatih terhadap tolok ukur umum atau kumpulan data khusus Anda sendiri. Metrik dapat disimpan di Amazon TensorBoard S3 atau. Evaluasi menyediakan metrik kuantitatif yang membantu Anda menilai kinerja model di berbagai tugas untuk menentukan apakah penyesuaian lebih lanjut diperlukan.

Evaluasi model adalah proses offline, di mana model diuji terhadap tolok ukur tetap dengan jawaban yang telah ditentukan. Mereka tidak dinilai secara real-time atau terhadap interaksi pengguna langsung. Untuk evaluasi real-time, Anda dapat mengevaluasi model setelah diterapkan ke Amazon Bedrock dengan memanggil runtime Amazon Bedrock. APIs

**penting**  
Wadah evaluasi hanya mendukung pos pemeriksaan yang diproduksi oleh platform pelatihan yang sama. Pos pemeriksaan yang dibuat dengan hanya SageMaker HyperPod dapat dievaluasi menggunakan alur kerja SageMaker HyperPod evaluasi, dan pos pemeriksaan yang dibuat dengan pekerjaan SageMaker pelatihan hanya dapat dievaluasi menggunakan alur kerja evaluasi pekerjaan pelatihan. SageMaker Mencoba mengevaluasi pos pemeriksaan dari platform yang berbeda akan mengakibatkan kegagalan.

**Topics**
+ [Tugas benchmark yang tersedia](customize-fine-tune-evaluate-available-tasks.md)
+ [Memahami parameter resep](customize-fine-tune-evaluate-understand-modify.md)
+ [Contoh resep evaluasi](customize-fine-tune-evaluate-recipe-examples.md)
+ [Memulai pekerjaan evaluasi](customize-fine-tune-evaluate-start-job.md)
+ [Mengakses dan menganalisis hasil evaluasi](customize-fine-tune-evaluate-access-results.md)
+ [Evaluasi RFT](nova-hp-evaluate-rft.md)

# Tugas benchmark yang tersedia
<a name="customize-fine-tune-evaluate-available-tasks"></a>

Paket kode sampel tersedia yang menunjukkan cara menghitung metrik tolok ukur menggunakan fitur evaluasi model SageMaker AI untuk Amazon Nova. Untuk mengakses paket kode, lihat [Sampel-N ova-lighteval-custom-task](https://github.com/aws-samples/sample-Nova-lighteval-custom-task/).

Berikut adalah daftar tolok ukur standar industri yang didukung dan tersedia. Anda dapat menentukan tolok ukur berikut dalam `eval_task` parameter:


| Tolok Ukur | Modalitas | Deskripsi | Metrik-metrik | Strategi | Subtugas Tersedia | 
| --- |--- |--- |--- |--- |--- |
| mmlu | Teks | Pemahaman Bahasa Multi-tugas - Menguji pengetahuan di 57 mata pelajaran. | ketepatan | zs\$1cot | Ya | 
| mmlu\$1pro | Teks | MMLU - Subset Profesional - Berfokus pada domain profesional seperti hukum, kedokteran, akuntansi, dan teknik. | ketepatan | zs\$1cot | Tidak | 
| bbh | Teks | Tugas Penalaran Lanjutan - Kumpulan masalah menantang yang menguji keterampilan kognitif dan pemecahan masalah tingkat tinggi. | ketepatan | zs\$1cot | Ya | 
| gpqa | Teks | Penjawab Pertanyaan Fisika Umum — Menilai pemahaman konsep fisika dan kemampuan pemecahan masalah terkait. | ketepatan | zs\$1cot | Tidak | 
| matematika | Teks | Pemecahan Masalah Matematika — Mengukur penalaran matematis di seluruh topik termasuk aljabar, kalkulus, dan masalah kata. | exact\$1match | zs\$1cot | Ya | 
| strong\$1tolak | Teks | Quality-Control Task — Menguji kemampuan model untuk mendeteksi dan menolak konten yang tidak pantas, berbahaya, atau salah. | defleksi | zs | Ya | 
| IFEval | Teks | Instruksi-Mengikuti Evaluasi - Mengukur seberapa akurat model mengikuti instruksi yang diberikan dan menyelesaikan tugas untuk spesifikasi. | ketepatan | zs | Tidak | 
| gen\$1qa | Teks | Evaluasi Dataset Kustom - Memungkinkan Anda membawa dataset Anda sendiri untuk benchmarking, membandingkan output model untuk referensi jawaban dengan metrik seperti ROUGE dan BLEU. | all | gen\$1qa | Tidak | 
| llm\$1hakim | Teks | LLM-as-a-Judge Perbandingan Preferensi — Menggunakan model Amazon Nova Judge untuk menentukan preferensi antara respons berpasangan (B dibandingkan dengan A) untuk permintaan Anda, menghitung probabilitas B lebih disukai daripada A. | all | hakim | Tidak | 
| kemanusiaan | Teks | HumanEval - Dataset benchmark yang dirancang untuk mengevaluasi kemampuan pembuatan kode model bahasa besar | lulus @1 | zs | Tidak | 
|  mm\$1llm\$1hakim  |  Multi-modal (gambar)  |  Tolok ukur baru ini berperilaku sama dengan berbasis teks `llm_judge` di atas. Satu-satunya perbedaan adalah mendukung inferensi gambar.  |  all  |  hakim  |  Tidak  | 
|  rubric\$1llm\$1judge  | Teks |  Rubric Judge adalah model LLM-as-a-judge evaluasi yang disempurnakan yang dibangun di Amazon Nova 2.0 Lite. Berbeda dengan [model hakim asli](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/) yang hanya memberikan putusan preferensi, Rubric Judge secara dinamis menghasilkan kriteria evaluasi khusus yang disesuaikan dengan setiap prompt dan memberikan skor granular di berbagai dimensi.  |  all  |  hakim  |  Tidak  | 
|  aime\$12024  | Teks |  AIME 2024 - Ujian Matematika Undangan Amerika menguji penalaran matematika tingkat lanjut dan pemecahan masalah  |  exact\$1match  |  zs\$1cot  | Tidak | 
|  calendar\$1scheduling  | Teks |  Rencana Alami - Kalender Penjadwalan tugas menguji kemampuan perencanaan untuk menjadwalkan rapat di beberapa hari dan orang  |  exact\$1match  |  fs  | Tidak | 

`mmlu`Subtugas berikut tersedia:

```
MMLU_SUBTASKS = [
    "abstract_algebra",
    "anatomy",
    "astronomy",
    "business_ethics",
    "clinical_knowledge",
    "college_biology",
    "college_chemistry",
    "college_computer_science",
    "college_mathematics",
    "college_medicine",
    "college_physics",
    "computer_security",
    "conceptual_physics",
    "econometrics",
    "electrical_engineering",
    "elementary_mathematics",
    "formal_logic",
    "global_facts",
    "high_school_biology",
    "high_school_chemistry",
    "high_school_computer_science",
    "high_school_european_history",
    "high_school_geography",
    "high_school_government_and_politics",
    "high_school_macroeconomics",
    "high_school_mathematics",
    "high_school_microeconomics",
    "high_school_physics",
    "high_school_psychology",
    "high_school_statistics",
    "high_school_us_history",
    "high_school_world_history",
    "human_aging",
    "human_sexuality",
    "international_law",
    "jurisprudence",
    "logical_fallacies",
    "machine_learning",
    "management",
    "marketing",
    "medical_genetics",
    "miscellaneous",
    "moral_disputes",
    "moral_scenarios",
    "nutrition",
    "philosophy",
    "prehistory",
    "professional_accounting",
    "professional_law",
    "professional_medicine",
    "professional_psychology",
    "public_relations",
    "security_studies",
    "sociology",
    "us_foreign_policy",
    "virology",
    "world_religions"
]
```

`bbh`Subtugas berikut tersedia:

```
BBH_SUBTASKS = [
    "boolean_expressions",
    "causal_judgement",
    "date_understanding",
    "disambiguation_qa",
    "dyck_languages",
    "formal_fallacies",
    "geometric_shapes",
    "hyperbaton",
    "logical_deduction_five_objects",
    "logical_deduction_seven_objects",
    "logical_deduction_three_objects",
    "movie_recommendation",
    "multistep_arithmetic_two",
    "navigate",
    "object_counting",
    "penguins_in_a_table",
    "reasoning_about_colored_objects",
    "ruin_names",
    "salient_translation_error_detection",
    "snarks",
    "sports_understanding",
    "temporal_sequences",
    "tracking_shuffled_objects_five_objects",
    "tracking_shuffled_objects_seven_objects",
    "tracking_shuffled_objects_three_objects",
    "web_of_lies",
    "word_sorting"
]
```

`math`Subtugas berikut tersedia:

```
MATH_SUBTASKS = [
    "algebra",
    "counting_and_probability",
    "geometry",
    "intermediate_algebra",
    "number_theory",
    "prealgebra",
    "precalculus",
]
```

# Memahami parameter resep
<a name="customize-fine-tune-evaluate-understand-modify"></a>

**Jalankan konfigurasi**  
Berikut ini adalah konfigurasi run umum dan penjelasan tentang parameter yang terlibat.

```
run:
  name: eval_job_name
  model_type: amazon.nova-micro-v1:0:128k
  model_name_or_path: nova-micro/prod
  replicas: 1
  data_s3_path: ""
  output_s3_path: s3://output_path
  mlflow_tracking_uri: ""
  mlflow_experiment_name : ""
  mlflow_run_name : ""
```
+ `name`: (Wajib) Nama deskriptif untuk pekerjaan evaluasi Anda. Ini membantu mengidentifikasi pekerjaan Anda di AWS konsol.
+ `model_type`: (Wajib) Menentukan varian model Amazon Nova yang akan digunakan. Jangan memodifikasi bidang ini secara manual. Opsinya meliputi:
  + `amazon.nova-micro-v1:0:128k`
  + `amazon.nova-lite-v1:0:300k`
  + `amazon.nova-pro-v1:0:300k`
  + `amazon.nova-2-lite-v1:0:256k`
+ `model_name_or_path`: (Wajib) Jalur ke model dasar atau jalur S3 untuk pos pemeriksaan pasca-terlatih. Opsinya meliputi:
  + `nova-micro/prod`
  + `nova-lite/prod`
  + `nova-pro/prod`
  + `nova-lite-2/prod`
  + (Jalur S3 untuk pos pemeriksaan pasca-terlatih) `s3://<escrow bucket>/<job id>/outputs/checkpoints`
+ `replicas`: (Wajib) Jumlah instance komputasi yang akan digunakan untuk pelatihan terdistribusi. Anda harus menetapkan nilai ini ke 1 karena multi-node tidak didukung.
+ `data_s3_path`: (Wajib) Jalur S3 ke dataset input. Biarkan parameter ini kosong kecuali Anda menggunakan *set data atau LLM bawa sendiri* *sebagai resep juri*.
+ `output_s3_path`: (Wajib) Jalur S3 untuk menyimpan artefak evaluasi keluaran. Perhatikan bahwa bucket output S3 harus dibuat oleh akun yang sama yang membuat pekerjaan.
+ `mlflow_tracking_uri`: (Opsional) server MLflow pelacakan ARN untuk melacak MLFlow jalanan/eksperimen. Pastikan Anda memiliki izin untuk mengakses server pelacakan dari peran eksekusi SageMaker AI

**Konfigurasi evaluasi**  
Berikut ini adalah konfigurasi evaluasi model dan penjelasan tentang parameter yang terlibat.

```
evaluation:
  task: mmlu
  strategy: zs_cot
  subtask: mathematics
  metric: accuracy
```
+ `task`: (Wajib) Menentukan benchmark evaluasi atau tugas untuk digunakan.

  Daftar tugas yang didukung:
  + mmlu
  + mmlu\$1pro
  + bbh
  + gpqa
  + matematika
  + strong\$1tolak
  + gen\$1qa
  + ifeval
  + llm\$1hakim
  + kemanusiaan
  + mm\$1llm\$1hakim
  + rubric\$1llm\$1judge
  + aime\$12024
  + calendar\$1scheduling
  + kemanusiaan
+ `strategy`: (Wajib) Mendefinisikan pendekatan evaluasi:
  + zs\$1cot: Zero-shot Chain-of-Thought - Pendekatan untuk mendorong model bahasa besar yang mendorong penalaran tanpa memerlukan contoh eksplisit. step-by-step
  + zs: Zero-shot - Pendekatan untuk memecahkan masalah tanpa contoh pelatihan sebelumnya.
  + gen\$1qa: Strategi khusus untuk bawa resep dataset Anda sendiri.
  + hakim: Strategi khusus untuk Amazon Nova LLM sebagai Hakim dan mm\$1llm\$1judge.
+ `subtask`: (Opsional dan Dapat Dilepas) Menentukan subtugas tertentu untuk tugas evaluasi tertentu. Hapus ini dari resep Anda jika tugas Anda tidak memiliki subtugas apa pun.
+ `metric`: (Wajib) Metrik evaluasi yang akan digunakan.
  + akurasi: Persentase jawaban yang benar
  + exact\$1match: (Untuk `math` benchmark), mengembalikan tingkat di mana string yang diprediksi input sama persis dengan referensi mereka.
  + defleksi: (Untuk `strong reject` benchmark), mengembalikan defleksi relatif ke model dasar dan perbedaan metrik signifikansi.
  + pass @1: (Untuk `humaneval` benchmark) adalah metrik yang digunakan untuk mengukur persentase kasus di mana prediksi kepercayaan tertinggi model cocok dengan jawaban yang benar.
  + `all`: Mengembalikan metrik berikut:
    + Untuk `gen_qa` dan bawa benchmark dataset Anda sendiri, kembalikan metrik berikut:
      + `rouge1`: Mengukur tumpang tindih unigram (kata tunggal) antara teks yang dihasilkan dan referensi.
      + `rouge2`: Mengukur tumpang tindih bigram (dua kata berturut-turut) antara teks yang dihasilkan dan referensi.
      + `rougeL`: Mengukur urutan umum terpanjang antara teks, memungkinkan celah dalam pencocokan.
      + `exact_match`: Skor biner (0 atau 1) menunjukkan apakah teks yang dihasilkan cocok dengan teks referensi persis, karakter demi karakter.
      + `quasi_exact_match`: Mirip dengan kecocokan persis tetapi lebih lunak, biasanya mengabaikan kasus, tanda baca, dan perbedaan ruang putih.
      + `f1_score`: Rata-rata harmonik presisi dan ingatan, mengukur tumpang tindih kata antara jawaban yang diprediksi dan referensi.
      + `f1_score_quasi`: Mirip dengan f1\$1score tetapi dengan pencocokan yang lebih lunak, menggunakan perbandingan teks yang dinormalisasi yang mengabaikan perbedaan kecil.
      + `bleu`: Mengukur presisi kecocokan n-gram antara teks yang dihasilkan dan referensi, yang biasa digunakan dalam evaluasi terjemahan.
    + Untuk `llm_judge` dan`mm_llm_judge`, bawa benchmark dataset Anda sendiri, kembalikan metrik berikut:
      + `a_scores`: Jumlah kemenangan untuk `response_A` lintasan evaluasi maju dan mundur.
      + `a_scores_stderr`: Kesalahan standar `response_A scores` di seluruh penilaian berpasangan.
      + `b_scores`: Jumlah kemenangan untuk `response_B` lintasan evaluasi maju dan mundur.
      + `b_scores_stderr`: Kesalahan standar `response_B scores` di seluruh penilaian berpasangan.
      + `ties`: Jumlah penilaian di mana `response_A` dan `response_B` dievaluasi sebagai sama.
      + `ties_stderr`: Kesalahan standar ikatan di seluruh penilaian berpasangan.
      + `inference_error`: Hitungan penilaian yang tidak dapat dievaluasi dengan benar.
      + `inference_error_stderr`: Kesalahan standar kesalahan inferensi di seluruh penilaian.
      + `score`: Skor agregat berdasarkan kemenangan dari umpan maju dan mundur untuk. `response_B`
      + `score_stderr`: Kesalahan standar skor agregat di seluruh penilaian berpasangan.
      + `winrate`: probabilitas bahwa response\$1B akan lebih disukai daripada response\$1A dihitung menggunakan probabilitas Bradley-Terry.
      + `lower_rate`: Batas bawah (persentil 2.5) dari perkiraan tingkat kemenangan dari pengambilan sampel bootstrap.

**Konfigurasi inferensi**  
Berikut ini adalah konfigurasi inferensi dan penjelasan tentang parameter yang terlibat. Semua parameter bersifat opsional.

```
inference:
  max_new_tokens: 200
  top_k: -1
  top_p: 1.0
  temperature: 0
  top_logprobs: 10
  reasoning_effort: null  # options: low/high to enable reasoning or null to disable reasoning
```
+ `max_new_tokens`: Jumlah maksimum token yang akan dihasilkan. Ini harus berupa bilangan bulat.
+ `top_k`: Jumlah token probabilitas tertinggi untuk dipertimbangkan. Ini harus berupa bilangan bulat.
+ `top_p`: Ambang probabilitas kumulatif untuk pengambilan sampel token. Ini harus berupa float antara 0,0 dan 1,0, inklusif.
+ `temperature`: Keacakan dalam pemilihan token. Nilai yang lebih besar memperkenalkan lebih banyak keacakan. Gunakan 0 untuk membuat hasil deterministik. Nilai ini harus berupa float dengan nilai minimum 0.
+ `top_logprobs`: Jumlah logprob teratas yang akan dikembalikan dalam respons inferensi. Nilai ini harus berupa bilangan bulat dari 0 hingga 20. Logprobs berisi token keluaran yang dipertimbangkan dan probabilitas log dari setiap token keluaran yang dikembalikan dalam konten pesan.
+ `reasoning_effort`: mengontrol perilaku penalaran untuk model yang mampu beralasan. Tetapkan `reasoning_effort` hanya ketika `model_type` menentukan model berkemampuan penalaran (saat ini). `amazon.nova-2-lite-v1:0:256k` Opsi yang tersedia adalah `null` (nilai default jika tidak disetel; menonaktifkan penalaran),`low`, atau. `high`

Perhatikan bahwa untuk`humaneval`, kami merekomendasikan konfigurasi inferensi berikut:

```
inference:
  top_k: 1
  max_new_tokens: 1600
  temperature: 0.0
```

**MLFlow konfigurasi**  
Berikut ini adalah MLFlow konfigurasi dan penjelasan tentang parameter yang terlibat. Semua parameter bersifat opsional.

```
run:
  mlflow_tracking_uri: ""
  mlflow_experiment_name: ""
  mlflow_run_name: ""
```
+ `mlflow_tracking_uri`: Opsional) Lokasi server MLflow pelacak (hanya diperlukan di SMHP)
+ `mlflow_experiment_name`: (Opsional) Nama percobaan untuk mengelompokkan ML terkait berjalan bersama
+ `mlflow_run_name`: (Opsional) Nama khusus untuk pelatihan tertentu yang dijalankan dalam eksperimen

# Contoh resep evaluasi
<a name="customize-fine-tune-evaluate-recipe-examples"></a>

Amazon Nova menyediakan empat jenis resep evaluasi, yang tersedia di GitHub repositori SageMaker HyperPod resep.

## Resep tolok ukur teks umum
<a name="nova-model-hp-evaluation-config-example-text"></a>

Resep-resep ini memungkinkan Anda untuk mengevaluasi kemampuan dasar model Amazon Nova di seluruh rangkaian tolok ukur khusus teks yang komprehensif. Mereka disediakan dalam format`xxx_general_text_benchmark_eval.yaml`.

## Bawa resep benchmark dataset Anda sendiri
<a name="nova-model-hp-evaluation-config-byo"></a>

Resep-resep ini memungkinkan Anda untuk membawa dataset Anda sendiri untuk benchmarking dan membandingkan output model untuk referensi jawaban menggunakan berbagai jenis metrik. Mereka disediakan dalam format`xxx_bring_your_own_dataset_eval.yaml`. 

Berikut ini adalah persyaratan dataset Anda sendiri:
+ Persyaratan format file
  + Anda harus menyertakan satu `gen_qa.jsonl` file yang berisi contoh evaluasi.
  + Dataset Anda harus diunggah ke lokasi S3 di mana pekerjaan SageMaker pelatihan dapat mengaksesnya.
  + File harus mengikuti format skema yang diperlukan untuk kumpulan data Tanya Jawab umum.
+ Persyaratan format skema - Setiap baris dalam file JSONL harus berupa objek JSON dengan bidang berikut:
  + `query`: (Wajib) String yang berisi pertanyaan atau instruksi yang membutuhkan jawaban
  + `response`: (Wajib) String yang berisi output model yang diharapkan
  + `system`: (Opsional) String yang berisi prompt sistem yang menetapkan perilaku, peran, atau kepribadian model AI sebelum memproses kueri
  + `metadata`: (Opsional) String yang berisi metadata yang terkait dengan entri untuk tujuan penandaan.

Berikut ini adalah entri contoh kumpulan data Anda sendiri

```
{
   "system":"You are a english major with top marks in class who likes to give minimal word responses: ",
   "query":"What is the symbol that ends the sentence as a question",
   "response":"?"
}
{
   "system":"You are a pattern analysis specialist that provides succinct answers: ",
   "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?",
   "response":"32"
}
{
   "system":"You have great attention to detail that follows instructions accurately: ",
   "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry",
   "response":"of dry"
}
```

Untuk menggunakan kumpulan data kustom Anda, ubah resep evaluasi Anda dengan bidang wajib berikut, jangan ubah konten apa pun:

```
evaluation:
  task: gen_qa
  strategy: gen_qa
  metric: all
```

Batasan berikut berlaku:
+ Hanya satu file JSONL yang diizinkan per evaluasi.
+ File harus benar-benar mengikuti skema yang ditentukan.
+ Batas panjang konteks: Untuk setiap sampel dalam kumpulan data, panjang konteks (termasuk permintaan kueri sistem \$1) harus kurang dari 3,5k.

## Nova LLM sebagai resep tolok ukur Hakim
<a name="nova-model-evaluation-config-llm-judge"></a>

Amazon Nova LLM sebagai Hakim adalah fitur evaluasi model yang memungkinkan pelanggan membandingkan kualitas respons dari satu model ke respons model dasar pada kumpulan data khusus. [Dibutuhkan kumpulan data dengan petunjuk, respons dasar, dan respons penantang, dan menggunakan model Amazon Nova Judge untuk memberikan metrik winrate berdasarkan probabilitas Bradley-Terry dengan perbandingan berpasangan.](https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model)

Resep disediakan dalam format`xxx_llm_judge_eval.yaml`. 

Berikut ini adalah LLM sebagai persyaratan Hakim:
+ Persyaratan format file
  + Sertakan satu `llm_judge.jsonl` file yang berisi contoh evaluasi. Nama file harus`llm_judge.jsonl`.
  + Dataset Anda harus diunggah ke lokasi S3 yang dapat diakses [SageMaker AI SageMaker HyperPod RIG](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-cluster.html).
  + File harus mengikuti format skema yang diperlukan untuk `llm_judge.jsonl` kumpulan data.
  + Dataset input harus memastikan semua catatan berada di bawah panjang konteks 12k.
+ Persyaratan format skema - Setiap baris dalam file JSONL harus berupa objek JSON dengan bidang berikut:
  + `prompt`: (Wajib) String yang berisi prompt untuk respons yang dihasilkan.
  + `response_A`: String yang berisi respons dasar.
  + `response_B`: String yang berisi respons alternatif dibandingkan dengan respons dasar.

Berikut adalah LLM sebagai entri contoh juri

```
{
"prompt": "What is the most effective way to combat climate change?",
"response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.",
"response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."
}
{
"prompt": "Explain how a computer's CPU works",
"response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.",
"response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."
}
{
"prompt": "How does photosynthesis work?",
"response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.",
"response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."
}
```

Untuk menggunakan kumpulan data kustom Anda, ubah resep evaluasi Anda dengan bidang wajib berikut, jangan ubah konten apa pun:

```
evaluation:
  task: llm_judge
  strategy: judge
  metric: all
```

Batasan berikut berlaku:
+ Hanya satu file JSONL yang diizinkan per evaluasi.
+ File harus benar-benar mengikuti skema yang ditentukan.
+ Model Amazon Nova Judge sama di semua spesifikasi keluarga model (yaitu, Lite, Micro, dan Pro).
+ Model juri khusus tidak didukung saat ini.
+ Batas panjang konteks: Untuk setiap sampel dalam kumpulan data, panjang konteks (termasuk permintaan kueri sistem \$1) harus kurang dari 7k.

## Nova LLM sebagai Hakim untuk resep benchmark multi-modal (gambar)
<a name="nova-model-hp-evaluation-mm-llm-judge"></a>

Nova LLM Judge for multi-modal (image), kependekan dari Amazon Nova MM\$1LLM Judge, adalah fitur evaluasi model yang memungkinkan Anda membandingkan kualitas respons dari satu model dengan respons model dasar menggunakan kumpulan data khusus. [Ini menerima kumpulan data yang berisi petunjuk, respons dasar, dan respons penantang, dan gambar dalam bentuk string yang dikodekan Base64, kemudian menggunakan model Amazon Nova Judge untuk memberikan metrik tingkat kemenangan berdasarkan probabilitas Bradley-Terry melalui perbandingan berpasangan.](https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model) Format resep:`xxx_mm_llm_judge _eval.yaml`.

**Persyaratan set data Nova LLM**

Format berkas: 
+ `mm_llm_judge.jsonl`File tunggal yang berisi contoh evaluasi. Nama file harus persis`llm_judge.jsonl`.
+ Anda harus mengunggah kumpulan data Anda ke lokasi S3 tempat SageMaker Training Jobs dapat mengaksesnya.
+ File harus mengikuti format skema yang diperlukan untuk `mm_llm_judge` kumpulan data.
+ Dataset input harus memastikan semua catatan berada di bawah panjang konteks 12 k, tidak termasuk atribut gambar.

Format skema - Setiap baris dalam `.jsonl` file harus berupa objek JSON dengan bidang berikut.
+ Bidang yang diperlukan. 

  `prompt`: String yang berisi prompt untuk respons yang dihasilkan.

  `images`: Array yang berisi daftar objek dengan atribut data (nilainya adalah string gambar yang dikodekan Base64).

  `response_A`: String yang berisi respons dasar.

  `response_B`: String yang berisi respons alternatif dibandingkan dengan respons dasar.

Entri contoh

Untuk keterbacaan, contoh berikut mencakup baris dan lekukan baru, tetapi dalam kumpulan data yang sebenarnya, setiap catatan harus berada pada satu baris.

```
{
  "prompt": "what is in the image?",
  "images": [
    {
      "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..."
    }
  ],
  "response_A": "a dog.",
  "response_B": "a cat.",
}
{
  "prompt": "how many animals in echo of the images?",
  "images": [
    {
      "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..."
    },
    {
      "data": "data:image/jpeg;Base64,/DKEafe3gihn..."
    }
  ],
  "response_A": "The first image contains one cat and the second image contains one dog",
  "response_B": "The first image has one aminal and the second has one animal",
}
```

Untuk menggunakan kumpulan data kustom Anda, ubah resep evaluasi Anda dengan bidang wajib berikut, jangan ubah konten apa pun:

```
evaluation:
  task: mm_llm_judge
  strategy: judge
  metric: all
```

**Batasan**
+ Hanya satu `.jsonl` file yang diizinkan per evaluasi.
+ File harus benar-benar mengikuti skema yang ditentukan.
+ Model Nova MM Judge hanya mendukung referensi gambar.
+ Model Nova MM Judge sama di seluruh spesifikasi Amazon Nova Lite.
+ Model juri khusus saat ini tidak didukung.
+ URI gambar Amazon S3 tidak didukung.
+ Dataset input harus memastikan semua catatan berada di bawah panjang konteks 12 k, tidak termasuk atribut gambar.

## Hakim Berbasis Rubrik
<a name="nova-hp-evaluate-rubric-judge"></a>

Rubric Judge adalah model LLM-as-a-judge evaluasi yang disempurnakan yang dibangun di Amazon Nova 2.0 Lite. Berbeda dengan [model hakim asli](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/) yang hanya memberikan putusan preferensi (A>B, B>A, atau dasi), Rubric Judge secara dinamis menghasilkan kriteria evaluasi khusus yang disesuaikan dengan setiap prompt dan memberikan skor granular di berbagai dimensi.

Kemampuan kunci:
+ **Pembuatan kriteria dinamis**: Secara otomatis membuat dimensi evaluasi yang relevan berdasarkan prompt input
+ **Skor tertimbang: Menetapkan** bobot kepentingan untuk setiap kriteria untuk mencerminkan signifikansi relatifnya
+ **Penilaian granular**: Memberikan skor terperinci berdasarkan biner (benar/salah) atau skala (1-5) untuk setiap kriteria
+ **Metrik kualitas**: Menghitung skor kualitas berkelanjutan (skala 0-1) yang mengukur besarnya perbedaan antara respons

Contoh kriteria yang dihasilkan oleh model:

```
price_validation:
  description: "The response includes validation to ensure price is a positive value."
  type: "scale"
  weight: 0.3
```

Model mengevaluasi kedua tanggapan terhadap semua kriteria yang dihasilkan, kemudian menggunakan skor tingkat kriteria ini untuk menginformasikan keputusan preferensi akhirnya.

**Topics**
+ [Konfigurasi resep](#nova-hp-evaluate-rubric-judge-recipe)
+ [Format dataset masukan](#nova-hp-evaluate-rubric-judge-input)
+ [Keluaran evaluasi](#nova-hp-evaluate-rubric-judge-output)
+ [Dukungan model penalaran](#nova-hp-evaluate-rubric-judge-reasoning)

### Konfigurasi resep
<a name="nova-hp-evaluate-rubric-judge-recipe"></a>

**Resep Rubrik Hakim**  
Aktifkan Rubric Judge dengan menyetel `task: rubric_llm_judge` resep Anda:

```
run:
  name: nova-eval-job-name                              # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-2-lite-v1:0:256k              # [FIXED] Rubric Judge model type
  model_name_or_path: "nova-lite-2/prod"                # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                           # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                      # [FIXED] Leave empty for SageMaker Training job
  output_s3_path: ""                                    # [FIXED] Leave empty for SageMaker Training job

evaluation:
  task: rubric_llm_judge                                # [FIXED] Evaluation task - enables Rubric Judge
  strategy: judge                                       # [FIXED] Evaluation strategy
  metric: all                                           # [FIXED] Metric calculation method

inference:
  max_new_tokens: 12000                                 # [MODIFIABLE] Maximum tokens to generate
  top_k: -1                                             # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                            # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                        # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

**LLM asli sebagai resep Hakim (untuk perbandingan)**  
Model juri asli menggunakan`task: llm_judge`:

```
run:
  name: eval-job-name                                   # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-micro-v1:0:128k               # [FIXED] Model type
  model_name_or_path: "nova-micro/prod"                 # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                           # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                      # [FIXED] Leave empty for SageMaker Training job
  output_s3_path: ""                                    # [FIXED] Leave empty for SageMaker Training job

evaluation:
  task: llm_judge                                       # [FIXED] Original judge task
  strategy: judge                                       # [FIXED] Evaluation strategy
  metric: all                                           # [FIXED] Metric calculation method

inference:
  max_new_tokens: 12000                                 # [MODIFIABLE] Maximum tokens to generate
  top_k: -1                                             # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                            # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                        # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

### Format dataset masukan
<a name="nova-hp-evaluate-rubric-judge-input"></a>

Format dataset input identik dengan [model juri asli](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/):

**Bidang yang diperlukan:**
+ `prompt`: String yang berisi prompt input dan instruksi
+ `response_A`: String yang berisi keluaran model dasar
+ `response_B`: String yang berisi output model yang disesuaikan

**Contoh kumpulan data (format JSONL):**

```
{"prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."}
{"prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."}
{"prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."}
```

**Persyaratan format:**
+ Setiap entri harus berupa objek JSON satu baris
+ Pisahkan entri dengan baris baru
+ Ikuti penamaan bidang yang tepat seperti yang ditunjukkan pada contoh

### Keluaran evaluasi
<a name="nova-hp-evaluate-rubric-judge-output"></a>

**Struktur keluaran**  
Rubric Judge menghasilkan metrik evaluasi yang ditingkatkan dibandingkan dengan model juri asli:

```
{
  "config_general": {
    "lighteval_sha": "string",
    "num_fewshot_seeds": "int",
    "max_samples": "int | null",
    "job_id": "int",
    "start_time": "float",
    "end_time": "float",
    "total_evaluation_time_secondes": "string",
    "model_name": "string",
    "model_sha": "string",
    "model_dtype": "string | null",
    "model_size": "string"
  },
  "results": {
    "custom|rubric_llm_judge_judge|0": {
      "a_scores": "float",
      "a_scores_stderr": "float",
      "b_scores": "float",
      "b_scores_stderr": "float",
      "ties": "float",
      "ties_stderr": "float",
      "inference_error": "float",
      "inference_error_stderr": "float",
      "score": "float",
      "score_stderr": "float",
      "weighted_score_A": "float",
      "weighted_score_A_stderr": "float",
      "weighted_score_B": "float",
      "weighted_score_B_stderr": "float",
      "score_margin": "float",
      "score_margin_stderr": "float",
      "winrate": "float",
      "lower_rate": "float",
      "upper_rate": "float"
    }
  },
  "versions": {
    "custom|rubric_llm_judge_judge|0": "int"
  }
}
```

**Metrik baru di Rubric Judge**  
Enam metrik berikut unik untuk Rubric Judge dan memberikan penilaian kualitas terperinci:


| Metrik | Deskripsi | 
| --- |--- |
| Weighted\$1Score\$1A | Skor kualitas rata-rata yang dinormalisasi untuk Response\$1a di semua kriteria evaluasi yang dihasilkan model. Skor ditimbang berdasarkan kriteria kepentingan dan dinormalisasi ke skala 0-1 (lebih tinggi = kualitas yang lebih baik) | 
| Weighted\$1Score\$1A\$1Stderr | Kesalahan standar rata-rata untuk Weighted\$1score\$1A, menunjukkan ketidakpastian statistik | 
| Weighted\$1Score\$1B | Skor kualitas rata-rata yang dinormalisasi untuk Response\$1b di semua kriteria evaluasi yang dihasilkan model. Skor ditimbang berdasarkan kriteria kepentingan dan dinormalisasi ke skala 0-1 (lebih tinggi = kualitas yang lebih baik) | 
| Weighted\$1Score\$1B\$1Stderr | Kesalahan standar rata-rata untuk Weighted\$1score\$1B, menunjukkan ketidakpastian statistik | 
| score\$1margin | Perbedaan antara skor tertimbang (dihitung sebagai Weighted\$1score\$1A - Weighted\$1score\$1b). Rentang: -1.0 hingga 1.0. Positif = Response\$1A lebih baik; negatif = response\$1B lebih baik; mendekati nol = kualitas serupa | 
| score\$1margin\$1stderr | Kesalahan standar rata-rata untuk score\$1margin, menunjukkan ketidakpastian dalam pengukuran perbedaan kualitas | 

**Memahami metrik skor tertimbang**  
**Tujuan**: Skor tertimbang memberikan pengukuran kualitas berkelanjutan yang melengkapi putusan preferensi biner, memungkinkan wawasan yang lebih dalam tentang kinerja model.

**Perbedaan utama dari hakim asli**:
+ **Hakim asli**: Hanya menampilkan preferensi diskrit (A> B, B> A, A = B)
+ **Hakim Rubrik**: Menghasilkan preferensi DAN skor kualitas berkelanjutan (skala 0-1) berdasarkan kriteria khusus

**Menafsirkan score\$1margin**:
+ `score_margin = -0.128`: Response\$1B mencetak 12,8 poin persentase lebih tinggi dari Response\$1a
+ `|score_margin| < 0.1`: Perbedaan kualitas yang sempit (keputusan dekat)
+ `|score_margin| > 0.2`: Perbedaan kualitas yang jelas (keputusan percaya diri)

**Gunakan kasus**:
+ **Peningkatan model**: Identifikasi area spesifik di mana model Anda berkinerja buruk
+ **Kuantifikasi kualitas**: Ukur besarnya kesenjangan kinerja, bukan hanya rasio win/loss 
+ **Penilaian kepercayaan**: Bedakan antara keputusan dekat dan perbedaan kualitas yang jelas

**penting**  
Putusan akhir masih didasarkan pada label preferensi eksplisit model hakim untuk mempertahankan penalaran holistik dan memastikan mitigasi bias posisi yang tepat melalui evaluasi. forward/backward Skor tertimbang berfungsi sebagai alat observabilitas, bukan sebagai pengganti putusan utama.

**Metodologi perhitungan**  
Skor tertimbang dihitung melalui proses berikut:
+ **Ekstrak data kriteria**: Parse output YAMM juri untuk mengekstrak skor kriteria dan bobot
+ **Menormalkan skor**:
  + Kriteria tipe skala (1-5): Normalisasi ke 0-1 dengan menghitung `(score - 1) / 4`
  + Kriteria biner (benar/salah): Konversi ke 1.0/0.0
+ **Terapkan bobot: Kalikan** setiap skor yang dinormalisasi dengan berat kriterianya
+ **Agregat**: Jumlahkan semua skor tertimbang untuk setiap respons
+ **Hitung margin**: Hitung `score_margin = weighted_score_A - weighted_score_B`

**Contoh**: Jika response\$1A memiliki jumlah tertimbang 0,65 dan response\$1B memiliki 0,78, `score_margin` maka akan menjadi -0,13, menunjukkan response\$1B adalah 13 poin persentase lebih tinggi dalam kualitas di semua kriteria tertimbang.

### Dukungan model penalaran
<a name="nova-hp-evaluate-rubric-judge-reasoning"></a>

Dukungan model penalaran memungkinkan evaluasi dengan model Amazon Nova berkemampuan penalaran yang melakukan penalaran internal eksplisit sebelum menghasilkan tanggapan akhir. Fitur ini menggunakan kontrol tingkat API melalui `reasoning_effort` parameter untuk mengaktifkan atau menonaktifkan fungsionalitas penalaran secara dinamis, berpotensi meningkatkan kualitas respons untuk tugas analitis yang kompleks.

**Model yang didukung**:
+ amazon.nova-2-lite-v 1:0:256 k

**Konfigurasi resep**  
Aktifkan penalaran dengan menambahkan `reasoning_effort` parameter ke `inference` bagian resep Anda:

```
run:
  name: eval-job-name                                    # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-2-lite-v1:0:256k               # [FIXED] Must be a reasoning-supported model
  model_name_or_path: nova-lite-2/prod                   # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                            # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                       # [MODIFIABLE] Leave empty for SageMaker Training job; optional for SageMaker  SageMaker HyperPod  job
  output_s3_path: ""                                     # [MODIFIABLE] Output path for SageMaker  SageMaker HyperPod  job (not compatible with SageMaker Training jobs)

evaluation:
  task: mmlu                                             # [MODIFIABLE] Evaluation task
  strategy: generate                                     # [MODIFIABLE] Evaluation strategy
  metric: all                                            # [MODIFIABLE] Metric calculation method

inference:
  reasoning_effort: high                                 # [MODIFIABLE] Enables reasoning mode; options: low/medium/high or null to disable
  max_new_tokens: 200                                    # [MODIFIABLE] Maximum tokens to generate
  top_k: 50                                              # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                             # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                         # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

**Menggunakan parameter reasing\$1effort**  
`reasoning_effort`Parameter mengontrol perilaku penalaran untuk model berkemampuan penalaran.

**Prasyarat**:
+ **Kompatibilitas model**: Setel `reasoning_effort` hanya ketika `model_type` menentukan model berkemampuan penalaran (saat ini) `amazon.nova-2-lite-v1:0:256k`
+ **Penanganan kesalahan**: Menggunakan `reasoning_effort` dengan model yang tidak didukung akan gagal `ConfigValidationError: "Reasoning mode is enabled but model '{model_type}' does not support reasoning. Please use a reasoning-capable model or disable reasoning mode."`

**Pilihan yang tersedia**:


| Opsi | Perilaku | Batas Token | Kasus Penggunaan | 
| --- |--- |--- |--- |
| null (default) | Menonaktifkan mode penalaran | N/A | Evaluasi standar tanpa overhead penalaran | 
| rendah | Memungkinkan penalaran dengan kendala | 4.000 token untuk penalaran internal | Skenario yang membutuhkan penalaran ringkas; mengoptimalkan kecepatan dan biaya | 
| tinggi | Memungkinkan penalaran tanpa kendala | Tidak ada batasan token pada penalaran internal | Masalah kompleks yang membutuhkan analisis dan step-by-step penalaran ekstensif | 

**Kapan mengaktifkan penalaran**  
**Gunakan mode penalaran (`low`,`medium`, atau`high`) untuk**:
+ Tugas pemecahan masalah yang kompleks (matematika, teka-teki logika, pengkodean)
+ Pertanyaan analitis multi-langkah yang membutuhkan penalaran menengah
+ Tugas di mana penjelasan atau step-by-step pemikiran terperinci meningkatkan akurasi
+ Skenario di mana kualitas respons diprioritaskan daripada kecepatan

**Gunakan mode non-penalaran (hilangkan parameter) untuk**:
+ Tanya Jawab sederhana atau pertanyaan faktual
+ Tugas menulis kreatif
+ Ketika waktu respons yang lebih cepat sangat penting
+ Pembandingan kinerja di mana overhead penalaran harus dikecualikan
+ Optimalisasi biaya saat penalaran tidak meningkatkan kinerja tugas

**Pemecahan masalah**  
**Kesalahan: “Mode penalaran diaktifkan tetapi model tidak mendukung penalaran”**

**Penyebab**: `reasoning_effort` Parameter disetel ke nilai non-null, tetapi yang ditentukan `model_type` tidak mendukung penalaran.

**Resolusi**:
+ Verifikasi jenis model Anda `amazon.nova-2-lite-v1:0:256k`
+ Jika menggunakan model yang berbeda, beralihlah ke model berkemampuan penalaran atau hapus `reasoning_effort` parameter dari resep Anda

# Memulai pekerjaan evaluasi
<a name="customize-fine-tune-evaluate-start-job"></a>

Berikut ini menyediakan jenis instans evaluasi yang disarankan dan konfigurasi tipe model:

```
# Install Dependencies (Helm - https://helm.sh/docs/intro/install/)
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

# Install the SageMaker HyperPod CLI
git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git
git checkout -b release_v2
cd sagemaker-hyperpod-cli
pip install .

# Verify the installation
hyperpod --help

# Connect to a SageMaker HyperPod Cluster
hyperpod connect-cluster --cluster-name cluster-name


# Submit the Job using the recipe for eval
# Namespace by default should be kubeflow
hyperpod start-job [--namespace namespace] --recipe evaluation/nova/nova_micro_p5_48xl_general_text_benchmark_eval --override-parameters \
'{
    "instance_type":"p5d.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-V2-latest",
    "recipes.run.name": custom-run-name,
    "recipes.run.model_type": model_type,
    "recipes.run.model_name_or_path" " model name or finetune checkpoint s3uri,
    "recipes.run.data_s3_path": s3 for input data only for genqa and llm_judge, must be full S3 path that include filename,
}'

# List jobs
hyperpod list-jobs [--namespace namespace] [--all-namespaces]

# Getting Job details
hyperpod get-job --job-name job-name [--namespace namespace] [--verbose]

# Listing Pods
hyperpod list-pods --job-name job-name --namespace namespace

# Cancel Job
hyperpod cancel-job --job-name job-name [--namespace namespace]
```

Anda juga harus dapat melihat status pekerjaan melalui konsol cluster Amazon EKS.

# Mengakses dan menganalisis hasil evaluasi
<a name="customize-fine-tune-evaluate-access-results"></a>

Setelah pekerjaan evaluasi Anda selesai dengan sukses, Anda dapat mengakses dan menganalisis hasilnya menggunakan informasi di bagian ini. Berdasarkan `output_s3_path` (seperti`s3://output_path/`) yang didefinisikan dalam resep, struktur output adalah sebagai berikut:

```
job_name/
├── eval-result/
│    └── results_[timestamp].json
│    └── inference_output.jsonl (only present for gen_qa)
│    └── details/
│        └── model/
│            └── execution-date-time/
│                └──details_task_name_#_datetime.parquet
└── tensorboard-results/
    └── eval/
        └── events.out.tfevents.[timestamp]
```

Hasil metrik disimpan di lokasi output S3 yang ditentukan. `s3://output_path/job_name/eval-result/result-timestamp.json`

Hasil tensorboard disimpan di jalur S3. `s3://output_path/job_name/eval-tensorboard-result/eval/event.out.tfevents.epoch+ip`

Semua output inferensi, kecuali untuk `llm_judge` dan`strong_reject`, disimpan di jalur S3:. `s3://output_path/job_name/eval-result/details/model/taskname.parquet`

Untuk`gen_qa`, `inference_output.jsonl` file berisi bidang berikut untuk setiap objek JSON:
+ prompt - Prompt akhir yang dikirimkan ke model
+ inferensi - Output inferensi mentah dari model
+ gold - Respon target dari dataset input
+ metadata - String metadata dari dataset input jika disediakan

Untuk memvisualisasikan metrik evaluasi Anda di Tensorboard, selesaikan langkah-langkah berikut:

1. Arahkan ke SageMaker AI Tensorboard.

1. Pilih **folder S3**.

1. Tambahkan jalur folder S3 Anda, misalnya`s3://output_path/job-name/eval-tensorboard-result/eval`.

1. Tunggu sinkronisasi selesai.

Deret waktu, skalar, dan visualisasi teks tersedia.

Kami merekomendasikan praktik terbaik berikut:
+ Jaga agar jalur keluaran Anda diatur berdasarkan model dan tipe benchmark.
+ Pertahankan konvensi penamaan yang konsisten untuk memudahkan pelacakan.
+ Simpan hasil yang diekstraksi di lokasi yang aman.
+ Pantau status TensorBoard sinkronisasi untuk pemuatan data yang berhasil.

Anda dapat menemukan log kesalahan SageMaker HyperPod pekerjaan di grup CloudWatch log`/aws/sagemaker/Clusters/cluster-id`.

## Format Keluaran Probabilitas Log
<a name="nova-hp-access-results-logprobs"></a>

Ketika `top_logprobs` dikonfigurasi dalam pengaturan inferensi Anda, output evaluasi mencakup probabilitas log tingkat token dalam file parket. Setiap posisi token berisi kamus token kandidat teratas dengan probabilitas log mereka dalam struktur berikut:

```
{
"Ġint": {"logprob_value": -17.8125, "decoded_value": " int"},
"Ġthe": {"logprob_value": -2.345, "decoded_value": " the"}
}
```

Setiap entri token berisi:
+ `logprob_value`: Nilai probabilitas log untuk token
+ `decoded_value`: Representasi string decoded yang dapat dibaca manusia dari token

Token tokenizer mentah digunakan sebagai kunci kamus untuk memastikan keunikan, sekaligus `decoded_value` memberikan interpretasi yang dapat dibaca.

# Evaluasi RFT
<a name="nova-hp-evaluate-rft"></a>

**catatan**  
Evaluasi melalui fungsi hadiah jarak jauh di AWS lingkungan Anda sendiri hanya tersedia jika Anda adalah pelanggan Amazon Nova Forge.

**penting**  
Bidang `rl_env` konfigurasi digunakan secara eksklusif untuk evaluasi, bukan untuk pelatihan. Selama pelatihan, Anda mengonfigurasi fungsi reward menggunakan infrastruktur `reward_lambda_arn` (single-turn) atau BYOO dengan `rollout.delegate: true` (multi-turn).

**Apa itu Evaluasi RFT?**  
Evaluasi RFT memungkinkan Anda menilai kinerja model Anda menggunakan fungsi hadiah khusus sebelum, selama, atau setelah pelatihan pembelajaran penguatan. Tidak seperti evaluasi standar yang menggunakan metrik yang telah ditentukan sebelumnya, Evaluasi RFT memungkinkan Anda menentukan kriteria keberhasilan Anda sendiri melalui fungsi Lambda yang menilai output model berdasarkan kebutuhan spesifik Anda.

**Mengapa Evaluasi dengan RFT?**  
Evaluasi sangat penting untuk menentukan apakah proses fine-tuning RL memiliki:
+ Penyelarasan model yang ditingkatkan dengan kasus penggunaan spesifik Anda dan nilai-nilai kemanusiaan
+ Mempertahankan atau meningkatkan kemampuan model pada tugas-tugas utama
+ Menghindari efek samping yang tidak diinginkan seperti berkurangnya faktualitas, peningkatan verbositas, atau penurunan kinerja pada tugas-tugas lain
+ Memenuhi kriteria keberhasilan khusus Anda seperti yang ditentukan oleh fungsi hadiah Anda

**Kapan Menggunakan Evaluasi RFT**  
Gunakan Evaluasi RFT dalam skenario ini:
+ Sebelum Pelatihan RFT: Tetapkan metrik dasar pada kumpulan data evaluasi Anda
+ Selama Pelatihan RFT: Pantau kemajuan pelatihan dengan pos pemeriksaan menengah
+ Setelah Pelatihan RFT: Validasi bahwa model akhir memenuhi kebutuhan Anda
+ Membandingkan Model: Mengevaluasi beberapa versi model menggunakan kriteria hadiah yang konsisten

**catatan**  
Gunakan Evaluasi RFT saat Anda membutuhkan metrik khusus domain khusus. Untuk evaluasi tujuan umum (akurasi, kebingungan, BLEU), gunakan metode evaluasi standar.

**Topics**
+ [Persyaratan format data](#nova-hp-evaluate-rft-data-format)
+ [Mempersiapkan resep evaluasi Anda](#nova-hp-evaluate-rft-recipe)
+ [Fungsi hadiah preset](#nova-hp-evaluate-rft-preset)
+ [Membuat fungsi hadiah Anda](#nova-hp-evaluate-rft-create-function)
+ [Izin IAM](#nova-hp-evaluate-rft-iam)
+ [Melaksanakan pekerjaan evaluasi](#nova-hp-evaluate-rft-execution)
+ [Memahami hasil evaluasi](#nova-hp-evaluate-rft-results)

## Persyaratan format data
<a name="nova-hp-evaluate-rft-data-format"></a>

**Struktur data masukan**  
Data input evaluasi RFT harus mengikuti format Fine-Tuning Penguatan OpenAI. Setiap contoh adalah objek JSON yang berisi:
+ `messages`: Array giliran percakapan dengan `system` dan peran `user`
+ Metadata opsional lainnya, misalnya reference\$1answer

**Contoh format data**  
Contoh berikut menunjukkan format yang diperlukan:

```
{
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Solve for x. Return only JSON like {\"x\": <number>}. Equation: 2x + 5 = 13"
        }
      ]
    }
  ],
  "reference_answer": {
    "x": 4
  }
}
```

**Keterbatasan saat ini**  
Batasan berikut berlaku untuk evaluasi RFT:
+ Hanya teks: Tidak ada input multimodal (gambar, audio, video) yang didukung
+ Percakapan satu putaran: Hanya mendukung pesan pengguna tunggal (tidak ada dialog multi-putaran)
+ Format JSON: Data input harus dalam format JSONL (satu objek JSON per baris)
+ Output model: Evaluasi dilakukan pada penyelesaian yang dihasilkan dari model yang ditentukan

## Mempersiapkan resep evaluasi Anda
<a name="nova-hp-evaluate-rft-recipe"></a>

**Contoh konfigurasi resep**  
Contoh berikut menunjukkan resep evaluasi RFT lengkap:

```
run:
  name: nova-lite-rft-eval-job
  model_type: amazon.nova-lite-v1:0:300k
  model_name_or_path: s3://escrow_bucket/model_location    # [MODIFIABLE] S3 path to your model or model identifier
  replicas: 1                                             # [MODIFIABLE] For SageMaker Training jobs only; fixed for  SageMaker HyperPod  jobs
  data_s3_path: ""                                        # [REQUIRED FOR HYPERPOD] Leave empty for SageMaker Training jobs
  output_s3_path: ""                                      # [REQUIRED] Output artifact S3 path for evaluation results

evaluation:
  task: rft_eval                                          # [FIXED] Do not modify
  strategy: rft_eval                                      # [FIXED] Do not modify
  metric: all                                             # [FIXED] Do not modify

# Inference Configuration
inference:
  max_new_tokens: 8196                                    # [MODIFIABLE] Maximum tokens to generate
  top_k: -1                                               # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                              # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                          # [MODIFIABLE] Sampling temperature (0 = deterministic)
  top_logprobs: 0

# Evaluation Environment Configuration (NOT used in training)
rl_env:
  reward_lambda_arn: arn:aws:lambda:<region>:<account_id>:function:<reward-function-name>
```

## Fungsi hadiah preset
<a name="nova-hp-evaluate-rft-preset"></a>

Dua fungsi hadiah preset (`prime_code`dan`prime_math`) tersedia sebagai lapisan Lambda untuk memudahkan integrasi dengan fungsi Lambda RFT Anda.

**Ikhtisar**  
Fungsi preset ini memberikan kemampuan out-of-the-box evaluasi untuk:
+ **prime\$1code: Pembuatan** kode dan evaluasi kebenaran
+ **prime\$1math: Penalaran matematis** dan evaluasi pemecahan masalah

**Pengaturan cepat**  
Untuk menggunakan fungsi hadiah preset:

1. [Unduh layer Lambda dari rilis nova-custom-eval-sdk](https://github.com/aws/nova-custom-eval-sdk/releases)

1. Publikasikan lapisan Lambda menggunakan CLI AWS :

   ```
   aws lambda publish-layer-version \
       --layer-name preset-function-layer \
       --description "Preset reward function layer with dependencies" \
       --zip-file fileb://universal_reward_layer.zip \
       --compatible-runtimes python3.9 python3.10 python3.11 python3.12 \
       --compatible-architectures x86_64 arm64
   ```

1. Tambahkan layer ke fungsi Lambda Anda di AWS Console (Pilih preset-function-layer dari lapisan kustom dan juga tambahkan AWSSDKPandas-Python 312 untuk dependensi numpy)

1. Impor dan gunakan dalam kode Lambda Anda:

   ```
   from prime_code import compute_score  # For code evaluation
   from prime_math import compute_score  # For math evaluation
   ```

**fungsi prime\$1code**  
**Tujuan**: Mengevaluasi tugas pembuatan kode Python dengan mengeksekusi kode terhadap kasus uji dan mengukur kebenaran.

**Contoh format dataset masukan dari evaluasi**:

```
{"messages":[{"role":"user","content":"Write a function that returns the sum of two numbers."}],"reference_answer":{"inputs":["3\n5","10\n-2","0\n0"],"outputs":["8","8","0"]}}
{"messages":[{"role":"user","content":"Write a function to check if a number is even."}],"reference_answer":{"inputs":["4","7","0","-2"],"outputs":["True","False","True","True"]}}
```

**Fitur utama**:
+ Ekstraksi kode otomatis dari blok kode penurunan harga
+ Deteksi fungsi dan pengujian berbasis panggilan
+ Eksekusi kasus uji dengan perlindungan batas waktu
+ Validasi sintaks dan pemeriksaan kompilasi
+ Pelaporan kesalahan terperinci dengan traceback

**fungsi prime\$1math**  
**Tujuan**: Mengevaluasi penalaran matematika dan kemampuan pemecahan masalah dengan dukungan matematika simbolis.

**Format masukan**:

```
{"messages":[{"role":"user","content":"What is the derivative of x^2 + 3x?."}],"reference_answer":"2*x + 3"}
```

**Fitur utama**:
+ Evaluasi matematika simbolik menggunakan SymPy
+ Beberapa format jawaban (LaTeX, teks biasa, simbolis)
+ Pemeriksaan kesetaraan matematika
+ Normalisasi dan penyederhanaan ekspresi

**Praktik terbaik**  
Ikuti praktik terbaik ini saat menggunakan fungsi hadiah preset:
+ Gunakan tipe data yang tepat dalam kasus uji (bilangan bulat vs string, boolean vs “True”)
+ Berikan tanda tangan fungsi yang jelas dalam masalah kode
+ Sertakan kasus tepi dalam input pengujian (nol, angka negatif, input kosong)
+ Format ekspresi matematika secara konsisten dalam jawaban referensi
+ Uji fungsi reward Anda dengan data sampel sebelum penerapan

## Membuat fungsi hadiah Anda
<a name="nova-hp-evaluate-rft-create-function"></a>

**Lambda ARN**  
Anda harus merujuk ke format berikut untuk Lambda ARN:

```
"arn:aws:lambda:*:*:function:*SageMaker*"
```

Jika Lambda tidak memiliki skema penamaan ini, pekerjaan akan gagal dengan kesalahan ini:

```
[ERROR] Unexpected error: lambda_arn must contain one of: ['SageMaker', 'sagemaker', 'Sagemaker'] when running on SMHP platform (Key: lambda_arn)
```

**Struktur fungsi Lambda**  
Fungsi Lambda Anda menerima batch output model dan mengembalikan skor hadiah. Di bawah ini adalah contoh implementasi:

```
from typing import List, Any
import json
import re
from dataclasses import asdict, dataclass


@dataclass
class MetricResult:
    """Individual metric result."""
    name: str
    value: float
    type: str


@dataclass
class RewardOutput:
    """Reward service output."""
    id: str
    aggregate_reward_score: float
    metrics_list: List[MetricResult]


def lambda_handler(event, context):
    """ Main lambda handler """
    return lambda_grader(event)


def lambda_grader(samples: list[dict]) -> list[dict]:
    """ Core grader function """
    scores: List[RewardOutput] = []

    for sample in samples:
        print("Sample: ", json.dumps(sample, indent=2))

        # Extract components
        idx = sample.get("id", "no id")
        if not idx or idx == "no id":
            print(f"ID is None/empty for sample: {sample}")

        ground_truth = sample.get("reference_answer")

        if "messages" not in sample:
            print(f"Messages is None/empty for id: {idx}")
            continue

        if ground_truth is None:
            print(f"No answer found in ground truth for id: {idx}")
            continue

        # Get model's response (last turn is assistant turn)
        last_message = sample["messages"][-1]

        if last_message["role"] != "nova_assistant":
            print(f"Last message is not from assistant for id: {idx}")
            continue

        if "content" not in last_message:
            print(f"Completion text is empty for id: {idx}")
            continue

        model_text = last_message["content"]

        # --- Actual scoring logic (lexical overlap) ---
        ground_truth_text = _extract_ground_truth_text(ground_truth)

        # Calculate main score and individual metrics
        overlap_score = _lexical_overlap_score(model_text, ground_truth_text)

        # Create two separate metrics as in the first implementation
        accuracy_score = overlap_score  # Use overlap as accuracy
        fluency_score = _calculate_fluency(model_text)  # New function for fluency

        # Create individual metrics
        metrics_list = [
            MetricResult(name="accuracy", value=accuracy_score, type="Metric"),
            MetricResult(name="fluency", value=fluency_score, type="Reward")
        ]

        ro = RewardOutput(
            id=idx,
            aggregate_reward_score=overlap_score,
            metrics_list=metrics_list
        )

        print(f"Response for id: {idx} is {ro}")
        scores.append(ro)

    # Convert to dict format
    result = []
    for score in scores:
        result.append({
            "id": score.id,
            "aggregate_reward_score": score.aggregate_reward_score,
            "metrics_list": [asdict(metric) for metric in score.metrics_list]
        })

    return result


def _extract_ground_truth_text(ground_truth: Any) -> str:
    """
    Turn the `ground_truth` field into a plain string.
    """
    if isinstance(ground_truth, str):
        return ground_truth

    if isinstance(ground_truth, dict):
        # Common patterns: { "explanation": "...", "answer": "..." }
        if "explanation" in ground_truth and isinstance(ground_truth["explanation"], str):
            return ground_truth["explanation"]
        if "answer" in ground_truth and isinstance(ground_truth["answer"], str):
            return ground_truth["answer"]
        # Fallback: stringify the whole dict
        return json.dumps(ground_truth, ensure_ascii=False)

    # Fallback: stringify anything else
    return str(ground_truth)


def _tokenize(text: str) -> List[str]:
    # Very simple tokenizer: lowercase + alphanumeric word chunks
    return re.findall(r"\w+", text.lower())


def _lexical_overlap_score(model_text: str, ground_truth_text: str) -> float:
    """
    Simple lexical overlap score in [0, 1]:
      score = |tokens(model) ∩ tokens(gt)| / |tokens(gt)|
    """
    gt_tokens = _tokenize(ground_truth_text)
    model_tokens = _tokenize(model_text)

    if not gt_tokens:
        return 0.0

    gt_set = set(gt_tokens)
    model_set = set(model_tokens)
    common = gt_set & model_set

    return len(common) / len(gt_set)


def _calculate_fluency(text: str) -> float:
    """
    Calculate a simple fluency score based on:
    - Average word length
    - Text length
    - Sentence structure

    Returns a score between 0 and 1.
    """
    # Simple implementation - could be enhanced with more sophisticated NLP
    words = _tokenize(text)

    if not words:
        return 0.0

    # Average word length normalized to [0,1] range
    # Assumption: average English word is ~5 chars, so normalize around that
    avg_word_len = sum(len(word) for word in words) / len(words)
    word_len_score = min(avg_word_len / 10, 1.0)

    # Text length score - favor reasonable length responses
    ideal_length = 100  # words
    length_score = min(len(words) / ideal_length, 1.0)

    # Simple sentence structure check (periods, question marks, etc.)
    sentence_count = len(re.findall(r'[.!?]+', text)) + 1
    sentence_ratio = min(sentence_count / (len(words) / 15), 1.0)

    # Combine scores
    fluency_score = (word_len_score + length_score + sentence_ratio) / 3

    return fluency_score
```

**Format permintaan Lambda**  
Fungsi Lambda Anda menerima data dalam format ini:

```
[
  {
    "id": "sample-001",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "Do you have a dedicated security team?"
          }
        ]
      },
      {
        "role": "nova_assistant",
        "content": [
          {
            "type": "text",
            "text": "As an AI developed by Company, I don't have a dedicated security team in the traditional sense. However, the development and deployment of AI systems like me involve extensive security measures, including data encryption, user privacy protection, and other safeguards to ensure safe and responsible use."
          }
        ]
      }
    ],
    "reference_answer": {
      "compliant": "No",
      "explanation": "As an AI developed by Company, I do not have a traditional security team. However, the deployment involves stringent safety measures, such as encryption and privacy safeguards."
    }
  }
]
```

**catatan**  
Struktur pesan mencakup `content` array bersarang, cocok dengan format data input. Pesan terakhir dengan peran `nova_assistant` berisi respons yang dihasilkan model.

**Format respons Lambda**  
Fungsi Lambda Anda harus mengembalikan data dalam format ini:

```
[
  {
    "id": "sample-001",
    "aggregate_reward_score": 0.75,
    "metrics_list": [
      {
        "name": "accuracy",
        "value": 0.85,
        "type": "Metric"
      },
      {
        "name": "fluency",
        "value": 0.90,
        "type": "Reward"
      }
    ]
  }
]
```

**Bidang respons**:
+ `id`: Harus cocok dengan ID sampel input
+ `aggregate_reward_score`: Skor keseluruhan (biasanya 0,0 hingga 1,0)
+ `metrics_list`: Array metrik individu dengan:
  + `name`: Pengidentifikasi metrik (misalnya, “akurasi”, “kelancaran”)
  + `value`: Skor metrik (biasanya 0,0 hingga 1,0)
  + `type`: Baik “Metrik” (untuk pelaporan) atau “Hadiah” (digunakan dalam pelatihan)

## Izin IAM
<a name="nova-hp-evaluate-rft-iam"></a>

**Izin yang diperlukan**  
Peran eksekusi SageMaker AI Anda harus memiliki izin untuk menjalankan fungsi Lambda Anda. Tambahkan kebijakan ini ke peran eksekusi SageMaker AI Anda:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:InvokeFunction"
      ],
      "Resource": "arn:aws:lambda:region:account-id:function:function-name"
    }
  ]
}
```

**Peran pelaksanaan Lambda**  
Peran eksekusi fungsi Lambda Anda memerlukan izin eksekusi Lambda dasar:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "arn:aws:logs:*:*:*"
    }
  ]
}
```

**Izin tambahan**: Jika fungsi Lambda Anda mengakses layanan AWS lain (misalnya, Amazon S3 untuk data referensi, DynamoDB untuk pencatatan), tambahkan izin tersebut ke peran eksekusi Lambda.

## Melaksanakan pekerjaan evaluasi
<a name="nova-hp-evaluate-rft-execution"></a>

1. **Siapkan data Anda**
   + Format data evaluasi Anda sesuai dengan persyaratan format data
   + Unggah file JSONL Anda ke Amazon S3: `s3://your-bucket/eval-data/eval_data.jsonl`

1. **Konfigurasikan resep Anda**

   Perbarui resep sampel dengan konfigurasi Anda:
   + Setel `model_name_or_path` ke lokasi model Anda
   + Atur `lambda_arn` ke ARN fungsi reward Anda
   + Setel `output_s3_path` ke lokasi keluaran yang Anda inginkan
   + Sesuaikan `inference` parameter sesuai kebutuhan

   Simpan resepnya sebagai `rft_eval_recipe.yaml`

1. **Jalankan evaluasi**

   Jalankan pekerjaan evaluasi menggunakan notebook yang disediakan: [Notebook evaluasi model Nova](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-evaluation.html#nova-model-evaluation-notebook)

1. **Pantau kemajuan**

   Pantau pekerjaan evaluasi Anda melalui:
   + SageMaker Konsol AI: Periksa status pekerjaan dan log
   + CloudWatch Log: Lihat log eksekusi terperinci
   + Lambda Logs: Masalah fungsi hadiah debug

## Memahami hasil evaluasi
<a name="nova-hp-evaluate-rft-results"></a>

**Format output**  
Pekerjaan evaluasi menghasilkan hasil ke lokasi Amazon S3 yang Anda tentukan dalam format JSONL. Setiap baris berisi hasil evaluasi untuk satu sampel:

```
{
  "id": "sample-001",
  "aggregate_reward_score": 0.75,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.85,
      "type": "Metric"
    },
    {
      "name": "fluency",
      "value": 0.90,
      "type": "Reward"
    }
  ]
}
```

**catatan**  
Output Pekerjaan Evaluasi RFT identik dengan format Respons Lambda. Layanan evaluasi melewati respons fungsi Lambda Anda tanpa modifikasi, memastikan konsistensi antara perhitungan hadiah Anda dan hasil akhir.

**Menafsirkan hasil**  
**Skor Hadiah Agregat**:
+ Rentang: Biasanya 0,0 (terburuk) hingga 1,0 (terbaik), tetapi tergantung pada implementasi Anda
+ Tujuan: Angka tunggal yang merangkum kinerja keseluruhan
+ Penggunaan: Bandingkan model, lacak peningkatan selama pelatihan

**Metrik Individu**:
+ Jenis Metrik: Metrik informasi untuk analisis
+ Jenis Hadiah: Metrik yang digunakan selama pelatihan RFT
+ Interpretasi: Nilai yang lebih tinggi umumnya menunjukkan kinerja yang lebih baik (kecuali jika Anda merancang metrik terbalik)

**Tolok ukur kinerja**  
Apa yang dimaksud dengan kinerja “baik” tergantung pada kasus penggunaan Anda:


| Rentang Skor | Interpretasi | Tindakan | 
| --- |--- |--- |
| 0,8 - 1,0 | Sangat baik | Model siap untuk penyebaran | 
| 0,6 - 0,8 | Baik | Perbaikan kecil mungkin bermanfaat | 
| 0,4 - 0,6 | Adil | Diperlukan peningkatan yang signifikan | 
| 0,0 - 0,4 | Miskin | Tinjau data pelatihan dan fungsi hadiah | 

**penting**  
Ini adalah pedoman umum. Tentukan ambang batas Anda sendiri berdasarkan persyaratan bisnis, kinerja model dasar, kendala khusus domain, dan analisis biaya-manfaat pelatihan lebih lanjut.

# Memantau HyperPod pekerjaan dengan MLflow
<a name="nova-hp-mlflow"></a>

Anda dapat menggunakan MLflow untuk melacak dan memantau pekerjaan pelatihan Anda SageMaker HyperPod. Ikuti langkah-langkah ini untuk mengatur MLflow dan menghubungkannya ke resep pelatihan Anda.

***Buat MLflow Aplikasi***

Contoh AWS CLI perintah

```
aws sagemaker-mlflow create-mlflow-app \
    --name <app-name> \
    --artifact-store-uri <s3-bucket-name> \
    --role-arn <role-arn> \
    --region <region-name>
```

Contoh Output

```
{
    "Arn": "arn:aws:sagemaker:us-east-1:111122223333:mlflow-app/app-LGZEOZ2UY4NZ"
}
```

***Hasilkan URL yang telah ditandatangani sebelumnya***

Contoh AWS CLI perintah

```
aws sagemaker-mlflow create-presigned-mlflow-app-url \
    --arn <app-arn> \
    --region <region-name> \
    --output text
```

Contoh Output

```
https://app-LGZEOZ2UY4NZ.mlflow.sagemaker.us-east-1.app.aws/auth?authToken=eyJhbGciOiJIUzI1NiJ9.eyJhdXRoVG9rZW5JZCI6IkxETVBPUyIsImZhc0NyZWRlbnRpYWxzIjoiQWdWNGhDM1VvZ0VYSUVsT2lZOVlLNmxjRHVxWm1BMnNhZ3JDWEd3aFpOSmdXbzBBWHdBQkFCVmhkM010WTNKNWNIUnZMWEIxWW14cFl5MXJaWGtBUkVFd09IQmtVbU5IUzJJMU1VTnVaVEl3UVhkUE5uVm9Ra2xHTkZsNVRqTTNXRVJuTTNsalowNHhRVFZvZERneVdrMWlkRlZXVWpGTWMyWlRUV1JQWmpSS2R6MDlBQUVBQjJGM2N5MXJiWE1BUzJGeWJqcGhkM002YTIxek9uVnpMV1ZoYzNRdE1Ub3pNVFF4TkRZek1EWTBPREk2YTJWNUx6Y3dOMkpoTmpjeExUUXpZamd0TkRFeU5DMWhaVFUzTFRrMFlqTXdZbUptT1RJNU13QzRBUUlCQUhnQjRVMDBTK3ErVE51d1gydlFlaGtxQnVneWQ3YnNrb0pWdWQ2NmZjVENVd0ZzRTV4VHRGVllHUXdxUWZoeXE2RkJBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1yOEh4MXhwczFBbmEzL1JKQWdFUWdEdTI0K1M5c2VOUUNFV0hJRXJwdmYxa25MZTJteitlT29pTEZYNTJaeHZsY3AyZHFQL09tY3RJajFqTWFuRjMxZkJyY004MmpTWFVmUHRhTWdJQUFCQUE3L1pGT05DRi8rWnVPOVlCVnhoaVppSEFSLy8zR1I0TmR3QWVxcDdneHNkd2lwTDJsVWdhU3ZGNVRCbW9uMUJnLy8vLy93QUFBQUVBQUFBQUFBQUFBQUFBQUFFQUFBUTdBMHN6dUhGbEs1NHdZbmZmWEFlYkhlNmN5OWpYOGV3T2x1NWhzUWhGWFllRXNVaENaQlBXdlQrVWp5WFY0ZHZRNE8xVDJmNGdTRUFOMmtGSUx0YitQa0tmM0ZUQkJxUFNUQWZ3S1oyeHN6a1lDZXdwRlNpalFVTGtxemhXbXBVcmVDakJCOHNGT3hQL2hjK0JQalY3bUhOL29qcnVOejFhUHhjNSt6bHFuak9CMHljYy8zL2JuSHA3NVFjRE8xd2NMbFJBdU5KZ2RMNUJMOWw1YVVPM0FFMlhBYVF3YWY1bkpwTmZidHowWUtGaWZHMm94SDJSNUxWSjNkbG40aGVRbVk4OTZhdXdsellQV253N2lTTDkvTWNidDAzdVZGN0JpUnRwYmZMN09JQm8wZlpYSS9wK1pUNWVUS2wzM2tQajBIU3F6NisvamliY0FXMWV4VTE4N1QwNHpicTNRcFhYMkhqcDEvQnFnMVdabkZoaEwrekZIaUV0Qjd4U1RaZkZsS2xRUUhNK0ZkTDNkOHIyRWhCMjFya2FBUElIQVBFUk5Pd1lnNmFzM2pVaFRwZWtuZVhxSDl3QzAyWU15R0djaTVzUEx6ejh3ZTExZVduanVTai9DZVJpZFQ1akNRcjdGMUdKWjBVREZFbnpNakFuL3Y3ajA5c2FMczZnemlCc2FLQXZZOWpib0JEYkdKdGZ0N2JjVjl4eUp4amptaW56TGtoVG5pV2dxV3g5MFZPUHlWNWpGZVk1QTFrMmw3bDArUjZRTFNleHg4d1FrK0FqVGJuLzFsczNHUTBndUtESmZKTWVGUVczVEVrdkp5VlpjOC9xUlpIODhybEpKOW1FSVdOd1BMU21yY1l6TmZwVTlVOGdoUDBPUWZvQ3FvcW1WaUhEYldaT294bGpmb295cS8yTDFKNGM3NTJUaVpFd1hnaG9haFBYdGFjRnA2NTVUYjY5eGxTN25FaXZjTTlzUjdTT3REMEMrVHIyd0cxNEJ3Zm9NZTdKOFhQeVRtcmQ0QmNKOEdOYnVZTHNRNU9DcFlsV3pVNCtEcStEWUI4WHk1UWFzaDF0dzJ6dGVjVVQyc0hsZmwzUVlrQ0d3Z1hWam5Ia2hKVitFRDIrR3Fpc3BkYjRSTC83RytCRzRHTWNaUE02Q3VtTFJkMnZLbnozN3dUWkxwNzdZNTdMQlJySm9Tak9idWdNUWdhOElLNnpWL2VtcFlSbXJsVjZ5VjZ6S1h5aXFKWFk3TTBXd3dSRzd5Q0xYUFRtTGt3WGE5cXF4NkcvZDY1RS83V3RWMVUrNFIxMlZIUmVUMVJmeWw2SnBmL2FXWFVCbFQ2ampUR0M5TU1uTk5OVTQwZHRCUTArZ001S1d2WGhvMmdmbnhVcU1OdnFHblRFTWdZMG5ZL1FaM0RWNFozWUNqdkFOVWVsS1NCdkxFbnY4SEx0WU9uajIrTkRValZOV1h5T1c4WFowMFFWeXU0ZU5LaUpLQ1hJbnI1N3RrWHE3WXl3b0lZV0hKeHQwWis2MFNQMjBZZktYYlhHK1luZ3F6NjFqMkhIM1RQUmt6dW5rMkxLbzFnK1ZDZnhVWFByeFFmNUVyTm9aT2RFUHhjaklKZ1FxRzJ2eWJjbFRNZ0M5ZXc1QURVcE9KL1RrNCt2dkhJMDNjM1g0UXcrT3lmZHFUUzJWb3N4Y0hJdG5iSkZmdXliZi9lRlZWRlM2L3lURkRRckhtQ1RZYlB3VXlRNWZpR20zWkRhNDBQUTY1RGJSKzZSbzl0S3c0eWFlaXdDVzYwZzFiNkNjNUhnQm5GclMyYytFbkNEUFcrVXRXTEF1azlISXZ6QnR3MytuMjdRb1cvSWZmamJucjVCSXk3MDZRTVR4SzhuMHQ3WUZuMTBGTjVEWHZiZzBvTnZuUFFVYld1TjhFbE11NUdpenZxamJmeVZRWXdBSERCcDkzTENsUUJuTUdVQ01GWkNHUGRPazJ2ZzJoUmtxcWQ3SmtDaEpiTmszSVlyanBPL0h2Z2NZQ2RjK2daM3lGRjMyTllBMVRYN1FXUkJYZ0l4QU5xU21ZTHMyeU9uekRFenBtMUtnL0tvYmNqRTJvSDJkZHcxNnFqT0hRSkhkVWRhVzlZL0NQYTRTbWxpN2pPbGdRPT0iLCJjaXBoZXJUZXh0IjoiQVFJQkFIZ0I0VTAwUytxK1ROdXdYMnZRZWhrcUJ1Z3lkN2Jza29KVnVkNjZmY1RDVXdHeDExRlBFUG5xU1ZFbE5YVUNrQnRBQUFBQW9qQ0Jud1lKS29aSWh2Y05BUWNHb0lHUk1JR09BZ0VBTUlHSUJna3Foa2lHOXcwQkJ3RXdIZ1lKWUlaSUFXVURCQUV1TUJFRURHemdQNnJFSWNEb2dWSTl1d0lCRUlCYitXekkvbVpuZkdkTnNYV0VCM3Y4NDF1SVJUNjBLcmt2OTY2Q1JCYmdsdXo1N1lMTnZUTkk4MEdkVXdpYVA5NlZwK0VhL3R6aGgxbTl5dzhjcWdCYU1pOVQrTVQxdzdmZW5xaXFpUnRRMmhvN0tlS2NkMmNmK3YvOHVnPT0iLCJzdWIiOiJhcm46YXdzOnNhZ2VtYWtlcjp1cy1lYXN0LTE6MDYwNzk1OTE1MzUzOm1sZmxvdy1hcHAvYXBwLUxHWkVPWjJVWTROWiIsImlhdCI6MTc2NDM2NDYxNSwiZXhwIjoxNzY0MzY0OTE1fQ.HNvZOfqft4m7pUS52MlDwoi1BA8Vsj3cOfa_CvlT4uw
```

***Buka URL yang telah ditetapkan sebelumnya dan lihat aplikasinya***

Klik 

```
https://app-LGZEOZ2UY4NZ.mlflow.sagemaker.us-east-1.app.aws/auth?authToken=eyJhbGciOiJIUzI1NiJ9.eyJhdXRoVG9rZW5JZCI6IkxETVBPUyIsImZhc0NyZWRlbnRpYWxzIjoiQWdWNGhDM1VvZ0VYSUVsT2lZOVlLNmxjRHVxWm1BMnNhZ3JDWEd3aFpOSmdXbzBBWHdBQkFCVmhkM010WTNKNWNIUnZMWEIxWW14cFl5MXJaWGtBUkVFd09IQmtVbU5IUzJJMU1VTnVaVEl3UVhkUE5uVm9Ra2xHTkZsNVRqTTNXRVJuTTNsalowNHhRVFZvZERneVdrMWlkRlZXVWpGTWMyWlRUV1JQWmpSS2R6MDlBQUVBQjJGM2N5MXJiWE1BUzJGeWJqcGhkM002YTIxek9uVnpMV1ZoYzNRdE1Ub3pNVFF4TkRZek1EWTBPREk2YTJWNUx6Y3dOMkpoTmpjeExUUXpZamd0TkRFeU5DMWhaVFUzTFRrMFlqTXdZbUptT1RJNU13QzRBUUlCQUhnQjRVMDBTK3ErVE51d1gydlFlaGtxQnVneWQ3YnNrb0pWdWQ2NmZjVENVd0ZzRTV4VHRGVllHUXdxUWZoeXE2RkJBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1yOEh4MXhwczFBbmEzL1JKQWdFUWdEdTI0K1M5c2VOUUNFV0hJRXJwdmYxa25MZTJteitlT29pTEZYNTJaeHZsY3AyZHFQL09tY3RJajFqTWFuRjMxZkJyY004MmpTWFVmUHRhTWdJQUFCQUE3L1pGT05DRi8rWnVPOVlCVnhoaVppSEFSLy8zR1I0TmR3QWVxcDdneHNkd2lwTDJsVWdhU3ZGNVRCbW9uMUJnLy8vLy93QUFBQUVBQUFBQUFBQUFBQUFBQUFFQUFBUTdBMHN6dUhGbEs1NHdZbmZmWEFlYkhlNmN5OWpYOGV3T2x1NWhzUWhGWFllRXNVaENaQlBXdlQrVWp5WFY0ZHZRNE8xVDJmNGdTRUFOMmtGSUx0YitQa0tmM0ZUQkJxUFNUQWZ3S1oyeHN6a1lDZXdwRlNpalFVTGtxemhXbXBVcmVDakJCOHNGT3hQL2hjK0JQalY3bUhOL29qcnVOejFhUHhjNSt6bHFuak9CMHljYy8zL2JuSHA3NVFjRE8xd2NMbFJBdU5KZ2RMNUJMOWw1YVVPM0FFMlhBYVF3YWY1bkpwTmZidHowWUtGaWZHMm94SDJSNUxWSjNkbG40aGVRbVk4OTZhdXdsellQV253N2lTTDkvTWNidDAzdVZGN0JpUnRwYmZMN09JQm8wZlpYSS9wK1pUNWVUS2wzM2tQajBIU3F6NisvamliY0FXMWV4VTE4N1QwNHpicTNRcFhYMkhqcDEvQnFnMVdabkZoaEwrekZIaUV0Qjd4U1RaZkZsS2xRUUhNK0ZkTDNkOHIyRWhCMjFya2FBUElIQVBFUk5Pd1lnNmFzM2pVaFRwZWtuZVhxSDl3QzAyWU15R0djaTVzUEx6ejh3ZTExZVduanVTai9DZVJpZFQ1akNRcjdGMUdKWjBVREZFbnpNakFuL3Y3ajA5c2FMczZnemlCc2FLQXZZOWpib0JEYkdKdGZ0N2JjVjl4eUp4amptaW56TGtoVG5pV2dxV3g5MFZPUHlWNWpGZVk1QTFrMmw3bDArUjZRTFNleHg4d1FrK0FqVGJuLzFsczNHUTBndUtESmZKTWVGUVczVEVrdkp5VlpjOC9xUlpIODhybEpKOW1FSVdOd1BMU21yY1l6TmZwVTlVOGdoUDBPUWZvQ3FvcW1WaUhEYldaT294bGpmb295cS8yTDFKNGM3NTJUaVpFd1hnaG9haFBYdGFjRnA2NTVUYjY5eGxTN25FaXZjTTlzUjdTT3REMEMrVHIyd0cxNEJ3Zm9NZTdKOFhQeVRtcmQ0QmNKOEdOYnVZTHNRNU9DcFlsV3pVNCtEcStEWUI4WHk1UWFzaDF0dzJ6dGVjVVQyc0hsZmwzUVlrQ0d3Z1hWam5Ia2hKVitFRDIrR3Fpc3BkYjRSTC83RytCRzRHTWNaUE02Q3VtTFJkMnZLbnozN3dUWkxwNzdZNTdMQlJySm9Tak9idWdNUWdhOElLNnpWL2VtcFlSbXJsVjZ5VjZ6S1h5aXFKWFk3TTBXd3dSRzd5Q0xYUFRtTGt3WGE5cXF4NkcvZDY1RS83V3RWMVUrNFIxMlZIUmVUMVJmeWw2SnBmL2FXWFVCbFQ2ampUR0M5TU1uTk5OVTQwZHRCUTArZ001S1d2WGhvMmdmbnhVcU1OdnFHblRFTWdZMG5ZL1FaM0RWNFozWUNqdkFOVWVsS1NCdkxFbnY4SEx0WU9uajIrTkRValZOV1h5T1c4WFowMFFWeXU0ZU5LaUpLQ1hJbnI1N3RrWHE3WXl3b0lZV0hKeHQwWis2MFNQMjBZZktYYlhHK1luZ3F6NjFqMkhIM1RQUmt6dW5rMkxLbzFnK1ZDZnhVWFByeFFmNUVyTm9aT2RFUHhjaklKZ1FxRzJ2eWJjbFRNZ0M5ZXc1QURVcE9KL1RrNCt2dkhJMDNjM1g0UXcrT3lmZHFUUzJWb3N4Y0hJdG5iSkZmdXliZi9lRlZWRlM2L3lURkRRckhtQ1RZYlB3VXlRNWZpR20zWkRhNDBQUTY1RGJSKzZSbzl0S3c0eWFlaXdDVzYwZzFiNkNjNUhnQm5GclMyYytFbkNEUFcrVXRXTEF1azlISXZ6QnR3MytuMjdRb1cvSWZmamJucjVCSXk3MDZRTVR4SzhuMHQ3WUZuMTBGTjVEWHZiZzBvTnZuUFFVYld1TjhFbE11NUdpenZxamJmeVZRWXdBSERCcDkzTENsUUJuTUdVQ01GWkNHUGRPazJ2ZzJoUmtxcWQ3SmtDaEpiTmszSVlyanBPL0h2Z2NZQ2RjK2daM3lGRjMyTllBMVRYN1FXUkJYZ0l4QU5xU21ZTHMyeU9uekRFenBtMUtnL0tvYmNqRTJvSDJkZHcxNnFqT0hRSkhkVWRhVzlZL0NQYTRTbWxpN2pPbGdRPT0iLCJjaXBoZXJUZXh0IjoiQVFJQkFIZ0I0VTAwUytxK1ROdXdYMnZRZWhrcUJ1Z3lkN2Jza29KVnVkNjZmY1RDVXdHeDExRlBFUG5xU1ZFbE5YVUNrQnRBQUFBQW9qQ0Jud1lKS29aSWh2Y05BUWNHb0lHUk1JR09BZ0VBTUlHSUJna3Foa2lHOXcwQkJ3RXdIZ1lKWUlaSUFXVURCQUV1TUJFRURHemdQNnJFSWNEb2dWSTl1d0lCRUlCYitXekkvbVpuZkdkTnNYV0VCM3Y4NDF1SVJUNjBLcmt2OTY2Q1JCYmdsdXo1N1lMTnZUTkk4MEdkVXdpYVA5NlZwK0VhL3R6aGgxbTl5dzhjcWdCYU1pOVQrTVQxdzdmZW5xaXFpUnRRMmhvN0tlS2NkMmNmK3YvOHVnPT0iLCJzdWIiOiJhcm46YXdzOnNhZ2VtYWtlcjp1cy1lYXN0LTE6MDYwNzk1OTE1MzUzOm1sZmxvdy1hcHAvYXBwLUxHWkVPWjJVWTROWiIsImlhdCI6MTc2NDM2NDYxNSwiZXhwIjoxNzY0MzY0OTE1fQ.HNvZOfqft4m7pUS52MlDwoi1BA8Vsj3cOfa_CvlT4uw
```

Tampilan 

![\[Contoh gambar Amazon Nova.\]](http://docs.aws.amazon.com/id_id/nova/latest/nova2-userguide/images/screenshot-nova-model-1.png)


***Lanjutkan ke resep di bawah blok run SageMaker HyperPod resep Anda***

Resep

```
run
    mlflow_tracking_uri: arn:aws:sagemaker:us-east-1:111122223333:mlflow-app/app-LGZEOZ2UY4NZ
```

Tampilan

![\[Contoh gambar Amazon Nova.\]](http://docs.aws.amazon.com/id_id/nova/latest/nova2-userguide/images/screenshot-nova-model-2.png)
