Hoppa till innehållet
AI-grafen
F· AI engineeringai-sakerhet-alignment· ca 90 min· volatil — kontrolleras ofta· verifierad 2026-09-20

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:

  1. Samla preferenser. Människor får två svar på samma prompt och väljer det bättre.
  2. Träna en belöningsmodell r(prompt, svar) som förutsäger vilket svar människor föredrar.
  3. 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: max⁡π Ex∼D, y∼π(⋅∣x)[rϕ(x,y)]−β DKL(π(⋅∣x) ∥ πref(⋅∣x))\max_\pi\ \mathbb E_{x\sim D,\, y\sim\pi(\cdot|x)}\big[r_\phi(x,y)\big] - \beta\, D_{KL}\big(\pi(\cdot|x)\,\|\,\pi_{\text{ref}}(\cdot|x)\big)

Belöningsmodellen tränas med Bradley–Terry på preferenspar: Lr=−E(x,yw,yl)[log⁡σ(rϕ(x,yw)−rϕ(x,yl))]\mathcal L_r = -\mathbb E_{(x,y_w,y_l)}\big[\log \sigma\big(r_\phi(x,y_w) - r_\phi(x,y_l)\big)\big]

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: LDPO=−E[log⁡σ(βlog⁡πθ(yw∣x)πref(yw∣x)−βlog⁡πθ(yl∣x)πref(yl∣x))]\mathcal L_{DPO} = -\mathbb E\Big[\log\sigma\Big(\beta\log\frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)}\Big)\Big]

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

Alla källor och licenser