4.4.4 · AI-ML › Alignment, Prompting & RAG
Intuition Ek-sentence idea
DPO ek language model ko fine-tune karta hai taaki wo human-chosen answers ko rejected ones se zyada prefer kare — bina kisi separate reward model train kiye aur bina RL ke . Ye RLHF objective ko is tarah rewrite karta hai ki ==language model khud hi reward model ban jaata hai==, aur alignment ek simple classification loss mein convert ho jaati hai.
Intuition Wo problem jisko ye solve karta hai
Standard RLHF (Reinforcement Learning from Human Feedback) ek 3-stage pipeline hai:
Preference pairs pe ek reward model r ϕ train karo.
Policy ko r ϕ ke against optimize karne ke liye PPO (ek RL algorithm) use karo.
Ek KL penalty add karo taaki policy reference model se zyada door na jaaye.
PPO unstable hai, on-the-fly reward-model sampling chahiye, memory-hungry hai (policy + reference + reward + value model), aur tune karna ek nightmare hai. Itna suffer kyun karein? DPO dikhata hai ki ye poori cheez ek single supervised loss mein collapse ho jaati hai, uss preference data pe jo tumhare paas pehle se hai.
Definition Preference data
Triples ( x , y w , y l ) ka ek dataset jahan x ek prompt hai, y w winning (preferred/chosen) response hai aur y l losing (rejected) response hai. Humans (ya koi AI judge) ne y w ≻ y l label kiya hai.
π θ — wo policy jise hum train kar rahe hain (SFT model se shuru hoti hai).
π ref — frozen reference model (SFT checkpoint). Kabhi update nahi hota.
β — ek scalar jo control karta hai ki hum π ref se kitna deviate ho sakte hain.
Hum DPO ko teen moves mein derive karte hain. Har "Why this step?" ko follow karo.
RLHF expected reward maximize karta hai, reference model ke paas rehte hue:
max π θ E x , y ∼ π θ [ r ( x , y ) ] − β KL ( π θ ( y ∣ x ) ∥ π ref ( y ∣ x ) )
Why this step? Reward term high-quality answers ki taraf push karta hai; KL term ek leash ki tarah hai jo model ko gibberish produce karne se rokta hai jo reward ko game kare (reward hacking).
Is objective ka ek known closed-form optimum hai (KL-regularized reward maximization ka ek standard result):
π ∗ ( y ∣ x ) = Z ( x ) 1 π ref ( y ∣ x ) exp ( β 1 r ( x , y ) )
jahan Z ( x ) = ∑ y π ref ( y ∣ x ) exp ( β 1 r ( x , y )) partition function (normalizer) hai.
Why this step? "Given reward, best policy" ko "given policy, implied reward" mein turn karne ke liye. Z ( x ) intractable hai (saari sequences pe sum karta hai) — yahi wo villain hai jise hume eliminate karna hai.
Step 2 ke logs lo aur r ke liye solve karo:
r ( x , y ) = β log π ref ( y ∣ x ) π ∗ ( y ∣ x ) + β log Z ( x )
Why this step? Ab reward policy ke terms mein likha gaya hai . Messy Z ( x ) term sirf x pe depend karta hai, y pe nahi — yeh yaad rakho.
Human preferences ko Bradley–Terry se model kiya jaata hai: probability ki y w , y l ko beat karta hai, ye hai:
P ( y w ≻ y l ∣ x ) = σ ( r ( x , y w ) − r ( x , y l ) )
jahan σ sigmoid hai. Step 3 ka reward substitute karo:
r ( x , y w ) − r ( x , y l ) = β log π ref ( y w ∣ x ) π ∗ ( y w ∣ x ) − β log π ref ( y l ∣ x ) π ∗ ( y l ∣ x ) + = 0 β log Z ( x ) − β log Z ( x )
Why this step? Yahi to magic hai. Kyunki hum same prompt x ke liye rewards ka difference lete hain, intractable log Z ( x ) cancel ho jaata hai . Na reward model, na partition function.
π ∗ ko apne trainable π θ se replace karo aur observed preferences ka log-likelihood maximize karo (equivalently minimize karo):
Gradient hai:
∇ θ L = − β E [ weight σ ( r ^ l − r ^ w ) ( ∇ θ log π θ ( y w ∣ x ) − ∇ θ log π θ ( y l ∣ x ) ) ]
Ye y w ki likelihood badhata hai aur y l ki ghataata hai.
Weight σ ( r ^ l − r ^ w ) tab bada hota hai jab model currently galat ho (loser ko higher rate kare). Isliye DPO learning ko mistakes pe focus karta hai — yeh ek automatic hard-example weighting hai. Isliye DPO ko prioritize karne ke liye explicit reward model ki zaroorat nahi padti.
Worked example Example 1 — Ek single loss term compute karo
Maano β = 0.1 . Ek pair ke liye log-prob ratios hain:
log π ref ( y w ) π θ ( y w ) = 2.0 , aur log π ref ( y l ) π θ ( y l ) = − 1.0 .
Implicit rewards: r ^ w = 0.1 ⋅ 2.0 = 0.2 , r ^ l = 0.1 ⋅ ( − 1.0 ) = − 0.1 .
Why this step? Log-ratio ko β se multiply karna ek policy shift ko reward scale mein convert karta hai.
Margin = 0.2 − ( − 0.1 ) = 0.3 . Loss = − log σ ( 0.3 ) = − log ( 0.574 ) = 0.555 .
Why this step? Positive margin ⇒ model pehle se winner ko prefer karta hai ⇒ thoda sa loss. Agar margin negative hota, loss log 2 ≈ 0.693 se zyada hota.
Worked example Example 2 — Reference model kyun matter karta hai
Same numbers, lekin imagine karo ki π θ = π ref (untrained). Tab dono log-ratios 0 hain, dono r ^ = 0 , margin = 0 , loss = − log σ ( 0 ) = log 2 ≈ 0.693 .
Why this step? Initialization pe loss har example ke liye log 2 hota hai — "coin-flip" baseline. Training tab winner ka ratio upar push karti hai aur loser ka neeche. Ratio (raw log-prob nahi) matter karta hai, isliye jo token base model ke under pehle se likely hai use over-reward nahi milta.
β model ko zyada change karne deta hai."
Kyun sahi lagta hai: β reward ko multiply karta hai, toh bada β = bada reward = zyada optimization, pakka? Fix: β KL leash ka coefficient hai. Loss mein, bada β kisi given deviation ke liye reward gap scale up karta hai, isliye sigmoid saturate ho jaati hai aur gradients jaldi vanish ho jaate hain → model kam deviate karta hai. Small β = loose leash = zyada drift.
Common mistake "DPO ko koi reward model nahi chahiye, toh koi reward hi nahi hai."
Kyun sahi lagta hai: Humne literally reward-model training stage delete kar di. Fix: Reward abhi bhi hai — ye implicit hai: r ^ θ = β log ( π θ / π ref ) . Policy secretly reward ko parameterize karti hai. Yahi poora trick hai.
Common mistake "Reference model ko memory bachane ke liye drop kiya ja sakta hai."
Kyun sahi lagta hai: Ye frozen hai aur kabhi train nahi hota, redundant lagta hai. Fix: π ref ke bina loss high absolute likelihood ko reward karega, model ko kuch high-frequency sequences pe collapse kar dega (degeneration). π ref ke saath ratio hi output distribution ko sane rakhta hai aur Z ( x ) cancel karta hai.
log Z ( x ) cancel ho jaata hai, toh partition functions kabhi matter nahi karte."
Kyun sahi lagta hai: Ye nicely vanish ho gaya. Fix: Ye cancel hota hai sirf isliye kyunki hum same prompt x ke liye do responses compare karte hain (Bradley–Terry difference). Ek single response ke liye koi cancellation nahi hoti — isliye DPO fundamentally pairs chahta hai.
Recall Test karo khud ko (jawab dene ke baad reveal karo)
Partition function Z ( x ) kyun disappear hota hai?
DPO mein "implicit reward" kya hai?
β badhane se model deviation pe kya effect padta hai?
Initialization pe (π θ = π ref ) loss value kya hoti hai?
PPO-RLHF ko kaun se chaar models chahiye jo DPO do se replace karta hai?
Answers: 1) Ye sirf x pe depend karta hai; same x ke liye rewards ka difference lene se cancel ho jaata hai. 2) r ^ θ = β log ( π θ / π ref ) . 3) Deviation reduce hoti hai (tighter KL leash). 4) log 2 ≈ 0.693 . 5) PPO ko policy+reference+reward+value chahiye; DPO ko sirf policy+reference chahiye.
Recall Feynman: ek 12-saal ke bachche ko explain karo
Imagine karo ek robot ko achhe jawab dena sikha rahe ho. Purana tarika: ek judge robot hire karo jo har jawab ko score kare, phir answerer ko train karo ki high scores chase kare — clumsy hai aur answerer judge ko trick karna seekh leta hai. DPO kehta hai: judge ko skip karo! Robot ko sirf pairs dikhao — "ye jawab achha hai, ye bura hai" — aur use nudge karo ki achhe wale ko zyada likely banaye aur bure wale ko kam likely , lekin sirf compare karke ki wo pehle kaise bolta tha , taaki wo pagal na ho jaaye. Robot end mein apna khud ka judge ban jaata hai. Simple, aur koi cheating nahi.
"DPO = Preferences Overwrite PPO." Aur loss shape: W inner U p, L oser D own, R eference R estrains → WULDRR . Aur: big β = big leash (β for Brakes ).
DPO ka matlab kya hai Direct Preference Optimization
Do models jo DPO train/use karta hai Trainable policy π θ aur frozen reference π ref (SFT checkpoint)
DPO loss formula − E [ log σ ( β log π r e f ( y w ∣ x ) π θ ( y w ∣ x ) − β log π r e f ( y l ∣ x ) π θ ( y l ∣ x ) )]
DPO mein partition function Z(x) kyun cancel hota hai Kyunki Bradley-Terry model same prompt x ke liye rewards ka difference use karta hai, aur β log Z ( x ) sirf x pe depend karta hai
DPO implicit reward r ^ θ ( x , y ) = β log π r e f ( y ∣ x ) π θ ( y ∣ x )
DPO mein β badhane ka effect KL leash tight hoti hai → policy reference model se KAM deviate karti hai
Initialization pe DPO loss (π_θ = π_ref) log 2 ≈ 0.693 per example (coin-flip baseline)
Closed-form optimal RLHF policy π ∗ ( y ∣ x ) = Z ( x ) 1 π r e f ( y ∣ x ) exp ( β 1 r ( x , y ))
DPO kaunsa preference model assume karta hai Bradley-Terry: P ( y w ≻ y l ) = σ ( r ( x , y w ) − r ( x , y l ))
DPO ko kaunsa data chahiye Triples ( x , y w , y l ) : prompt, chosen (winning) response, rejected (losing) response
Reference model kyun rakhte hain Iska ratio likelihood collapse/degeneration rokta hai aur Z(x) cancellation enable karta hai; drop karne par raw high-frequency text reward milta hai
RLHF ka kaun sa component DPO eliminate karta hai Separate reward-model training stage aur PPO/RL optimization loop
ka closed-form optimum hai
Z of x sirf x pe depend karta hai
policy IS the reward model
Direct Preference Optimization
KL-regularized reward objective
Partition function cancels
Simple classification loss
Preference data x, y_w, y_l