DPO (Doğrudan Tercih Optimizasyonu)

DPO, büyük dil modellerini ödül modeli ve pekiştirmeli öğrenme olmadan, tercih çiftleriyle tek adımda insan tercihlerine hizalayan ince ayar yöntemidir.

DPO (Direct Preference Optimization), Türkçesiyle Doğrudan Tercih Optimizasyonu, büyük dil modellerini insan tercihlerine göre hizalamak için kullanılan ve RLHF'nin çok aşamalı sürecini tek bir denetimli öğrenme adımına indirgeyen bir ince ayar (fine-tuning) yöntemidir. Rafailov ve arkadaşlarının 2023'te Stanford'da yayımladığı "Your Language Model is Secretly a Reward Model" makalesiyle önerildi. Yöntemin çözdüğü sorun şudur: RLHF'de önce insan tercihlerinden ayrı bir ödül modeli eğitilir, ardından bu ödülü maksimize etmek için PPO gibi pekiştirmeli öğrenme algoritmaları çalıştırılır; bu süreç karmaşık, maliyetli ve kararsızdır. DPO ise ödül fonksiyonunun kapalı formda doğrudan politika üzerinden ifade edilebildiğini matematiksel olarak gösterir. Böylece aynı hizalama hedefi, kazanan-kaybeden yanıt çiftlerinden oluşan tercih verisiyle tek aşamada optimize edilir. Kayıp fonksiyonu, modelin tercih edilen yanıta verdiği olasılığı artırırken reddedilen yanıtınkini düşürür ve KL cezasıyla referans modelden aşırı sapmayı engeller. Bu sadeleşme pratikte büyük fark yaratır: ayrı ödül modeli eğitimi, örnekleme döngüleri ve PPO'nun hiperparametre hassasiyeti ortadan kalkar; eğitim daha kararlı, daha ucuz ve tekrarlanabilir hâle gelir. Zephyr, Tülu 2 ve Meta'nın Llama 3 ailesi gibi modellerin hizalama aşamasında DPO kullanıldı. Hugging Face TRL kütüphanesindeki DPOTrainer sınıfı, LoRA veya QLoRA ile birleştiğinde yöntemi tek GPU'lu ortamlarda bile erişilebilir kılar. Bugün DPO, açık kaynak LLM hizalamasının fiili standartlarından biri kabul edilir; IPO, KTO, SimPO ve ORPO gibi varyantlar da bu çerçeveden türetilmiştir. Hangi yöntemin seçileceği veri altyapısına, hesaplama bütçesine ve hedef görevin hassasiyetine bağlıdır.

model_training DPO Nasıl Çalışır?

DPO, bir tercih veri setindeki (x, y_w, y_l) üçlülerini kullanır: x prompt, y_w tercih edilen yanıt, y_l reddedilen yanıttır. Kayıp fonksiyonu, modelin kazanan yanıta verdiği log-olasılığını artırırken kaybeden yanıtınkini azaltır; aynı zamanda referans modelden (genellikle SFT sonrası model) çok uzaklaşmayı KL cezasıyla sınırlar. Yöntemin matematiksel temeli, Bradley-Terry tercih modelindeki ödül fonksiyonunun politika ile referans politika arasındaki log-olasılık oranı cinsinden yeniden yazılabilmesidir. Bu dönüşüm, RLHF'deki ödül modeli eğitimi ve PPO döngüsünü gereksiz kılar: tercih verisi tek bir denetimli öğrenme adımıyla doğrudan politika güncellemesine çevrilir. Pratikte beta hiperparametresi bu dengenin ayarını yapar; düşük beta modele daha fazla hareket alanı tanır, yüksek beta referans modele yakın kalmayı zorlar.

DPO vs. RLHF Karşılaştırması

psychology_alt RLHF

Ayrı ödül modeli eğitimi + PPO döngüsü gerektirir. Daha karmaşık, maliyetli ve kararsız eğitim süreci. Büyük ölçekte daha ince kontrol ve online öğrenme imkânı sunar.

speed DPO

Tek aşamalı denetimli öğrenme; ödül modeline gerek yok. Daha basit, kararlı ve ucuz. Küçük-orta ölçek modellerde RLHF ile rekabetçi performans gösterir.

science SimPO / IPO / KTO / ORPO

DPO'nun referans modelsiz (SimPO), aşırı uyuma dirençli (IPO), tek yanıtlı ikili etiketle çalışan (KTO) veya SFT ile hizalamayı birleştiren (ORPO) varyantları. Her biri farklı tercih sinyali tasarımı sunar.

