View a markdown version of this page

DPO - Amazon SageMaker AI

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

DPO

Deskripsi

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

  • 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

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

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). systemPesan bersifat opsional dalam kedua format.

Format 1: pesan

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

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

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

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

Bimbingan

  • 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

catatan

Tabel di bawah ini menunjukkan hyperparameter yang tersedia saat Anda menggunakan kustomisasi model tanpa server. Hyperparameter lainnya telah ditetapkan oleh Amazon SageMaker AI menggunakan default yang dioptimalkan. Saat Anda menggunakan SageMaker Pekerjaan Pelatihan AI atau HyperPod, Anda dapat mengakses daftar lengkap hyperparameter yang tersedia di resep. Lihat repositori Resep SageMaker AI untuk mendapatkan resep dan mengakses semua hyperparameter.

Parameter Tipe Diperlukan? Rentang/Nilai Deskripsi
max_epochsIntegerDiperlukan 1–100Jumlah lintasan lengkap melalui dataset pelatihan.
global_batch_sizeintegerDiperlukan 16, 32, 64, 128Total sampel yang diproses per langkah pengoptimal di semua instance.
learning_ratefloatDiperlukan 5e-07—1e-04Ukuran langkah untuk pembaruan berat selama pengoptimalan.
lr_schedulerstringDiperlukan kosinus, konstanJadwal penurunan tingkat pembelajaran selama pelatihan.
lr_warmup_steps_ratiofloatDiperlukan 0—1Fraksi dari total langkah yang dihabiskan untuk meningkatkan tingkat pembelajaran dari 0.
weight_decayfloatDiperlukan 0,0-1,0Koefisien regularisasi L2. Membantu mencegah overfit.
gradient_clippingbooleanDiperlukan benar, salahTurunkan gradien jika norma melebihi ambang batas.
gradient_clipping_thresholdfloatDiperlukan 0,0-5,0Norma gradien maksimum yang diizinkan.
dataset_max_lenintegerDiperlukan 256—131072Panjang urutan maksimum dalam token. Urutan yang lebih panjang dipotong.
seedintegerDiperlukan 0–2147483647Benih acak untuk reproduktifitas.
logging_stepsintegerDiperlukan 1–100Frekuensi pencatatan metrik dalam langkah-langkah pengoptimal.
lora_rankintegerDiperlukan 8, 16, 32, 64, 128Dimensi matriks peringkat rendah. Lebih rendah = lebih sedikit parameter yang dapat dilatih.
lora_dropoutfloatDiperlukan 0,0-1,0Probabilitas putus untuk lapisan LoRA adaptor.
lora_alphaintegerDiperlukan 16, 32, 64, 128, 256LoRAfaktor penskalaan. Timbangan LR yang efektif sebagai alpha/rank.
merge_weightsbooleanDiperlukan benar, salahGabungkan LoRA bobot ke dalam model dasar setelah pelatihan.
train_val_split_ratiofloatOpsional0,0-1,0Fraksi dialokasikan untuk pelatihan vs validasi.
temperaturefloatDiperlukan 0,0-2,0Suhu pengambilan sampel untuk evaluasi.
adam_betafloatDiperlukan 1e-03—0,1Suhu terbalik DPO. Mengontrol seberapa kuat model memberlakukan peringkat preferensi.

Hiperparameter - DPO FFT

Parameter Tipe Diperlukan? Rentang/Nilai Deskripsi
max_epochsIntegerDiperlukan 1–100Jumlah lintasan lengkap melalui dataset pelatihan.
global_batch_sizeintegerDiperlukan 16, 32, 64, 128Total sampel yang diproses per langkah pengoptimal.
learning_ratefloatDiperlukan 5e-07—1e-04Ukuran langkah untuk pembaruan berat.
lr_schedulerstringDiperlukan kosinus, konstanJadwal peluruhan tingkat pembelajaran.
lr_warmup_steps_ratiofloatDiperlukan 0—1Fraksi langkah untuk pemanasan LR.
weight_decayfloatDiperlukan 0,0-1,0Koefisien regularisasi L2.
gradient_clippingbooleanDiperlukan benar, salahTurunkan gradien jika norma melebihi ambang batas.
gradient_clipping_thresholdfloatDiperlukan 0,0-5,0Norma gradien maksimum yang diizinkan.
dataset_max_lenintegerDiperlukan 256—131072Panjang urutan maksimum dalam token.
max_response_lengthintegerDiperlukan 100—200000Token maksimum untuk respons yang dihasilkan.
seedintegerDiperlukan 0–2147483647Benih acak untuk reproduktifitas.
logging_stepsintegerDiperlukan 1–100Frekuensi pencatatan metrik.
train_val_split_ratiofloatOpsional0,0-1,0Fraksi dialokasikan untuk pelatihan vs validasi.
temperaturefloatDiperlukan 0,0-2,0Suhu pengambilan sampel untuk evaluasi.
adam_betafloatDiperlukan 1e-03—0,1Suhu terbalik DPO. Mengontrol seberapa kuat model memberlakukan peringkat preferensi.