

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

# Reinforcement Fine-Tuning (RFT) dengan model Amazon Nova
<a name="nova-reinforcement-fine-tuning"></a>

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

**Apa itu RFT?**

Reinforcement fine-tuning (RFT) meningkatkan kinerja model dengan melatih sinyal umpan balik — skor atau penghargaan yang dapat diukur yang menunjukkan seberapa baik kinerja model — daripada jawaban yang benar dan tepat. Tidak seperti fine-tuning 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 unggul ketika mendefinisikan output yang benar secara tepat menantang, tetapi Anda dapat mengukur kualitas respons dengan andal.

**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 di mana kualitas bersifat subjektif atau beragam (penulisan kreatif, pengoptimalan kode, penalaran kompleks)
+ Skenario dengan beberapa solusi valid di mana beberapa jelas lebih baik daripada yang lain
+ Aplikasi yang membutuhkan perbaikan berulang, personalisasi, atau kepatuhan terhadap aturan bisnis yang kompleks
+ Kasus di mana mengumpulkan contoh berlabel berkualitas tinggi mahal atau tidak praktis

**Kasus penggunaan terbaik**

RFT unggul dalam domain di mana kualitas output dapat diukur secara objektif tetapi respons optimal sulit untuk didefinisikan di muka:
+ Pemecahan masalah matematika dan pembuatan kode
+ Penalaran ilmiah dan analisis data terstruktur
+ Tugas yang membutuhkan step-by-step penalaran atau pemecahan masalah multi-putaran
+ Aplikasi menyeimbangkan berbagai tujuan (akurasi, efisiensi, gaya)
+ Skenario di mana keberhasilan dapat diverifikasi secara terprogram melalui hasil eksekusi atau metrik kinerja

**Model yang didukung**

Nova Lite 2.0

## Ikhtisar format data
<a name="nova-rft-data-format"></a>

