Sofortantwort
Reward Model einfach erklärt
Modell, das menschliche Präferenzen vorhersagt.
- Kurz gesagt
- Lernt aus menschlichen Präferenz-Vergleichen (A > B)
- Typischer Einsatz
- RLHF Training, Best-of-N Sampling, Qualitätsbewertung
- Wichtig zu wissen
- Wird in RLHF verwendet, um das LLM zu optimieren
Reward Model im Überblick
Ein Reward Model bewertet, wie gut eine LLM-Ausgabe ist – basierend auf gelernten menschlichen Präferenzen. Es ist der “Richter”, der dem LLM sagt, ob eine Antwort gut oder schlecht war.
Der RLHF-Prozess:
1. Menschen vergleichen Antworten: "A ist besser als B"
2. Reward Model lernt diese Präferenzen
3. LLM generiert Antwort → Reward Model gibt Score
4. LLM wird optimiert, um höhere Scores zu bekommen
Warum braucht man das?
Menschen können nicht jede LLM-Ausgabe bewerten – das wäre zu langsam und teuer. Das Reward Model automatisiert diese Bewertung.
Technisch betrachtet
Training
# Präferenz-Daten
data = [
{"prompt": "Erkläre ML", "chosen": "ML ist...", "rejected": "Keine Ahnung"},
{"prompt": "Was ist Python?", "chosen": "Python ist...", "rejected": "Ein Tier"},
...
]
# Reward Model lernt: P(chosen > rejected | prompt)
Architektur
Prompt + Response → [LLM Backbone] → [Reward Head] → Scalar Score
Typisch: Basis-LLM (z.B. Llama) + Linear Layer für Score
Bradley-Terry Model
P(A > B) = exp(r(A)) / (exp(r(A)) + exp(r(B)))
Loss = -log(σ(r(chosen) - r(rejected)))
Reward Hacking
| Problem | Beschreibung | Lösung |
|---|---|---|
| Längen-Bias | Längere Antworten bekommen höhere Scores | Length Normalization |
| Sycophancy | Übertriebene Zustimmung wird belohnt | Diverse Präferenzdaten |
| Overconfidence | Selbstbewusste falsche Antworten | Faktenprüfung einbeziehen |
Best-of-N Sampling
def best_of_n(prompt, n=4):
responses = [llm.generate(prompt) for _ in range(n)]
scores = [reward_model.score(prompt, r) for r in responses]
return responses[argmax(scores)]