Direct Preference Optimization (DPO)
Doğrudan Tercih Optimizasyonu'nun (DPO) yapay zeka hizalamasını nasıl basitleştirdiğini öğren. Bu verimli yöntemin model güvenliğini ve performansını iyileştirmek için RLHF'nin yerini nasıl aldığını keşfet.
Direct Preference Optimization (DPO), yapay zeka modellerini insan istekleri, güvenlik standartları ve etik kurallarla uyumlu hale getirmek için kullanılan istikrarlı ve verimli bir algoritmik tekniktir. İnsan geri bildirimini yakalamak için karmaşık, çok aşamalı işlem hatlarına ihtiyaç duyan geleneksel yöntemlerin aksine DPO, tercih öğrenimini doğrudan standart bir makine öğreniminde sınıflandırma görevi olarak ele alarak uyum sürecini matematiksel olarak basitleştirir. Geliştiriciler, annotatorların bir "kazanan" yanıtı "kaybeden" bir yanıta tercih ettiği bir insan tercihleri veri kümesine dayanarak modeli doğrudan optimize ederek, büyük ölçekli temel modellerin ve modern üretken yapay zeka sistemlerinin yardımseverliğini, dürüstlüğünü ve güvenliğini önemli ölçüde artırabilir.
Link to this sectionDPO Model Uyumunu Nasıl Basitleştirir#
Direct Preference Optimization'ın temel yeniliği, mimari "aracıları" ortadan kaldırmasında yatar. Tarihsel olarak, bir Large Language Model (LLM) veya bir Vision-Language Model modelini uyumlu hale getirmek, Reinforcement Learning from Human Feedback (RLHF) olarak bilinen karmaşık bir süreci içeriyordu. RLHF, insan puanlamasını yaklaşık olarak tahmin etmek için ayrı bir ödül modeli eğitmeyi ve ardından ana modeli güncellemek için Proximal Policy Optimization gibi istikrarsızlığa yatkın bir pekiştirmeli öğrenme algoritması kullanmayı gerektirir.
DPO mathematically eliminates the need for this separate reward model. Instead, it relies on a derived loss function that increases the likelihood of generating "preferred" outputs while simultaneously decreasing the likelihood of "rejected" ones. It uses a reference model to limit Kullback-Leibler divergence, ensuring the updated model does not drift too far from its original training data distribution. This mathematical simplification makes the process behave much closer to standard supervised learning, resulting in faster convergence and lower memory usage on GPU hardware. This inherently reduces the risk of model collapse and eliminates extensive hyperparameter tuning.
Link to this sectionGerçek Dünya Uygulamaları#
Direct Preference Optimization, sağlam bir AI Safety arayışıyla çeşitli yüksek riskli endüstrilerde etkileşimli yapay zeka sistemlerinin nasıl oluşturulduğunu ve dağıtıldığını temelden yeniden şekillendiriyor.
- Konuşma Ajanlarını Geliştirme: Chatbotlar ve sanal asistanlar alanında DPO, toksisiteyi azaltmak ve yanıtları katı OpenAI güvenlik en iyi uygulamaları ve Anthropic'in yapay zeka uyumu üzerine araştırmaları ile uyumlu hale getirmek için kullanılır. İnsan annotatorlar, bir isteme verilen iki yanıtı inceler ve kibar, olgusal cevabı "seçilmiş" olarak işaretler. DPO daha sonra, halüsinasyonları cezalandırırken bu belirli konuşma tarzını desteklemek için model ağırlıklarını günceller.
- Görüntü-Dil Modellerini İyileştirme: Görüntü tanıma geliştikçe, modellerden gördüklerini insan operatörlere açıklamaları giderek daha fazla bekleniyor. Görsel soru-cevap gibi uygulamalar için DPO, araştırmacıların modelin metinsel çıktısını ayrıntılı insan tercihleriyle uyumlu hale getirmesine olanak tanır. Örneğin, bir kullanıcı bir Ultralytics YOLO26 destekli robotik sistemden bir nesneyi tanımlamasını isterse, DPO modeli belirsiz yorumlar yerine olgusal, özlü tanımlara öncelik verecek şekilde eğiterek katı AI Ethics kurallarına yakından bağlı kalmasını sağlar.
Link to this sectionUygulamada DPO#
Implementing DPO requires high-quality pairwise data. Modern workflows utilize comprehensive tools like the Ultralytics Platform to seamlessly manage these datasets, ensuring that the data annotation process yields clear "winner" and "loser" examples. You can explore the foundational research behind this in the paper Direct Preference Optimization: Your Language Model is Secretly a Reward Model or read about Alignment and Human Preferences from Stanford HAI.
Aşağıdaki Python kod parçası, PyTorch API referansında bulunan işlevleri kullanarak DPO tarzı bir kayıp hesaplaması için gereken temel veri yapısını gösterir.
import torch
import torch.nn.functional as F
def dpo_loss(chosen_logps, rejected_logps, beta=0.1):
# DPO maximizes the margin between chosen and rejected log probabilities
logits = beta * (chosen_logps - rejected_logps)
# The loss minimizes the negative log sigmoid of this margin
return -F.logsigmoid(logits).mean()
print(f"DPO Loss: {dpo_loss(torch.tensor([-0.5]), torch.tensor([-2.5])):.4f}")





