

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

# 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