GRPO (group relative policy optimization) is een methode om een AI-taalmodel verder te trainen. Het model beantwoordt dezelfde vraag een paar keer, elk antwoord krijgt een score, en het model wordt bijgestuurd richting de antwoorden die boven het gemiddelde van de groep scoorden. DeepSeek gebruikte het om zijn R1-model te leren redeneren. Het past bij taken waarvan een programma het antwoord kan controleren, zoals sommen of code.
Hoe werkt het?
DeepSeek introduceerde GRPO in februari 2024 in zijn DeepSeekMath-artikel, als variant van PPO (proximal policy optimization), de reinforcement learning-methode die bij RLHF wordt gebruikt. Elke trainingsstap bestaat uit vier delen:
- Voor elke vraag schrijft het model een groep antwoorden. DeepSeekMath nam er 64 per vraag.
- Elk antwoord krijgt een beloning (reward), van een reward-model of van een regel die de uitkomst controleert.
- De beloningen worden binnen de groep vergeleken: trek het groepsgemiddelde af en deel door de standaardafwijking van de groep. De uitkomst, de advantage, is positief voor antwoorden die beter zijn dan het gemiddelde en negatief voor de rest.
- Het model wordt bijgewerkt, zodat de positieve antwoorden waarschijnlijker worden en de negatieve minder waarschijnlijk. Net als bij PPO houdt een geclipte doelfunctie elke stap klein, en houdt een KL-term het model dicht bij een referentieversie van zichzelf.
De besparing zit in stap 3. PPO heeft een apart value-model nodig om te schatten welke score je voor een antwoord kunt verwachten, en volgens DeepSeek is dat model doorgaans ongeveer even groot als het model dat je traint. GRPO gebruikt het groepsgemiddelde als die verwachting en heeft dus geen value-model nodig; een beloning blijft nodig. In DeepSeekMath verhoogde GRPO de score van het 7B-instructiemodel van 46,8% naar 51,7% op de MATH-benchmark en van 82,9% naar 88,2% op GSM8K.
Waar wordt het gebruikt?
DeepSeek trainde DeepSeek-R1-Zero met GRPO direct op zijn basismodel, zonder het eerst op voorbeeldantwoorden te trainen. De beloning kwam uit regels: is het eindantwoord juist, en staat de redenering tussen <think>-tags? DeepSeek vermeed neurale reward-modellen, omdat die op deze schaal reward hacking uitlokken. In de versie van het artikel in Nature (september 2025) steeg de gemiddelde score van R1-Zero op het wiskunde-examen AIME 2024 van 15,6% naar 77,9%.
Trainen met beloningen die een programma kan controleren heet RLVR (reinforcement learning with verifiable rewards). De TRL-bibliotheek van Hugging Face kreeg in januari 2025 een GRPO-trainer, die in TRL v1.0 (maart 2026) onderdeel werd van de stabiele interface. De quick start voor die versie:
1 from datasets import load_dataset 2 from trl import GRPOTrainer 3 from trl.rewards import accuracy_reward 4 5 dataset = load_dataset("trl-lib/DeepMath-103K", split="train") 6 7 trainer = GRPOTrainer( 8 model="Qwen/Qwen2-0.5B-Instruct", 9 reward_funcs=accuracy_reward, 10 train_dataset=dataset, 11 ) 12 trainer.train()
Volgens de documentatie duurt deze training ongeveer een dag op 8 GPU's.
Waar gaat het mis?
- Geen signaal van te makkelijke of onmogelijke vragen. Krijgt elk antwoord in een groep dezelfde beloning, dan is elke advantage nul en leert het model niets van die vraag (DAPO, maart 2025).
- Instabiliteit. De eerste GRPO-run van het DAPO-team op Qwen2.5-32B haalde 30 punten op AIME, tegen 47 voor de RL-aanpak van DeepSeek op hetzelfde basismodel. Het team vond entropy collapse (het model probeert geen verschillende antwoorden meer), ruis in de beloningen en instabiele training, en stelde vier oplossingen voor.
- Lengtebias. Liu e.a. (maart 2025) lieten zien dat de normalisatie van GRPO antwoorden langer maakt, vooral foute antwoorden, en stelden een gecorrigeerde versie voor, Dr. GRPO. TRL v1.0 deelt niet meer door de antwoordlengte en laat de KL-term standaard weg.
- Reward hacking. Het model optimaliseert alles wat beloning oplevert, fouten in de beloning inbegrepen. DeepSeek koos voor regels, omdat neurale reward-modellen op grote schaal makkelijker te misbruiken zijn.
Voorbeeld
Stel: een bedrijf traint een klein open model om e-mails van klanten om te zetten in ordergegevens. Voor elke e-mail schrijft het model acht antwoorden, en een script geeft 1 punt als de JSON het juiste ordernummer bevat. Scoren drie antwoorden 1, dan krijgen die drie een positieve advantage en de andere vijf een negatieve, en schrijft de volgende versie van het model vaker antwoorden zoals de eerste drie. Scoren alle acht 1, dan voegt die e-mail niets toe aan de training.
Bronnen
- Shao et al. (DeepSeek): DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models (2024)arXiv
- Guo et al. (DeepSeek): DeepSeek-R1 incentivizes reasoning in LLMs through reinforcement learning (Nature, 2025)Web
- Hugging Face (Quentin Gallouédec et al.): TRL v1.0, post-training library built to move with the fieldRSS
- Hugging Face TRL v1.0 documentation: GRPO TrainerGitHub
- Yu et al. (ByteDance Seed, Tsinghua AIR): DAPO: An Open-Source LLM Reinforcement Learning System at Scale (2025)arXiv
- Liu et al.: Understanding R1-Zero-Like Training: A Critical Perspective (2025)arXiv
