

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

# DPO
<a name="customizing-models-dpo"></a>

## Deskripsi
<a name="customizing-models-dpo-description"></a>

Pengoptimalan Preferensi Langsung (DPO) menyelaraskan model dengan preferensi manusia dengan melatih pasangan respons yang dipilih (disukai) dan ditolak (tidak disukai) terhadap prompt yang sama.

### Kapan harus digunakan
<a name="customizing-models-dpo-when-to-use"></a>
+ Anda memiliki data preferensi yang menunjukkan tanggapan mana yang lebih baik
+ Meningkatkan kualitas respons melebihi apa yang dicapai SFT
+ Model perlu menghindari perilaku tertentu yang tidak diinginkan

### Apa yang dicapai
<a name="customizing-models-dpo-what-it-achieves"></a>

Model belajar untuk lebih memilih menghasilkan tanggapan yang mirip dengan contoh yang dipilih dan menghindari contoh yang ditolak, tanpa memerlukan model hadiah terpisah.

## Format kumpulan data
<a name="customizing-models-dpo-dataset"></a>

DPO membutuhkan pasangan tanggapan yang dipilih (disukai) dan ditolak (tidak disukai) untuk prompt yang sama. DPO mendukung dua format dataset. Semua dataset harus dalam format JSONL (satu objek JSON per baris). `system`Pesan bersifat opsional dalam kedua format.

### Format 1: `pesan`
<a name="customizing-models-dpo-dataset-format-1"></a>

Berikan `chosen` dan `rejected` sebagai daftar pesan lengkap. Jika disertakan, `system` pesan harus menjadi elemen pertama dan harus sama di keduanya `chosen` dan`rejected`.

```
{
  "chosen": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
  ],
  "rejected": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
  ]
}
```

### Format 2: `promp` t/ `dipili` h/ `ditolak`
<a name="customizing-models-dpo-dataset-format-2"></a>

Berikan prompt dan kedua respons sebagai bidang string terpisah, dengan `system` bidang tingkat atas opsional.

```
{
  "system": "...",
  "prompt": "...",
  "chosen": "...",
  "rejected": "..."
}
```

### Bimbingan
<a name="customizing-models-dpo-dataset-guidance"></a>
+ Tanggapan yang dipilih dan ditolak harus berbeda secara signifikan dalam kualitas
+ Gunakan prompt yang sama untuk dipilih dan ditolak
+ Pesan `system` itu opsional

## Hiperparameter - DPO LoRa
<a name="customizing-models-dpo-hyperparameters-lora"></a>

