Proximal Policy Optimization (PPO)

Ein Reinforcement-Learning-Algorithmus, der bei RLHF zum Einsatz kommt – trainiert LLMs basierend auf menschlichem Feedback, stabil und effizient.

Experte2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Standard-Algorithmus für RLHF bei LLMs (GPT, Claude, etc.)
  2. Macht kleine, stabile Updates statt großer, riskanter Änderungen
  3. Balance zwischen Exploration (Neues probieren) und Exploitation (Bewährtes nutzen)

Sofortantwort

PPO einfach erklärt

Reinforcement-Learning-Algorithmus für stabiles LLM-Training mit Feedback.

Kurz gesagt
Standard-Algorithmus für RLHF bei LLMs (GPT, Claude, etc.)
Typischer Einsatz
RLHF für LLMs, Game AI, Robotik
Wichtig zu wissen
Balance zwischen Exploration (Neues probieren) und Exploitation (Bewährtes nutzen)

Proximal Policy Optimization im Überblick

PPO (Proximal Policy Optimization) ist der Algorithmus, der LLMs beibringt, “gute” Antworten zu geben. Nach dem Pre-Training lernt das Modell durch PPO, welche Antworten Menschen bevorzugen.

Der RLHF-Prozess mit PPO:

1. Pre-Training
   Modell lernt Sprache aus Texten

2. Supervised Fine-Tuning (SFT)
   Modell lernt Instruktionen zu befolgen

3. Reward Model Training
   Separates Modell lernt, Antworten zu bewerten

4. PPO Training
   Modell optimiert sich auf hohe Reward-Scores

Warum “Proximal”?

PPO macht nur kleine Änderungen pro Trainingsschritt:

Ohne Clipping:
Alte Policy → [großer Sprung] → Neue Policy
             ↑ Kann instabil sein, "vergisst" Gelerntes

Mit PPO Clipping:
Alte Policy → [kleiner Schritt] → Neue Policy
             ↑ Stabil, behält Gelerntes bei

Die Kernidee:

  • Vergleiche neue Policy mit alter Policy
  • Wenn Änderung zu groß → abschneiden (clip)
  • So bleibt Training stabil

Technisch betrachtet

PPO-Algorithmus (vereinfacht)

def ppo_update(model, old_model, prompts, rewards):
    for prompt in prompts:
        # Generiere Antwort mit aktuellem Modell
        response = model.generate(prompt)
        
        # Berechne Wahrscheinlichkeiten
        new_log_prob = model.log_prob(response)
        old_log_prob = old_model.log_prob(response)
        
        # Ratio zwischen neuer und alter Policy
        ratio = exp(new_log_prob - old_log_prob)
        
        # Advantage (wie viel besser als erwartet?)
        advantage = rewards[response] - baseline
        
        # Clipped Objective
        unclipped = ratio * advantage
        clipped = clip(ratio, 1-epsilon, 1+epsilon) * advantage
        
        # Nimm das Minimum (pessimistisch)
        loss = -min(unclipped, clipped)
        
        # Update
        loss.backward()
        optimizer.step()

Die PPO-Loss-Funktion

L_PPO = E[min(r_t * A_t, clip(r_t, 1-ε, 1+ε) * A_t)]

Wobei:
- r_t = π_new(a|s) / π_old(a|s)  (Ratio)
- A_t = Advantage (Reward - Baseline)
- ε = Clipping-Parameter (typisch 0.1-0.2)

Warum Minimum?

  • Wenn Advantage positiv: Verhindert zu große Erhöhung
  • Wenn Advantage negativ: Verhindert zu große Verringerung
  • Ergebnis: Konservative, stabile Updates

PPO für LLMs (RLHF)

from trl import PPOTrainer, PPOConfig

# Konfiguration
config = PPOConfig(
    learning_rate=1e-5,
    batch_size=64,
    ppo_epochs=4,
    cliprange=0.2,
    vf_coef=0.1,
)

# Trainer
trainer = PPOTrainer(
    config=config,
    model=model,
    ref_model=ref_model,  # Frozen copy
    tokenizer=tokenizer,
    reward_model=reward_model,
)

# Training Loop
for batch in dataloader:
    prompts = batch["prompts"]
    
    # Generiere Responses
    responses = trainer.generate(prompts)
    
    # Berechne Rewards
    rewards = reward_model(prompts, responses)
    
    # PPO Update
    stats = trainer.step(prompts, responses, rewards)

Hyperparameter

ParameterTypischer WertBeschreibung
cliprange0.1-0.2Wie stark darf Policy sich ändern?
ppo_epochs2-4Updates pro Batch
learning_rate1e-5 - 1e-6Lernrate
kl_coef0.1-0.2KL-Divergenz-Penalty
vf_coef0.1Value Function Loss Weight

PPO vs. DPO

AspektPPODPO
Reward ModelBenötigtNicht benötigt
KomplexitätHochNiedrig
Training ZeitLangKurz
StabilitätGut (mit Tuning)Sehr gut
FlexibilitätHochBegrenzt
Online LearningJaNein

Wann PPO, wann DPO?

PPO wenn:

  • Reward Model bereits existiert
  • Online-Feedback möglich
  • Komplexe Reward-Strukturen
  • Maximale Kontrolle nötig

DPO wenn:

  • Schnelles Training wichtig
  • Nur Präferenzdaten vorhanden
  • Einfachheit bevorzugt
  • Ressourcen begrenzt

01Einsatzbereiche

Wann ist PPO sinnvoll?

Geeignet für

  • RLHF für LLMsTraining von ChatGPT, Claude etc. auf menschliche Präferenzen
  • Game AITraining von Agenten in Spielen (OpenAI Five, AlphaStar)
  • RobotikRoboter lernen Bewegungen durch Trial and Error
  • EmpfehlungssystemeOptimierung basierend auf User-Feedback

↑ Inhalt

02Werkzeuge

Womit PPO umgesetzt wird

↑ Inhalt

Merksatz

PPO ist wie ein vorsichtiger Fahrschüler

Er macht kleine, kontrollierte Verbesserungen bei jedem Versuch, statt wilde Manöver – so lernt er zuverlässig, ohne das Auto zu schrotten.

  1. Standard-Algorithmus für RLHF bei LLMs (GPT, Claude, etc.)
  2. Macht kleine, stabile Updates statt großer, riskanter Änderungen
  3. Balance zwischen Exploration (Neues probieren) und Exploitation (Bewährtes nutzen)

04Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

05FAQ

Häufige Fragen zu PPO

Warum PPO statt anderer RL-Algorithmen?

PPO ist stabil, einfach zu tunen und skaliert gut. Andere Algorithmen (TRPO, A3C) sind entweder komplizierter oder instabiler. PPO ist der 'sweet spot'.

Was ist der Unterschied zwischen PPO und DPO?

PPO braucht ein separates Reward Model und ist aufwändiger. DPO trainiert direkt auf Präferenzdaten ohne Reward Model – einfacher, aber weniger flexibel.

Ist PPO noch State-of-the-Art?

Für RLHF ja, aber DPO gewinnt an Popularität wegen Einfachheit. PPO bleibt relevant für komplexere Szenarien und wenn ein Reward Model ohnehin existiert.

Wie lange dauert PPO-Training?

Für LLMs: Tage bis Wochen auf großen GPU-Clustern. Der aufwändigste Teil von RLHF. Deshalb ist DPO attraktiv – deutlich schneller.

↑ Inhalt

06Weiterlernen

Was möchtest du als Nächstes verstehen?

↑ Inhalt