direct preference optimization
En metode til at finjustere sprogmodeller ved at optimere direkte på par af foretrukne og ikke-foretrukne svar, uden brug af reinforcement learning.
Kort fortalt
En teknik der gør sprogmodeller bedre ved at lære af, hvilke svar der er bedre, uden at skulle bruge komplekse belønningssystemer.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En træningsteknik for sprogmodeller, hvor politikken optimeres direkte på præferencepar ved at maksimere den relative log-sandsynlighed for foretrukne svar, reguleret af en referencepolitik.
- Med DPO kan man aligne en LLM med menneskelige præferencer uden at skulle implementere PPO.
- DPO er mere compute-effektivt end RLHF, da det undgår at træne en separat belønningsmodel.
Hvornår bruges det
DPO bruges typisk i alignment-fasen af LLM-træning, hvor man har et datasæt af menneskelige præferencepar. I stedet for at træne en separat belønningsmodel og derefter køre RL, optimerer DPO direkte politikken ved at maksimere sandsynligheden for foretrukne svar relativt til ikke-foretrukne.
Formel
L_DPO(π_θ) = -E[(x,y_w,y_l)∼D][log σ(β(log π_θ(y_w|x) - log π_θ(y_l|x) - (log π_ref(y_w|x) - log π_ref(y_l|x))))]Kodeeksempel
def dpo_loss(policy_logprobs, ref_logprobs, pref_logprobs, dispref_logprobs, beta=0.1):
# assumes logprobs are shaped (batch,)
ratio = (pref_logprobs - dispref_logprobs) - (ref_logprobs[:,0] - ref_logprobs[:,1]) # simplified, assume ref_logprobs organized
loss = -torch.log(torch.sigmoid(beta * ratio)).mean()
return lossFunktion til at beregne DPO-tabet. Input: log-sandsynligheder fra politik og reference, samt for foretrukne og ikke-foretrukne svar.
Oprindelse
Begrebet blev introduceret i 2023 i artiklen 'Direct Preference Optimization: Your Language Model is Secretly a Reward Model' af Rafailov et al.
Afledte ord
1Kilder
1- Direct Preference Optimization: Your Language Model is Secretly a Reward Model (Rafailov et al., 2023)