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. 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 loss

Funktion 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

1

Kilder

1
  • Direct Preference Optimization: Your Language Model is Secretly a Reward Model (Rafailov et al., 2023)