{count, plural, one {Cursus} other {Cursussen}}
Group Relative Policy Optimization (GRPO) is een geavanceerde reinforcement learning (RL)-techniek achter de indrukwekkende prestaties van de nieuwste large language models (LLM’s). Hoewel het brede aandacht kreeg na de release van DeepSeek-R1, werd GRPO voor het eerst geïntroduceerd in DeepSeekMath, een LLM die is fijn-afgesteld voor geavanceerd wiskundig redeneren. GRPO is oorspronkelijk ontworpen om de efficiëntie bij fine-tuning te verbeteren, en het heeft zich bewezen als een kosteneffectieve en veelzijdige methode die door de community is omarmd.
In dit artikel duiken we dieper in GRPO. We bekijken wat het is, hoe het werkt, welke essentiële componenten nodig zijn voor de implementatie en wanneer je het het beste kunt gebruiken. Het doel van deze gids is je mee te nemen door de kerninzichten achter GRPO, die de groeiende populariteit ervan verklaren.
Ben je benieuwd naar meer over DeepSeek? Bekijk dan zeker onze cursus Working with DeepSeek in Python.
Introductie tot reinforcement learning
Zoals we bespreken in onze gids voor fine-tuning van LLM’s, is supervised fine-tuning (SFT) de traditionele trainingstechniek die bestaat uit het trainen van een model met gelabelde data. Dus met voorbeelden die de verwachte completions of outputs voor gegeven inputs laten zien.
Een van de beperkingen van SFT is dat het sterk leunt op grote, gelabelde datasets, die kostbaar en tijdrovend zijn om te maken. Bovendien lopen modellen die via SFT zijn getraind het risico te overfitten op de trainingsvoorbeelden, wat betekent dat ze goed presteren op bekende data maar moeite hebben om te generaliseren naar nieuwe of onverwachte situaties.
Een alternatief voor SFT is reinforcement learning, waarbij, in plaats van te leren van vaste voorbeelden, een agent leert door te interageren met zijn omgeving en verschillende acties te proberen om een taak te voltooien. Na elke actie krijgt de agent feedback in de vorm van beloningen of straffen. Het doel is om de totale beloning in de tijd te maximaliseren door strategieën te ontdekken die het beste werken.
We kunnen een eenvoudige RL-workflow als volgt schetsen:

Diagram van een eenvoudige RL-workflow.
Wil je hands-on aan de slag met RL in Python? Dan is de tutorial Reinforcement Learning: An Introduction With Python Examples iets voor jou!
Reinforcement learning eenvoudig uitgelegd
Om het concept van reinforcement learning te illustreren: stel dat je je nichtje leert fietsen. In het begin heeft ze moeite met trappen en balanceren, waardoor ze vaak wiebelt of valt.
Elke keer dat ze een stukje verder rijdt, moedig je haar aan. Die positieve feedback stimuleert haar om door te gaan. Maar wanneer ze probeert de trap af te rijden, houd je haar snel tegen en leg je de risico’s uit. Dat is een negatief signaal om dat gedrag te ontmoedigen.
Op dezelfde manier laat reinforcement learning modellen verschillende acties verkennen. Positieve beloningen versterken gewenst gedrag, terwijl negatieve beloningen ongewenst gedrag ontmoedigen. Na verloop van tijd leert het model betere beslissingen nemen door deze feedback.
Benaderingen van reinforcement learning
Er zijn verschillende technieken om reinforcement learning op een model toe te passen. Concreet wordt GRPO beschouwd als een evolutie van proximal policy optimization (PPO) en direct policy optimization (DPO).
Heb je al eens gehoord van PPO en DPO?
Proximal policy optimization
PPO is een veelgebruikte RL-algoritme dat is ontworpen om het gedrag van een model te optimaliseren door de beloningen te maximaliseren met behulp van een apart beloningsmodel. Een goed voorbeeld van PPO in actie is OpenAI’s reinforcement learning from human feedback (RLHF). Bij RLHF wordt eerst menselijke feedback verzameld op modeluitvoer, en deze data wordt vervolgens gebruikt om een beloningsmodel te trainen dat de feedback voorspelt. Een beloningsmodel is een manier om menselijke feedback op te schalen, zonder continu mensen nodig te hebben.
Tot slot gebruikt PPO het beloningsmodel tijdens de training om de parameters van het model aan te passen, waardoor het wordt aangemoedigd om reacties te genereren die beter aansluiten bij menselijke voorkeuren. Het volgende diagram illustreert de PPO-workflow:

