DPO-træning

forkortelse for Direct Preference Optimization

DPO-træning er en metode til at finjustere sprogmodeller direkte på præferencedata uden brug af en belønningsmodel.

Kort fortalt

En måde at træne en sprogmodel på, så den lærer at foretage valg, som mennesker foretrækker, ved at sammenligne to svar.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En træningsmetode, hvor en sprogmodel finjusteres ved at maksimere sandsynligheden for foretrukne svar over ikke-foretrukne svar, baseret på en Bradley-Terry-præferencemodel, uden at træne en separat belønningsmodel.

    • DPO-træning har vist sig at være lige så effektiv som RLHF, men med markant mindre beregningskompleksitet.Rafailov et al., 2023
    • Efter SFT blev modellen yderligere tilpasset med DPO-træning på et datasæt af menneskelige præferencer.

Hvornår bruges det

DPO-træning anvendes typisk efter en indledende overvåget finjustering (SFT) for at tilpasse modellen til menneskelige præferencer. Det er populært som et alternativ til RLHF, da det er enklere og mere stabilt.

Kodeeksempel

def dpo_loss(policy_chosen_logps, policy_rejected_logps, ref_chosen_logps, ref_rejected_logps, beta):
    policy_log_ratio = policy_chosen_logps - policy_rejected_logps
    ref_log_ratio = ref_chosen_logps - ref_rejected_logps
    logits = beta * (policy_log_ratio - ref_log_ratio)
    loss = -F.logsigmoid(logits).mean()
    return loss

DPO-tabsfunktion, der sammenligner log-sandsynligheder fra politikmodellen og referencemodellen for foretrukne og ikke-foretrukne svar.

Oprindelse

DPO står for Direct Preference Optimization (direkte præferenceoptimering). Metoden blev introduceret i 2023 af forskere fra Stanford University.

Kilder

1
  • Direct Preference Optimization: Your Language Model is Secretly a Reward Model