Pengoptimalan preferensi langsung (pratinjau)

Pengoptimalan preferensi langsung (DPO) adalah teknik penyelarasan untuk model bahasa besar, yang digunakan untuk menyesuaikan bobot model berdasarkan preferensi manusia. Ini berbeda dari pembelajaran penguatan dari umpan balik manusia (RLHF) karena tidak memerlukan pencocokan model hadiah dan menggunakan preferensi data biner yang lebih simpel untuk pelatihan. Dari segi komputasi, ini lebih ringan dan lebih cepat daripada RLHF, namun tetap sama efektifnya dalam hal penyelarasan.

Mengapa DPO berguna?

DPO sangat berguna dalam skenario di mana tidak ada jawaban yang benar, dan elemen subjektif seperti nada, gaya, atau preferensi konten tertentu penting. Pendekatan ini juga memungkinkan model untuk belajar dari contoh positif (apa yang dianggap benar atau ideal) dan contoh negatif (apa yang kurang diinginkan atau salah).

DPO memudahkan Anda menghasilkan himpunan data pelatihan berkualitas tinggi. Meskipun banyak organisasi berjuang untuk menghasilkan himpunan data yang cukup besar untuk penyempurnaan yang diawasi, mereka sering memiliki data preferensi yang sudah dikumpulkan berdasarkan log pengguna, pengujian A/B, atau upaya anotasi manual yang lebih kecil.

Format himpunan data pengoptimalan preferensi langsung

File pengoptimalan preferensi langsung memiliki format yang berbeda dari penyempurnaan yang diawasi. Anda menyediakan "percakapan" yang berisi pesan sistem dan pesan pengguna awal, lalu "penyelesaian" dengan data preferensi yang dipasangkan. Anda hanya dapat memberikan dua penyelesaian.

Himpunan data menggunakan tiga bidang tingkat atas:

Bidang Diperlukan Deskripsi
input Ya Berisi pesan sistem dan pesan pengguna awal
preferred_output Ya Harus berisi setidaknya satu pesan asisten (peran: asisten, hanya alat)
non_preferred_output Ya Harus berisi setidaknya satu pesan asisten (peran: asisten, hanya alat)
{  
  "input": {  
    "messages": [{"role": "system", "content": ...}],  
    "tools": [...],  
    "parallel_tool_calls": true  
  },  
  "preferred_output": [{"role": "assistant", "content": ...}],  
  "non_preferred_output": [{"role": "assistant", "content": ...}]  
}  

Himpunan data pelatihan harus dalam jsonl format:

{{"input": {"messages": [{"role": "system", "content": "You are a chatbot assistant. Given a user question with multiple choice answers, provide the correct answer."}, {"role": "user", "content": "Question: Janette conducts an investigation to see which foods make her feel more fatigued. She eats one of four different foods each day at the same time for four days and then records how she feels. She asks her friend Carmen to do the same investigation to see if she gets similar results. Which would make the investigation most difficult to replicate? Answer choices: A: measuring the amount of fatigue, B: making sure the same foods are eaten, C: recording observations in the same chart, D: making sure the foods are at the same temperature"}]}, "preferred_output": [{"role": "assistant", "content": "A: Measuring The Amount Of Fatigue"}], "non_preferred_output": [{"role": "assistant", "content": "D: making sure the foods are at the same temperature"}]}
}

Dukungan model pengoptimalan preferensi langsung

Model berikut mendukung penyetelan preferensi langsung:

Model Dukungan DPO Ketersediaan wilayah
gpt-4o-2024-08-06 Ya Lihat model penyempurnaan
gpt-4.1-2025-04-14 Ya Lihat model penyempurnaan
gpt-4.1-mini-2025-04-14 Ya Lihat model penyempurnaan

Anda dapat menggunakan fine-tuning preferensi dengan model dasar dan model yang sudah disempurnakan menggunakan fine-tuning terawasi, selama model dan versinya didukung.

Cara menggunakan penyetelan pengoptimalan preferensi langsung

  1. Arahkan ke Build di bagian atas AI foundry.
  2. Pilih Sesuaikan dari menu samping.
  3. Siapkan himpunan jsonl data dalam format preferensi.
  4. Pilih model lalu pilih metode kustomisasi Pengoptimalan Preferensi Langsung.
  5. Unggah himpunan data – pelatihan dan validasi. Pratinjau sesuai kebutuhan.
  6. Pilih hiperparameter, default direkomendasikan untuk eksperimen awal.
  7. Tinjau pilihan dan buat tugas penyetelan.

Pengoptimalan preferensi langsung - REST API

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/v1/fine_tuning/jobs'
-H "api-key: $AZURE_OPENAI_API_KEY" 
-H 'Content-Type: application/json' 
-H 'task_type: chat' 
--data '{ "model": "gpt-4.1-mini-2025-04-14", "training_file": "file-d02c607351994d29987aece550ac81c0", "validation_file": "file-d02c607351994d29987aece550ac81c0", "prompt_loss_weight": 0.1, "suffix": "Pause_Resume", "method":{ "type":"dpo", "dpo":{ "beta":0.1, "l2_multiplier":0.1 }}}'

Langkah berikutnya