Diagram van de PPO-workflow.
Wil je de PPO-workflow in Python implementeren? Bekijk dan de tutorial Proximal Policy Optimization with PyTorch and Gymnasium.
Direct policy optimization
Het trainen van een apart beloningsmodel kan complex en resource-intensief zijn. Om dit te vereenvoudigen is DPO geïntroduceerd, wat verandert hoe menselijke feedback wordt verzameld.
In plaats van mensen te vragen om antwoorden met numerieke scores te beoordelen, leunt DPO op voorkeurvergelijkingen. Annotators krijgen twee antwoorden te zien en kiezen welke ze het beste vinden. Dit creëert een dataset met voorkeurs- en minder-preferente voorbeelden.
Vervolgens wordt het model direct op deze voorkeurparen fijn-afgesteld, in plaats van te vertrouwen op het beloningsmodel. Met deze aanpak leert het model de kans te vergroten dat het het geprefereerde antwoord genereert en de kans te verkleinen op het minder-preferente antwoord.
Deze aanpak stelt het model in staat zich te richten naar menselijke voorkeuren zonder een apart beloningsmodel nodig te hebben. Laten we eens kijken naar deze nieuwe workflow:

Diagram van de DPO-workflow.
De tutorial OpenAI's Preference Fine-Tuning: A Guide With Examples helpt je DPO in de praktijk te implementeren.
Uitdagingen van PPO en DPO
DPO biedt veel voordelen ten opzichte van PPO. Beginnend bij de benodigde data: PPO moet eerst data verzamelen om het beloningsmodel te trainen en vervolgens de daadwerkelijke training van dit hulpkader uitvoeren (met alle technische uitdagingen van het trainen van een nieuw model), nog vóór je je doelmodel traint. DPO vereenvoudigt dit proces door de noodzaak van een apart beloningsmodel te verwijderen. Niettemin vereist deze aanpak nog steeds een aanzienlijke hoeveelheid voorkeursdata.
Zie je op dit punt een manier om deze beperkingen te elimineren?
Wat als we, in plaats van te vertrouwen op externe feedback, een automatische manier konden vinden om modelantwoorden te valideren en te beoordelen?
Dat is precies wat GRPO biedt!
Wat is GRPO?
Group Relative Policy Optimization is een RL-techniek die geen gelabelde data vereist, alleen een manier om de correctheid te “verifiëren” en antwoorden dienovereenkomstig te ordenen. De verificatie wordt normaal gesproken bereikt met programmeerbare beloningsfuncties, bijv. functies die de reactie van het model als input nemen en een beoordelingsscore geven op een bepaald aspect van de functie.
Sommige GRPO-benaderingen gebruiken een LLM-als-rechter om antwoorden te verifiëren en te beoordelen, maar het kernidee van GRPO kan worden benut zonder de noodzaak van een extern model in domeinen zoals softwareontwikkeling, omdat verschillende aspecten van de gegenereerde code kunnen worden geverifieerd met externe tools. Bijvoorbeeld,
- Compileert de code? Hiervoor hebben we alleen de compiler nodig.
- Heeft het een runtime-fout? Dan hoeven we de code alleen maar uit te voeren.
- Slaagt het voor unit-tests? Dan hebben we alleen unit-tests nodig.
- Is de output van de codelinter schoon? Dan hebben we alleen een linter nodig.
Zoals je ziet, zijn er geen mensen of voorkeursdata nodig!
Beloningsfuncties
In het oorspronkelijke artikel van DeepSeek-Math waren de beloningsfuncties opgesteld om de correctheid en opmaak van wiskundige oplossingen te beoordelen. Als je ooit een gestructureerde output aan een LLM hebt gevraagd, heb je vast gemerkt dat het model het gewenste outputformaat voor het grootste deel volgde, maar er altijd nét een randgeval was dat je pipeline brak, toch?
In het geval van DeepSeek-Math waren de beloningsfuncties gericht op correctheid en opmaak:
- Accuratessebeloningen beoordelen of het eindantwoord van het model correct is. Voor deterministische wiskundige problemen moet het model het eindantwoord in een gespecificeerd formaat presenteren (bijv. binnen een kader), zodat automatische verificatie met de ground truth mogelijk is.
- Opmaakbeloningen zorgen ervoor dat de reacties van het model een vooraf gedefinieerde structuur volgen. Concreet wordt het model aangemoedigd om zijn redeneerproces binnen aangewezen tags te plaatsen (bijv.
<think>en</think>). Deze opmaak vergemakkelijkt het extraheren en analyseren van het denkproces van het model en bevordert duidelijkheid en consistentie in de outputs.
GRPO-workflow
Op dit punt vraag je je misschien af: waar past GRPO in de trainingsworkflow van een model?
Laten we het proces stap voor stap doornemen!
- Stuur een prompt naar de LLM en sample meerdere kandidaatantwoorden.
- Schrijf één of meer programmeerbare functies die de prompt- en antwoordparen nemen en aan elk een score toekennen.
- Gebruik deze scores om de LLM-gewichten bij te werken: verhoog de kans op reacties met bovengemiddelde scores en verlaag die voor reacties met ondergemiddelde scores.
Door deze lus te volgen, stemt GRPO het model direct af op basis van de output van de beloningsfuncties, zonder dat er voorkeursdata verzameld hoeven te worden.

