reward model training

Træning af en belønningsmodel, der forudsiger menneskelige præferencer og bruges til at styre forstærkningslæring i RLHF.

Kort fortalt

En proces hvor en model lærer at vurdere, hvilke outputs mennesker foretrækker, så en sprogmodel kan trænes til at producere mere nyttige svar.

Kategori
træning
Niveau
øvet
Udtale
/rɪˈwɔːrd ˈmɒdəl ˈtreɪnɪŋ/

Betydninger

1
  1. 1

    Den proces, hvor en belønningsmodel trænes på et datasæt af menneskelige præferencer (typisk sammenligninger mellem to modeloutputs) til at forudsige, hvilket output en menneskelig evaluator ville foretrække.

    • Under reward model training blev der brugt 100.000 menneskelige sammenligninger til at træne en belønningsmodel med en binær krydsentropi-funktion.InstructGPT paper, 2022
    • Reward model training kræver omhyggelig dataindsamling for at undgå bias i præferencerne.

Hvornår bruges det

Reward model training anvendes i RLHF-pipelinen efter at have indsamlet menneskelige sammenligninger. Modellen trænes til at tildele højere belønning til foretrukne outputs, og den færdige reward-model bruges derefter som belønningssignal til at finjustere sprogmodellen med PPO.

Kodeeksempel

# Simplified training loop for a reward model
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

model = AutoModelForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=1)
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
optimizer = torch.optim.Adam(model.parameters(), lr=1e-5)

for batch in dataloader:
    # batch contains 'chosen' and 'rejected' texts
    chosen_inputs = tokenizer(batch['chosen'], return_tensors='pt', padding=True, truncation=True)
    rejected_inputs = tokenizer(batch['rejected'], return_tensors='pt', padding=True, truncation=True)
    
    chosen_scores = model(**chosen_inputs).logits
    rejected_scores = model(**rejected_inputs).logits
    
    # Bradley-Terry loss: maximize difference
    loss = -torch.mean(torch.log(torch.sigmoid(chosen_scores - rejected_scores)))
    loss.backward()
    optimizer.step()

Eksempel på en simpel træningsløkke for en belønningsmodel med Bradley-Terry-tab. Modellen tildeler en score til valgte og afviste tekster og maksimerer log-odds for præference.

Oprindelse

Begrebet opstod i forbindelse med udviklingen af RLHF (Reinforcement Learning from Human Feedback), især beskrevet i OpenAI's InstructGPT-paper (2022).

Afledte ord

2

Kilder

2