Was es ist
Viele Dinge, die Sie von einem Modell erwarten, sind leichter zu beurteilen als aufzuschreiben. Welche von zwei Antworten ist klarer, spezifischer, markengerechter, erfindet weniger wahrscheinlich eine Funktion? Ein Prüfer kann das in Sekunden beantworten, selbst wenn keine der beiden Antworten perfekt ist. Preference Tuning verwandelt diese Beurteilungen in Trainingsdaten: Jeder Datensatz ist ein Paar, ein Prompt mit einer bevorzugten und einer nicht bevorzugten Antwort.
Direct Preference Optimization (DPO), 2023 von Rafailov und Kollegen eingeführt, ist die am weitesten verbreitete Methode, um auf solchen Paaren zu trainieren. Der Untertitel ihres Papers fasst die Idee zusammen: „Ihr Sprachmodell ist insgeheim ein Reward-Modell.“
Woher es stammt: RLHF
Um zu verstehen, was DPO vereinfacht, beginnen wir mit Reinforcement Learning from Human Feedback (RLHF), dem Rezept hinter InstructGPT und der ersten Welle von Chat-Assistenten. Nach dem Pre-Training umfasst es drei Phasen:
- Supervised Fine-Tuning anhand von Demonstrationen, um ein Modell zu erhalten, das in der richtigen Form antwortet.
- Training eines Reward-Modells: ein separates Netzwerk, das einen Prompt und eine Antwort liest und eine Bewertung ausgibt, die so angepasst ist, dass bevorzugte Antworten eine höhere Punktzahl erhalten als nicht bevorzugte.
- Reinforcement Learning, meist PPO: Das Modell schreibt Antworten, das Reward-Modell bewertet sie, und das Modell wird aktualisiert, um höhere Bewertungen zu erzielen, mit einer Strafe für zu starkes Abweichen vom überwachten Modell.
Es funktioniert: Im InstructGPT-Paper bevorzugten die Befragten die Ausgaben eines auf diese Weise trainierten Modells mit 1,3 Milliarden Parametern gegenüber denen des GPT-3 mit 175 Milliarden Parametern. Aber es ist ressourcenintensiv. Die Reinforcement-Phase generiert Text innerhalb der Trainingsschleife, hält mehrere Modelle gleichzeitig im Speicher und ist empfindlich gegenüber ihren Einstellungen.
Mehrere Modelle gleichzeitig im Einsatz (das zu trainierende Modell, seine Referenz, das Reward-Modell und ein Value-Modell), und Text wird innerhalb der Trainingsschleife generiert. Leistungsstark, aber langsam und empfindlich gegenüber Einstellungen.
Kein Reward-Modell und kein Sampling während des Trainings. Es läuft wie ein Supervised-Job auf Paaren, was es kostengünstiger und weitaus stabiler macht.
Wie DPO funktioniert
Sowohl das Reward-Modell von RLHF als auch DPO basieren auf demselben Modell menschlicher Entscheidungsfindung, dem Bradley-Terry-Modell. Es besagt, dass bei zwei Antworten mit verborgenen Qualitätswerten die Wahrscheinlichkeit, dass eine Person die erste bevorzugt, dem Sigmoid der Differenz zwischen den Werten entspricht:
P(A preferred over B) = σ(r_A − r_B) = 1 / (1 + e^−(r_A − r_B))
r_A − r_B = 0 → 0.50
r_A − r_B = 1 → 0.73
r_A − r_B = 2 → 0.88Nur Differenzen spielen eine Rolle: Addiert man denselben Betrag zu beiden Werten, ändert sich die Wahrscheinlichkeit nicht. Ein Abstand von 0 ist ein Münzwurf; ein Abstand von 2 bedeutet, dass die erste Antwort in 88 % der Fälle gewinnt.
Die Reinforcement-Phase von RLHF maximiert den Reward und zahlt gleichzeitig eine durch β gewichtete Strafe für die Abweichung von einem Referenzmodell (die Strafe ist die KL-Divergenz zwischen beiden). Die DPO-Autoren zeigten, dass diese Zielfunktion eine exakte Lösung hat: Das bestmögliche Modell ist die Referenz, neu gewichtet mit dem Exponentialwert des Rewards ÷ β. Umgekehrt definiert jedes Modell einen impliziten Reward: β mal den Logarithmus der Wahrscheinlichkeit, mit der es eine Antwort im Vergleich zur Referenz als wahrscheinlicher einstuft. Setzt man dies in das Bradley-Terry-Modell ein, heben sich die schwer zu berechnenden Teile auf, sodass ein Loss übrig bleibt, der nur vier Zahlen pro Paar benötigt:
loss = −ln σ( β × [ (log π(chosen) − log π_ref(chosen))
− (log π(rejected) − log π_ref(rejected)) ] )
implicit reward of an answer = β × (log π(answer) − log π_ref(answer))- log π(chosen) und log π(rejected): für wie wahrscheinlich das zu trainierende Modell die gesamte Antwort hält, berechnet als Summe der Log-Wahrscheinlichkeiten ihrer Token.
- log π_ref(…): die gleichen Werte aus dem Referenzmodell, einer eingefrorenen Kopie des Modells zum Zeitpunkt des Trainingsbeginns.
- β: wie stark das Modell an diese Referenz gebunden ist. Ein niedrigerer Wert erlaubt eine stärkere Abweichung.
- σ: die Sigmoid-Funktion. Ihre Ausgabe lässt sich als „die Wahrscheinlichkeit, dass der implizite Reward des Modells mit der menschlichen Präferenz übereinstimmt“ interpretieren. Der Loss ist der negative Logarithmus davon, er ist also groß, wenn das Modell abweicht, und nahe 0, wenn es eindeutig übereinstimmt.
Das Training senkt den Loss, indem es die Wahrscheinlichkeit der gewählten Antwort im Verhältnis zur Referenz erhöht, die der abgelehnten Antwort senkt oder beides. Der Gradient gewichtet zudem jedes Paar danach, wie falsch das Modell derzeit liegt: Paare, die bereits mit großem Abstand richtig eingestuft wurden, tragen fast nichts bei, falsch eingestufte Paare tragen am meisten bei. Das Paper berichtet, dass das Modell ohne diese Gewichtung degenerieren kann.
- Die Log-Wahrscheinlichkeiten des Modells: chosen −42,0, rejected −51,0. Die des Referenzmodells: chosen −45,0, rejected −50,0.
- Log-Verhältnisse gegenüber der Referenz: chosen −42,0 − (−45,0) = +3,0; rejected −51,0 − (−50,0) = −1,0.
- Marge: 3,0 − (−1,0) = 4,0. Multipliziert mit β = 0,1 ergibt das 0,4. Gleichermaßen aufgeteilt, liegen die impliziten Rewards bei +0,30 für chosen und −0,10 für rejected.
- σ(0,4) ≈ 0,60, somit beträgt der Loss −ln 0,60 ≈ 0,51, ein Rückgang von 0,69 zu Beginn, als beide Log-Verhältnisse 0 waren.
Was das in der Praxis bedeutet
- Günstiger und stabiler als RLHF. Es muss kein Reward-Modell trainiert und während des Trainings kein Text generiert werden. Es läuft wie ein überwachter Job auf Paaren, zusammen mit einer eingefrorenen Kopie des Ausgangsmodells.
- Offline. Es lernt aus einer festen Menge von Paaren. Die Antworten müssen nicht von dem zu trainierenden Modell stammen, aber Paare, die dem nahekommen, was es tatsächlich schreibt, bringen ihm am meisten bei.
- Relativ, nicht absolut. Es vergrößert den Abstand zwischen den Antworten. Die Forschung hat gezeigt, dass die Wahrscheinlichkeit der gewählten Antwort während des Trainings oft sinkt („Likelihood Displacement“), solange die der abgelehnten Antwort schneller sinkt.
- Es kann kein Wissen hinzufügen. DPO stuft Verhalten, das das Modell bereits erzeugen kann, neu ein. Wenn keine der beiden Antworten etwas ist, das das Modell schreiben könnte, gibt es wenig zu lernen, weshalb es normalerweise auf Supervised Fine-Tuning folgt.
Datenformate
Anbieter benennen die Felder unterschiedlich, aber jedes Format speichert dieselben drei Dinge: den Prompt, die bessere Antwort und die schlechtere Antwort. Ein gehostetes Format:
{
"input": {"messages": [
{"role": "system", "content": "You are Scalata's support assistant."},
{"role": "user", "content": "How do I reset my password?"}
]},
"preferred_output": [
{"role": "assistant", "content": "Open Settings → Security and choose Reset password. You'll get an email link valid for 30 minutes."}
],
"non_preferred_output": [
{"role": "assistant", "content": "Please contact support to reset your password."}
]
}Open-Source-Trainer wie Hugging Face TRL verwenden prompt, chosen und rejected und akzeptieren die gesamte vorherige Konversation als Prompt:
{"prompt": [
{"role": "user", "content": "I uploaded a CSV yesterday."},
{"role": "assistant", "content": "Thanks — it's in Local Storage."},
{"role": "user", "content": "Can I use it in a dashboard?"}],
"chosen": [{"role": "assistant", "content": "Yes: open Dashboards → Add widget → pick the file."}],
"rejected": [{"role": "assistant", "content": "Maybe."}]}Einige gehostete Implementierungen trainieren nur auf einem Turn, sodass frühere Turns als Kontext in die letzte Benutzernachricht integriert werden müssen. Andere behalten die Konversation als separate Nachrichten bei.
Häufige Fehler
- Die Ausführung von DPO auf einem einfachen Basismodell, das nichts über Ihr Produkt weiß. Beide Antworten in jedem Paar sind oft gleichermaßen uninformiert, sodass es kaum ein Signal gibt.
- „Überzeugt, aber falsch“: Bei wenigen Paaren kopiert das Modell den Stil der bevorzugten Antworten (spezifische Namen, nummerierte Schritte, größere Länge) ohne das dahinterstehende Wissen und erfindet Details.
- Paare, deren Antworten sich nur in der Formulierung unterscheiden. Das Modell lernt Rauschen oder lernt, dass Sie Länge bevorzugen.
- Einen sinkenden DPO-Loss als Beweis für bessere Antworten zu betrachten. Er zeigt nur, dass das Modell Ihre Paare trennt; erst eine Evaluierung zeigt, ob sich die Antworten verbessert haben.
- Zu viele Epochen oder eine zu hohe Lernrate. Preference Tuning benötigt in der Regel 1–2 Epochen und eine niedrigere Lernrate als überwachtes Training.
Quellen und weiterführende Literatur
Externe Quellen werden in einem neuen Tab geöffnet.
- 01Direct Preference Optimization: Your Language Model is Secretly a Reward ModelRafailov et al., 2023 · arXiv · arxiv.orgDas ursprüngliche Paper: die Ableitung von RLHF, der Loss und Experimente gegen PPO.
- 02Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgInstructGPT: die dreistufige RLHF-Pipeline, die DPO vereinfacht.
- 03Deep reinforcement learning from human preferencesChristiano et al., 2017 · arXiv · arxiv.orgDas Paper, das das Erlernen eines Rewards aus menschlichen Vergleichen einführte, zunächst für Spiele und Robotik.
- 04Bradley–Terry modelWikipedia · en.wikipedia.orgDas statistische Modell der Paarvergleiche, das sowohl Reward-Modellen als auch DPO zugrunde liegt.
- 05DPO TrainerHugging Face TRL docs · huggingface.coEine weit verbreitete Open-Source-Implementierung: Datenformat, Loss-Varianten und protokollierte Metriken.