RLHF och preferensinlärning
Kunna förklara belöningsmodell, PPO/DPO och varför preferensdata formar modellens beteende.
Förkunskaper
Intuition
Efter instruktionsfinjustering (SFT) kan modellen svara. Preferensinlärning lär den hur svaren ska vara.
Klassisk RLHF i tre steg:
- Samla preferenser. Människor får två svar på samma prompt och väljer det bättre.
- Träna en belöningsmodell r(prompt, svar) som förutsäger vilket svar människor föredrar.
- Optimera policyn (språkmodellen) mot belöningen med RL — plus ett KL-straff mot referensmodellen.
KL-straffet är inte en detalj utan det som håller ihop alltihop: utan det hittar policyn snabbt texter som lurar belöningsmodellen men är obegripliga för människor.
Formellt
Målfunktionen i RLHF:
Belöningsmodellen tränas med Bradley–Terry på preferenspar:
DPO (Rafailov m.fl. 2023) visar att optimeringsproblemet har en sluten lösning som gör belöningsmodellen och RL-loopen överflödiga — man kan träna direkt på preferensparen:
DPO är enklare (ingen belöningsmodell, ingen PPO), stabilare och billigare — och därför vanligast i öppna modeller i dag. PPO kan fortfarande vinna när man har mycket preferensdata och vill iterera på belöningsmodellen.
Kända bieffekter:
- Belöningshackning: policyn hittar mönster som belöningsmodellen premierar men människor inte gillar (överdriven artighet, hedging, listor).
- Längdbias: längre svar föredras i data → modellen blir pratig. Motmedel: längdnormaliserad belöning.
- Sycophancy: modellen håller med användaren, eftersom medhåll ofta föredrogs i annoteringen.
Kod
import torch, torch.nn.functional as F
def dpo_loss(policy_logps_w, policy_logps_l, ref_logps_w, ref_logps_l, beta=0.1):
"""logps = summerad log-sannolikhet för svaret givet prompten. w = vald, l = förkastad."""
policy_diff = policy_logps_w - policy_logps_l
ref_diff = ref_logps_w - ref_logps_l
return -F.logsigmoid(beta * (policy_diff - ref_diff)).mean()
# Diagnostik som avslöjar belöningshackning tidigt:
# - medellängd på svaren per träningssteg (stiger den kraftigt? längdbias)
# - KL mot referensmodellen (skenar den? policyn driver iväg)
# - hållbarhetssvit före/efter (tappar modellen allmän förmåga?)
# - andel svar som börjar med medhåll (sycophancy)
Beta-valet: litet β = mer frihet att optimera belöningen men större risk för hackning; stort β = tryggare men mindre effekt. 0,1 är en vanlig utgångspunkt, och värdet ska motiveras med mätning, inte vana.
Behärskning innebär
- Förklarar belöningsmodell, PPO och DPO
- Motiverar KL-straffet
- Känner igen belöningshackning och sycophancy
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- arXiv — Training language models to follow instructions with human feedback — arXiv (öppen åtkomst; licens per artikel)
- arXiv — Direct Preference Optimization — arXiv (öppen åtkomst; licens per artikel)