[Data pelatihan RFT harus mengikuti format Fine-Tuning Penguatan OpenAI.](https://platform.openai.com/docs/api-reference/fine-tuning/reinforcement-input) Setiap contoh pelatihan adalah objek JSON yang berisi:
+ `messages`Array dengan giliran percakapan menggunakan `system` dan peran `user`
+ `reference_answer`Bidang yang berisi output yang diharapkan atau kriteria evaluasi untuk perhitungan hadiah

**Keterbatasan saat ini**
+ Hanya teks

### Contoh format data
<a name="nova-rft-data-examples"></a>

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

------
#### [ Chemistry problem ]

```
{
  "id": "chem-01",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Calculate the molecular weight of caffeine (C8H10N4O2)"
    }
  ],
  "reference_answer": {
    "molecular_weight": 194.19,
    "unit": "g/mol",
    "calculation": "8(12.01) + 10(1.008) + 4(14.01) + 2(16.00) = 194.19"
  }
}
```

------
#### [ Math problem ]

```
{
  "id": "sample-001",  // Optional
  "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"]
  }
}
```

------
#### [ Code problem ]

```
{
  "id": "code-002",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful programming assistant"
    },
    {
      "role": "user",
      "content": "Write a Python function that reverses a string without using built-in reverse methods"
    }
  ],
  "reference_answer": {
    "code": "def reverse_string(s):  \n    result = ''  \n    for i in range(len(s) - 1, -1, -1):  \n        result += s[i]  \n    return result",
    "test_cases": [
      {
        "input": "hello",
        "expected_output": "olleh"
      },
      {
        "input": "",
        "expected_output": ""
      },
      {
        "input": "a",
        "expected_output": "a"
      },
      {
        "input": "Python123",
        "expected_output": "321nohtyP"
      }
    ],
    "all_tests_pass": true
  }
}
```

------

`reference_answer`Bidang berisi output yang diharapkan atau kriteria evaluasi yang digunakan fungsi hadiah Anda untuk menilai respons model. Ini tidak terbatas pada output terstruktur—dapat berisi format apa pun yang membantu fungsi hadiah Anda mengevaluasi kualitas.

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

**Titik awal**
+ Minimal 100 contoh pelatihan
+ Minimal 100 contoh evaluasi

**Pendekatan evaluasi-pertama**

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

Dimulai dengan kumpulan data kecil memungkinkan Anda untuk:
+ Validasi fungsi reward Anda bebas bug
+ Konfirmasikan RFT adalah pendekatan yang tepat untuk kasus penggunaan Anda
+ Identifikasi dan perbaiki masalah lebih awal
+ Uji alur kerja sebelum meningkatkan

Setelah divalidasi, Anda dapat memperluas ke kumpulan data yang lebih besar untuk lebih meningkatkan kinerja.

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

**Kejelasan dan konsistensi**

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
+ Petunjuk ambigu
+ Jawaban referensi yang bertentangan

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

**Keanekaragaman**

Dataset Anda harus menangkap keragaman penuh kasus penggunaan produksi untuk memastikan kinerja dunia nyata yang kuat. Termasuk:
+ Format input dan kasus tepi yang berbeda
+ Memetakan pola penggunaan produksi aktual dari log dan analisis pengguna
+ Sampel di seluruh jenis pengguna, wilayah geografis, dan variasi musiman
+ Sertakan tingkat kesulitan dari masalah sederhana hingga yang kompleks

**Pertimbangan fungsi penghargaan**

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.

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

Format data RFT mendukung bidang khusus di luar persyaratan skema inti (`messages`dan`reference_answer`). Fleksibilitas ini memungkinkan Anda menambahkan data tambahan yang dibutuhkan fungsi hadiah Anda untuk evaluasi yang tepat.

**catatan**  
Anda tidak perlu mengonfigurasi ini dalam resep Anda—format data secara inheren mendukung bidang tambahan. Cukup sertakan mereka dalam data pelatihan Anda JSON, dan mereka akan diteruskan ke fungsi hadiah Anda di `metadata` lapangan.

**Properti tambahan umum**

Contoh bidang metadata:
+ `task_id`— Pengidentifikasi unik untuk melacak
+ `difficulty_level`— Indikator kompleksitas masalah
+ `domain`— Bidang subjek atau kategori
+ `expected_reasoning_steps`— Jumlah langkah dalam solusi

**Contoh dengan properti tambahan**

```
{
  "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
}
```

Bidang tambahan ini diteruskan ke fungsi hadiah Anda selama evaluasi, memungkinkan logika penilaian canggih yang disesuaikan dengan kasus penggunaan spesifik Anda.

## Konfigurasi pelatihan
<a name="nova-rft-training-config"></a>

**Resep sampel**

```
# Note:
# This recipe can run on p5.48xlarge and p5en.48xlarge instance types.
run:
  name: "my-rft-run"                           # Unique run name (appears in logs/artifacts).
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  data_s3_path: s3://<bucket>/<data file>      # Training dataset in JSONL;
  replicas: 4
  reward_lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name>

  ## MLFlow configs
  mlflow_tracking_uri: "" # Required for MLFlow
  mlflow_experiment_name: "my-rft-experiment" # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-rft-run" # Optional for MLFlow. Note: leave this field non-empty

## SMTJ GRPO Training specific configs
training_config:
  max_length: 8192                              # Context window (tokens) for inputs+prompt;
  global_batch_size: 16                         # Total samples per optimizer step across all replicas (16/32/64/128/256).
  reasoning_effort: high                        # Enables reasoning mode high / low / or null for non-reasoning

  rollout:                                      # How responses are generated for GRPO/advantage calc.
    advantage_strategy:
      number_generation: 2                      # N samples per prompt to estimate advantages (variance vs cost).
    generator:
      max_new_tokens: 6000                      # Cap on tokens generated per sample
      set_random_seed: true                     # Seed generation for reproducibility across runs.
      temperature: 1                            # Softmax temperature;
      top_k: 1                                  # Sample only from top-K logits
    rewards:
      preset_reward_function: null              # Usage of preset reward functions [exact_match]
      api_endpoint:
        lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name>
        lambda_concurrency_limit: 12             # Max concurrent Lambda invocations (throughput vs. throttling).

  trainer:
    max_steps: 2                                 # Steps to train for. One Step = global_batch_size
    save_steps: 5
    test_steps: 1

    # RL parameters
    ent_coeff: 0.0                              # A bonus added to the policy loss that rewards higher-output entropy.
    kl_loss_coef: 0.001                         # Weight on the KL penalty between the actor (trainable policy) and a frozen reference model

    optim_config:                    # Optimizer settings
        lr: 5e-5                       # Learning rate
        weight_decay: 0.0              # L2 regularization strength (0.0–1.0)
        adam_beta1: 0.9
        adam_beta2: 0.95

    peft:                            # Parameter-efficient fine-tuning (LoRA)
        peft_scheme: "lora"            # Enable LoRA for PEFT
        lora_tuning:
            alpha: 32
            lora_plus_lr_ratio: 64.0     # LoRA+ learning rate scaling factor (0.0–100.0)
```

## Pelatihan RFT menggunakan LLM sebagai juri
<a name="nova-rft-llm-judge"></a>

### Ikhtisar
<a name="nova-rft-llm-judge-overview"></a>

Model bahasa besar (LLMs) semakin banyak digunakan sebagai juri dalam alur kerja penyempurnaan penguatan (RFT), menyediakan sinyal hadiah otomatis yang memandu pengoptimalan model. Dalam pendekatan ini, LLM mengevaluasi keluaran model terhadap kriteria yang ditentukan—apakah menilai kebenaran, kualitas, kepatuhan gaya, atau kesetaraan semantik—dan memberikan penghargaan yang mendorong proses pembelajaran penguatan.

Ini sangat berharga untuk tugas-tugas di mana fungsi hadiah tradisional sulit untuk didefinisikan secara terprogram, seperti menentukan apakah representasi yang berbeda (seperti “1/3", “0.333", dan “sepertiga”) setara secara semantik, atau mengevaluasi kualitas bernuansa seperti koherensi dan relevansi. Dengan menggunakan juri berbasis LLM sebagai fungsi penghargaan, Anda dapat menskalakan RFT ke domain kompleks tanpa memerlukan anotasi manusia yang ekstensif, memungkinkan iterasi cepat dan peningkatan berkelanjutan model Anda di berbagai kasus penggunaan di luar masalah penyelarasan tradisional.

### Pemilihan mode penalaran
<a name="nova-rft-reasoning-mode"></a>

**Mode yang 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 media untuk RFT. Jika bidang reasing\$1effort tidak ada dalam konfigurasi Anda, penalaran akan dinonaktifkan. Saat penalaran diaktifkan, Anda harus mengatur `max_new_tokens` ke 32768 untuk mengakomodasi output penalaran yang diperluas.

**Kapan menggunakan setiap mode**

Gunakan penalaran tinggi untuk:
+ 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:
+ Pertanyaan faktual sederhana
+ Klasifikasi langsung
+ Optimalisasi kecepatan dan biaya
+ Menjawab pertanyaan langsung

**Pengorbanan biaya dan kinerja**

Mode penalaran yang lebih tinggi meningkat:
+ Waktu dan biaya pelatihan
+ Latensi inferensi dan biaya
+ Kemampuan model untuk tugas penalaran yang kompleks

### Memvalidasi hakim LLM Anda
<a name="nova-rft-validating-judge"></a>

Sebelum menerapkan LLM-as-a-judge dalam produksi, validasi bahwa evaluasi model hakim selaras dengan penilaian manusia. Ini melibatkan:
+ Mengukur tingkat kesepakatan antara hakim LLM dan evaluator manusia pada sampel yang representatif dari tugas Anda
+ Memastikan bahwa perjanjian LLM dengan manusia memenuhi atau melampaui tingkat perjanjian antar manusia
+ Mengidentifikasi bias potensial dalam model hakim
+ Membangun kepercayaan bahwa sinyal hadiah memandu model Anda ke arah yang diinginkan

Langkah validasi ini membantu memastikan proses evaluasi otomatis akan menghasilkan model yang memenuhi kriteria kualitas produksi Anda.

### Konfigurasi Lambda untuk hakim LLM
<a name="nova-rft-lambda-config"></a>

Menggunakan LLM sebagai juri adalah perpanjangan dari penggunaan fungsi Lambda untuk Pembelajaran Penguatan dengan Hadiah yang Dapat Diverifikasi (RLVR). Di dalam fungsi Lambda, Anda melakukan panggilan ke salah satu model yang dihosting di Amazon Bedrock.

**Persyaratan konfigurasi penting:**


| Konfigurasi | Persyaratan | Detail | 
| --- | --- | --- | 
| Throughput Amazon Bedrock | Kuota yang cukup | Pastikan kuota throughput Anda untuk model Amazon Bedrock yang digunakan cukup untuk beban kerja latihan Anda | 
| Batas waktu Lambda | Batas waktu diperpanjang | Konfigurasikan batas waktu fungsi Lambda Anda hingga maksimum 15 menit. Pengaturan default adalah 3 detik, yang tidak cukup untuk respons model Amazon Bedrock | 
| Konkurensi Lambda | Peningkatan konkurensi | Lambda dipanggil secara paralel selama pelatihan. Meningkatkan konkurensi untuk memaksimalkan throughput yang tersedia | 
| Konfigurasi resep | Cocokkan pengaturan Lambda | Batas konkurensi harus dikonfigurasi dalam resep Anda | 

## Menciptakan dan menjalankan pekerjaan
<a name="nova-rft-creating-jobs"></a>

**Memulai pekerjaan pelatihan**

Gunakan templat buku catatan pekerjaan SageMaker pelatihan: [https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook)

**Persyaratan instans**

Wadah mendukung pelatihan Peringkat Penuh dan LoRa:
+ **Pelatihan LoRa** - 2/4/6/8 × p5.48xlarge atau instans p5en.48xlarge
+ **Pelatihan Peringkat Penuh** - 2/4/6/8 × instans p5.48xlarge (wajib)

## Pelatihan pemantauan
<a name="nova-rft-monitoring"></a>

Log pelatihan mencakup metrik komprehensif di setiap langkah. Kategori metrik utama:

**Metrik skor**
+ `critic/rewards/mean`,`critic/rewards/max`, `critic/rewards/min` — Distribusi hadiah
+ `val-score/rewards/mean@1`— Hadiah validasi

**Perilaku model**
+ `actor/entropy`— Variasi kebijakan (lebih tinggi = lebih eksplorasi)

**Pelatihan kesehatan**
+ `actor/pg_loss`— Kehilangan gradien kebijakan
+ `actor/pg_clipfrac`— Frekuensi pembaruan terpotong
+ `actor/grad_norm`— Besaran gradien

**Karakteristik respons**
+ `prompt_length/mean`,`prompt_length/max`, `prompt_length/min` — Masukan statistik token
+ `response_length/mean`,`response_length/max`, `response_length/min` — Statistik token keluaran
+ `response/aborted_ratio`— Tingkat generasi tidak lengkap (0 = semua selesai)

**Performa**
+ `perf/throughput`— Throughput pelatihan
+ `perf/time_per_step`— Waktu per langkah pelatihan
+ `timing_per_token_ms/*`— Waktu pemrosesan per token

**Penggunaan sumber daya**
+ `perf/max_memory_allocated_gb`, `perf/max_memory_reserved_gb` — Memori GPU
+ `perf/cpu_memory_used_gb`— Memori CPU

## Menggunakan model yang disetel dengan baik
<a name="nova-rft-using-models"></a>

Setelah pelatihan selesai, pos pemeriksaan model akhir disimpan ke lokasi keluaran yang Anda tentukan. Jalur pos pemeriksaan tersedia di:
+ Log pelatihan
+ `manifest.json`berkas di lokasi keluaran Amazon S3 (ditentukan oleh `output_s3_uri` di buku catatan Anda)

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

**Batasan**
+ Batas **waktu Lambda** - Fungsi hadiah harus selesai dalam waktu 15 menit (mencegah proses pelarian dan mengelola biaya)
+ **Hanya satu putaran** - Percakapan multi-putaran tidak didukung
+ **Persyaratan data** - Membutuhkan keragaman yang cukup; berjuang dengan imbalan yang jarang (< 5% contoh positif)
+ **Biaya komputasi** — Lebih mahal daripada fine-tuning yang diawasi
+ **Tidak ada data multi-modal** - Hanya tipe data teks yang didukung

**Praktik terbaik**

**Mulai dari yang kecil**
+ Mulailah dengan 100-200 contoh
+ Validasi kebenaran fungsi hadiah
+ Skala secara bertahap berdasarkan hasil

**Evaluasi pra-pelatihan**
+ Uji kinerja model dasar sebelum RFT
+ Jika hadiah konsisten 0%, gunakan SFT terlebih dahulu untuk membangun kemampuan dasar
+ Jika hadiah> 95%, RFT mungkin tidak diperlukan

**Pantau pelatihan**
+ Lacak skor dan distribusi hadiah rata-rata
+ Perhatikan overfitting (hadiah pelatihan meningkat sementara imbalan validasi berkurang)
+ Cari pola yang menyangkut:
  + Hadiah yang berada di bawah 0,15
  + Meningkatkan varians hadiah dari waktu ke waktu
  + Menurunnya kinerja validasi

**Optimalkan fungsi hadiah**
+ Jalankan dalam hitungan detik (bukan menit)
+ Minimalkan panggilan API eksternal
+ Gunakan algoritma yang efisien
+ Menerapkan penanganan kesalahan yang tepat
+ Manfaatkan penskalaan paralel Lambda

**Strategi iterasi**

Jika hadiah tidak membaik:
+ Sesuaikan desain fungsi hadiah
+ Meningkatkan keragaman dataset
+ Tambahkan lebih banyak contoh yang representatif
+ Verifikasi sinyal hadiah jelas dan konsisten

## Kemampuan lanjutan: Nova Forge
<a name="nova-rft-advanced"></a>

Untuk pengguna yang membutuhkan kemampuan canggih di luar batasan RFT standar, Nova Forge tersedia sebagai penawaran layanan berlangganan berbayar:
+ Dukungan percakapan multi-giliran
+ Fungsi hadiah dengan> 15 menit waktu eksekusi
+ Algoritma tambahan dan opsi penyetelan
+ Modifikasi resep pelatihan khusus
+ State-of-the-art Teknik AI

Nova Forge berjalan SageMaker HyperPod dan dirancang untuk mendukung pelanggan perusahaan untuk membangun model perbatasan mereka sendiri.

## Perintah dan tips yang berguna
<a name="nova-rft-useful-commands"></a>

Kumpulan [skrip observabilitas](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/SageMakerUilts/SageMakerJobsMonitoring) tersedia untuk membantu memantau status dan kemajuan pekerjaan pelatihan.

Skrip yang tersedia adalah:
+ Mengaktifkan pemberitahuan email untuk pembaruan status pekerjaan pelatihan
+ Memperoleh perkiraan waktu pelatihan berdasarkan konfigurasi pekerjaan
+ Memperoleh perkiraan berapa lama pelatihan yang diharapkan untuk pekerjaan yang sedang berlangsung

**Instalasi**

**catatan**  
Pastikan untuk menyegarkan AWS kredensil Anda sebelum menggunakan salah satu skrip berikut.

```
pip install boto3
git clone https://github.com/aws-samples/amazon-nova-samples.git
cd amazon-nova-samples/customization/SageMakerUilts/SageMakerJobsMonitoring/
```

**Penggunaan dasar**

```
# Enabling email notifications for training job status updates
python enable_sagemaker_job_notifs.py --email test@amazon.com test2@gmail.com --region us-east-1 --platform SMTJ

Creating resources........
Please check your email for a subscription confirmation email, and click 'Confirm subscription' to start receiving job status email notifications!
You'll receive the confirmation email within a few minutes.
```

```
# Obtaining training time estimates based on job configurations
python get_training_time_estimate.py
```

```
# Obtaining approximations for how long training is expected to take for in-progress jobs
python get-training-job-progress.py --region us-east-1 --job-name my-training-job --num-dataset-samples 1000
```

Silakan lihat [di sini](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/SageMakerUilts/SageMakerJobsMonitoring/README.md) untuk detail dan contoh tambahan.