Diagram van de GRPO-workflow met beloningsscores berekend door een externe actor.
Tot slot is het interessant om op te merken dat GRPO ook het voordeel biedt dat het het model nieuwe taken kan aanleren, in plaats van alleen te sturen op voorkeuren, zoals bij PPO of DPO.
Voordelen van GRPO
Zoals we in het bovenstaande diagram zien, is het grootste voordeel van GRPO dat er geen gelabelde data nodig is, slechts een manier om de correctheid te “verifiëren”, mogelijk gemaakt door programmeerbare beloningsfuncties.
Een ander voordeel is dat er veel minder voorbeelden nodig zijn dan bij fine-tuning, waardoor deze techniek een kosteneffectief alternatief is.
Bovendien leert het model actief van feedback in plaats van van vaste gelabelde voorbeelden, wat het risico op overfitting verkleint. Modellen trainen met GRPO stelt ze in staat om organisch betere strategieën te ontdekken en hun chain of thought te verbeteren.
GRPO-toepassingen
Zoals eerder besproken, is de primaire use-case van GRPO wanneer je geen gelabelde data hebt maar wél de correctheid van de output kunt verifiëren. Het is ook zeer effectief wanneer je beperkte gelabelde data hebt, maar niet genoeg voor traditionele supervised fine-tuning. Dit maakt GRPO vooral waardevol in scenario’s waar labelen kostbaar of onpraktisch is.
Enkele domeinen waarin GRPO aanzienlijke voordelen heeft laten zien, zijn:
- Wiskundige vaardigheden: In het geval van het DeepSeek-Math-model verbeterde GRPO effectief het vermogen van het model om complexe wiskundeproblemen op te lossen zonder uitgebreide gelabelde datasets.
- Codegeneratie: GRPO helpt de nauwkeurigheid en betrouwbaarheid van gegenereerde code te verbeteren door het systeem in staat te stellen outputs zelf te verifiëren en ze iteratief te verfijnen.
- Redeneren in meerdere stappen: Er is aangetoond dat GRPO de prestaties van modellen verbetert bij taken die sequentieel redeneren en het combineren van meerdere logische stappen vereisen.
Geavanceerde GRPO
Er zijn enkele geavanceerde tips en trucs waar je in de praktijk rekening mee moet houden bij het implementeren van GRPO.
Geavanceerde beloningsfuncties
Beloningsfuncties geven feedback aan het model over hoe goed het zijn doel bereikt. Er zijn cruciale componenten in dit proces:
- Diversiteit in reacties: Het genereren van een breed scala aan kandidaatuitvoer vergroot de kans om oplossingen of strategieën van hogere kwaliteit te ontdekken.
- Diversiteit in beloningen: Het ontwerpen van beloningsfuncties die onderscheid kunnen maken tussen verschillende niveaus van succes of gedeeltelijke voltooiing, in plaats van alleen een binaire pass/fail-indicatie. Dit staat bekend als partial credit-beloningen, die genuanceerdere feedback geven door deelkrediet toe te kennen voor verschillende aspecten van het antwoord. Voorbeelden zijn: verifiëren dat ten minste het outputformaat correct is, dat de gegenereerde code succesvol compileert of dat de code slaagt voor een subset van unit-tests. Dit soort graduele beloning moedigt het model aan om stapsgewijs te verbeteren, ook als het antwoord niet volledig correct is.
Daarnaast kan het instellen van een baseline voor de hele groep een belangrijke rol spelen bij het stabiliseren en verbeteren van het trainingsproces. Door deze baseline van individuele beloningen af te trekken, ontvangt het model feedback relatief aan de algehele groepsprestatie, wat de variantie in beloningsschattingen vermindert en stapsgewijze verbeteringen boven het gemiddelde stimuleert.
Temperatuur
Bij LLM’s bepaalt de temperatuurparameter de willekeur in het samplingproces tijdens het genereren van output. De temperatuur op 0 zetten resulteert in deterministische sampling, wat betekent dat het model altijd het meest waarschijnlijke volgende token kiest.
Hoewel dit consistentie garandeert, leidt het vaak tot herhaaldelijk dezelfde output, wat de diversiteit in reacties beperkt.
Daarentegen introduceert het verhogen van de temperatuur meer willekeur, waardoor het model een breder scala aan mogelijkheden kan verkennen. Deze diversiteit kan nuttig zijn om andere of onverwachte oplossingen te ontdekken.
Hogere temperaturen hebben echter een trade-off: de kwaliteit van elke individuele gok is doorgaans lager omdat het model vaker minder waarschijnlijke tokens sampelt. Daardoor kan het totale leerproces vertragen.
De juiste temperatuur kiezen is soms een kunst!
Reward hacking
Modellen kunnen sluw zijn en soms beloningsfuncties op ongewenste manieren uitbuiten om beloningen te maximaliseren zonder het echte doel te bereiken.
Stel bijvoorbeeld dat het model wordt beloond voor het schrijven van tests voor een bepaalde code. Het zou kunnen dat het model een testfunctie geeft, maar zonder daadwerkelijk iets te testen, waardoor het het echte doel van codeverificatie omzeilt en toch de beloning krijgt.
Hier moet je alert op zijn bij het schrijven van beloningsfuncties. In het geval van testgeneratie wordt bijvoorbeeld meestal geëist dat het model minstens één ‘assert’-statement in de test opneemt. Zo niet, dan wordt het bestraft.
Conclusie
Tot besluit wil ik GRPO toepassen op een realistische situatie om ervoor te zorgen dat alle concepten goed begrepen zijn.
Stel dat jij en je vrienden meedoen aan een fitnesscompetitie waarbij beloningen worden gegeven op basis van prestaties in hardlopen, push-ups en roeien. In eerste instantie beloont de sportschool alleen degene met de beste absolute resultaten.
Zo wint Alice altijd als ze verder rent en meer push-ups doet dan Ben, zelfs als Ben aanzienlijke vooruitgang heeft geboekt.
Dat voelt oneerlijk voor Ben, toch?
Om dit aan te pakken probeert de sportschool een andere aanpak: persoonlijke doelen op basis van eerdere prestaties.
Nu verdien je alleen beloningen als je je eigen vorige records verbreekt. Hoewel dit eerlijker lijkt, introduceert het nieuwe problemen. Nieuwe leden, zoals Charlie, hebben geen historische data om mee te vergelijken, waardoor meedoen lastig wordt. Bovendien moeten trainers ieders voortgang individueel bijhouden, wat inefficiënt is.
Uiteindelijk komt de sportschool met een betere oplossing: GRPO.
Voor de training begint, activeert de instructeur een systeem dat de kenmerken van de deelnemers analyseert en hen groepeert op basis van vergelijkbare omstandigheden. Tijdens de training volgt het systeem ieders prestaties en berekent het een gemiddelde score binnen elke groep als baseline. Achteraf worden beloningen toegekend op basis van hoeveel iemand de groepsgemiddelde prestatie van diezelfde dag overtreft.
Als Ben dus aanzienlijk beter presteert dan anderen in zijn groep, krijgt hij een beloning, zelfs als Alice nog steeds de hoogste totaalscore heeft. Deze methode is ook eerlijk voor nieuwkomers zoals Charlie, omdat ze worden beoordeeld ten opzichte van hun peers in dezelfde sessie, niet op basis van eerdere geschiedenis.
Een belangrijke factor in dit proces is de temperatuur, die bepaalt hoe strikt verbeteringen worden beloond. Als de temperatuur te laag is, tellen alleen grote verbeteringen boven de baseline. Als de temperatuur te hoog is, worden zelfs kleine verbeteringen beloond, wat experimenteren aanmoedigt maar kan leiden tot grillige vooruitgang.
GRPO zoekt de juiste balans, zodat er gestage vooruitgang is met ruimte voor exploratie.
Tot slot is er het risico van reward hacking. Dat betekent dat deelnemers manieren vinden om het systeem te gamen zonder echt te verbeteren. Zo zou Ben zich kunnen richten op alleen de makkelijkste oefeningen om zijn score op te krikken zonder echte inspanning.
Om dit te voorkomen voegt de sportschool waarborgen toe, zoals het eisen van een gebalanceerde mix van oefeningen of het bestraffen van repetitieve, laagdrempelige oefeningen. Deze randvoorwaarden zorgen ervoor dat beloningen echte vooruitgang weerspiegelen.
Wil je meer leren over hoe LLM’s werken en hoe je je eigen modellen ontwikkelt? Bekijk dan onze cursus Developing Large Language Models.
GRPO Veelgestelde vragen
Hoeveel data is er nodig voor GRPO?
Over het algemeen minder dan 1000 gelabelde voorbeelden.
Vereist GRPO het bijhouden van prestaties uit het verleden?
Nee. GRPO gebruikt alleen informatie uit de huidige trainingsstap.
Wat is een groep in GRPO?
Een groep is een verzameling modelantwoorden op dezelfde prompt.
Hoe voorkomt GRPO reward hacking?
Door beperkingen op te nemen, ontmoedigt GRPO modellen om makkelijke wegen naar opgeblazen beloningen uit te buiten.
Hoe worden beloningen toegekend in GRPO?
Elke reactie wordt beloond op basis van hoeveel deze de groepsbaseline overtreft, niet op de absolute beloning.
Andrea Valenzuela werkt momenteel aan het CMS-experiment bij de deeltjesversneller (CERN) in Genève, Zwitserland. Met zes jaar ervaring in data-engineering en -analyse omvatten haar taken data-analyse en softwareontwikkeling. Ze zet zich nu in voor het democratiseren van het leren van datagerelateerde technologieën via de Medium-publicatie ForCode'Sake.
Ze behaalde een bachelor in Engineering Physics aan de Polytechnische Universiteit van Catalonië en een master in Intelligent Interactive Systems aan de Pompeu Fabra Universiteit. Haar onderzoekservaring omvat professioneel werk met eerdere OpenAI-algoritmes voor beeldgeneratie, zoals Normalizing Flows.