**catatan**  
Tabel di bawah ini menunjukkan hyperparameter yang tersedia saat Anda menggunakan kustomisasi model [ tanpa server. ](customize-model.md) Hyperparameter lainnya telah ditetapkan oleh Amazon SageMaker AI menggunakan default yang dioptimalkan. Saat Anda menggunakan [ SageMaker Pekerjaan Pelatihan AI ](customizing-models-training-jobs.md) atau [ HyperPod](customizing-models-hyperpod.md), Anda dapat mengakses daftar lengkap hyperparameter yang tersedia di resep. Lihat repositori Resep [ SageMaker AI ](https://github.com/aws/sagemaker-hyperpod-recipes) untuk mendapatkan resep dan mengakses semua hyperparameter.


| Parameter | Tipe | Diperlukan? | Rentang/Nilai | Deskripsi | 
| --- | --- | --- | --- | --- | 
| max\_epochs | Integer | Diperlukan  | 1–100 | Jumlah lintasan lengkap melalui dataset pelatihan. | 
| global\_batch\_size | integer | Diperlukan  | 16, 32, 64, 128 | Total sampel yang diproses per langkah pengoptimal di semua instance. | 
| learning\_rate | float | Diperlukan  | 5e-07—1e-04 | Ukuran langkah untuk pembaruan berat selama pengoptimalan. | 
| lr\_scheduler | string | Diperlukan  | kosinus, konstan | Jadwal penurunan tingkat pembelajaran selama pelatihan. | 
| lr\_warmup\_steps\_ratio | float | Diperlukan  | 0—1 | Fraksi dari total langkah yang dihabiskan untuk meningkatkan tingkat pembelajaran dari 0. | 
| weight\_decay | float | Diperlukan  | 0,0-1,0 | Koefisien regularisasi L2. Membantu mencegah overfit. | 
| gradient\_clipping | boolean | Diperlukan  | benar, salah | Turunkan gradien jika norma melebihi ambang batas. | 
| gradient\_clipping\_threshold | float | Diperlukan  | 0,0-5,0 | Norma gradien maksimum yang diizinkan. | 
| dataset\_max\_len | integer | Diperlukan  | 256—131072 | Panjang urutan maksimum dalam token. Urutan yang lebih panjang dipotong. | 
| seed | integer | Diperlukan  | 0–2147483647 | Benih acak untuk reproduktifitas. | 
| logging\_steps | integer | Diperlukan  | 1–100 | Frekuensi pencatatan metrik dalam langkah-langkah pengoptimal. | 
| lora\_rank | integer | Diperlukan  | 8, 16, 32, 64, 128 | Dimensi matriks peringkat rendah. Lebih rendah = lebih sedikit parameter yang dapat dilatih. | 
| lora\_dropout | float | Diperlukan  | 0,0-1,0 | Probabilitas putus untuk lapisan LoRA adaptor. | 
| lora\_alpha | integer | Diperlukan  | 16, 32, 64, 128, 256 | LoRAfaktor penskalaan. Timbangan LR yang efektif sebagai alpha/rank. | 
| merge\_weights | boolean | Diperlukan  | benar, salah | Gabungkan LoRA bobot ke dalam model dasar setelah pelatihan. | 
| train\_val\_split\_ratio | float | Opsional | 0,0-1,0 | Fraksi dialokasikan untuk pelatihan vs validasi. | 
| temperature | float | Diperlukan  | 0,0-2,0 | Suhu pengambilan sampel untuk evaluasi. | 
| adam\_beta | float | Diperlukan  | 1e-03—0,1 | Suhu terbalik DPO. Mengontrol seberapa kuat model memberlakukan peringkat preferensi. | 

## Hiperparameter - DPO FFT
<a name="customizing-models-dpo-hyperparameters-fft"></a>


| Parameter | Tipe | Diperlukan? | Rentang/Nilai | Deskripsi | 
| --- | --- | --- | --- | --- | 
| max\_epochs | Integer | Diperlukan  | 1–100 | Jumlah lintasan lengkap melalui dataset pelatihan. | 
| global\_batch\_size | integer | Diperlukan  | 16, 32, 64, 128 | Total sampel yang diproses per langkah pengoptimal. | 
| learning\_rate | float | Diperlukan  | 5e-07—1e-04 | Ukuran langkah untuk pembaruan berat. | 
| lr\_scheduler | string | Diperlukan  | kosinus, konstan | Jadwal peluruhan tingkat pembelajaran. | 
| lr\_warmup\_steps\_ratio | float | Diperlukan  | 0—1 | Fraksi langkah untuk pemanasan LR. | 
| weight\_decay | float | Diperlukan  | 0,0-1,0 | Koefisien regularisasi L2. | 
| gradient\_clipping | boolean | Diperlukan  | benar, salah | Turunkan gradien jika norma melebihi ambang batas. | 
| gradient\_clipping\_threshold | float | Diperlukan  | 0,0-5,0 | Norma gradien maksimum yang diizinkan. | 
| dataset\_max\_len | integer | Diperlukan  | 256—131072 | Panjang urutan maksimum dalam token. | 
| max\_response\_length | integer | Diperlukan  | 100—200000 | Token maksimum untuk respons yang dihasilkan. | 
| seed | integer | Diperlukan  | 0–2147483647 | Benih acak untuk reproduktifitas. | 
| logging\_steps | integer | Diperlukan  | 1–100 | Frekuensi pencatatan metrik. | 
| train\_val\_split\_ratio | float | Opsional | 0,0-1,0 | Fraksi dialokasikan untuk pelatihan vs validasi. | 
| temperature | float | Diperlukan  | 0,0-2,0 | Suhu pengambilan sampel untuk evaluasi. | 
| adam\_beta | float | Diperlukan  | 1e-03—0,1 | Suhu terbalik DPO. Mengontrol seberapa kuat model memberlakukan peringkat preferensi. | 