DPO'nun Teknik Avantajları ve Çalışma Prensibi

  • check_circle Ödül Modelini Ortadan Kaldırır: RLHF'in aksine ayrı bir ödül modeli eğitimi gerektirmez; tercih verisi doğrudan politika güncellemesine dönüştürülür.
  • check_circle Kararlı Eğitim: PPO gibi aktör-eleştirmen (actor-critic) yöntemlerinin hiperparametre hassasiyeti ve dengesizliğinden kaçınır; eğitim süreci klasik denetimli öğrenme kadar öngörülebilirdir.
  • check_circle Daha Az Hesaplama: Tek aşamalı eğitim, RLHF'e kıyasla hem GPU saatini hem de altyapı karmaşıklığını önemli ölçüde azaltır; eğitim sırasında örnekleme yapılması gerekmez.
  • check_circle Bradley-Terry Modeli: Tercihleri olasılıksal olarak modellemek için Bradley-Terry çerçevesini kullanır; tercih verisi ikili karşılaştırma şeklinde etiketlenir (kazanan vs. kaybeden).
  • check_circle Referans Politika: KL-ıraksama cezasıyla orijinal modelden çok fazla uzaklaşmayı önler; böylece model dil yeteneklerini ve genel bilgisini korur.
  • check_circle Veri Gereksinimleri: Her örnek için aynı prompt'a verilen tercih edilen (chosen) ve reddedilen (rejected) yanıt çiftleri gerekir; veri kalitesi sonucu doğrudan belirler.

DPO'nun Pratik Uygulaması ve Rakip Yöntemler

DPO, büyük dil modellerini hizalamak için RLHF'e pratik bir alternatif olarak ortaya çıkmıştır. Hugging Face TRL kütüphanesi DPO'yu DPOTrainer sınıfıyla kutudan çıkar kullanılabilir biçimde sunar; LoRA veya QLoRA ile birlikte kullanıldığında tüketici donanımında bile uygulanabilir hâle gelir. Tipik iş akışı üç adımdır: önce SFT ile temel yetenekler kazandırılır, ardından tercih veri seti hazırlanır, son olarak DPO eğitimi çalıştırılır. DPO'dan türetilen varyantlar da yaygınlaşmıştır: IPO aşırı uyum sorununu azaltır, SimPO referans modeli gerektirmeyen daha basit bir formülasyon sunar, KTO ikili karşılaştırma yerine tek yanıtlı beğeni/beğenmeme etiketiyle çalışır. Zephyr, Tülu 2 ve Llama 3 gibi modeller hizalama sürecinde DPO kullanan bilinen örneklerdir. Yöntemin temel zorluğu kaliteli tercih verisi oluşturmaktır; insan etiketçi yorgunluğu ve tutarsız değerlendirmeler sonuç kalitesini doğrudan etkiler. Bu nedenle güçlü bir modelle yapay tercih verisi üretimi (AI feedback) giderek yaygın bir pratik hâline geldi. RLHF, DPO veya online DPO seçimi pratikte veri altyapısına, hesaplama bütçesine ve hedef görevin karmaşıklığına bağlıdır.

quiz Sıkça Sorulan Sorular (FAQ)

  • check_circle DPO nedir?: DPO (Direct Preference Optimization), büyük dil modellerini insan tercihlerine göre hizalamak için ayrı bir ödül modeli gerektirmeden doğrudan tercih verisi kullanan ince ayar yöntemidir. 2023'te Stanford'da önerilmiştir ve RLHF'nin tek aşamalı, daha basit alternatifi olarak kullanılır.
  • check_circle DPO ile RLHF arasındaki fark nedir?: RLHF önce bir ödül modeli eğitir, ardından PPO ile politikayı günceller; iki aşamalı ve hesaplama açısından maliyetlidir. DPO tercih verisiyle politikayı doğrudan optimize eder; daha basit, kararlı ve ucuzdur. Çok büyük ölçekte veya hassas hizalamada RLHF hâlâ tercih edilebilir.
  • check_circle DPO için nasıl veri hazırlanır?: Her örnek için aynı prompt'a verilen 'tercih edilen' (chosen) ve 'reddedilen' (rejected) yanıt çiftleri gerekir. Veri, insan değerlendiricilerle veya güçlü bir modelden yapay etiketlemeyle oluşturulabilir. Veri kalitesi eğitim sonucunu doğrudan belirler.
  • check_circle DPO için hazır tercih verisi nereden bulunur?: Anthropic HH-RLHF, UltraFeedback, Nectar ve ultrafeedback_binarized gibi açık veri setleri Hugging Face üzerinde mevcuttur. Kendi alanınıza özgü veri için sentetik üretim de yaygın bir yoldur.
  • check_circle DPO, TRL kütüphanesiyle nasıl uygulanır?: Hugging Face'in TRL kütüphanesi DPOTrainer sınıfını sunar. SFT modeli ve tercih veri setiyle birkaç satır kodla eğitim başlatılır; LoRA/QLoRA veya Unsloth ile tek GPU'da bile çalıştırılabilir.
  • check_circle DPO ne zaman kullanılmaz?: Çok büyük ölçekte veya çok hassas hizalama gerektiren durumlarda RLHF ya da online yöntemler daha sağlam sonuç verebilir. DPO ayrıca veri kalitesine duyarlıdır; gürültülü tercih verisiyle beklenen kazanım alınamayabilir.