Datalabeling en ground truth
Wat is datalabeling en ground truth?
Een label is het juiste antwoord dat aan één voorbeeld hangt. Deze factuurlijn is een transportkost. Deze mail is een klacht. Dat vak op de foto is een pallet. Datalabeling is het werk om die antwoorden te maken, voorbeeld per voorbeeld, zodat een model ervan kan leren of ertegen afgemeten kan worden.
Ground truth is de verzameling labels die je beslist als juist te beschouwen. Het is de antwoordsleutel. Zegt een classifier "transportkost" en zegt de ground truth "verpakking", dan telt dat als een fout. Schrijft een AI-agent een antwoord op een klantenmail en staat in de ground truth dat die mail een klacht was, dan kijk je of de agent ze ook als klacht behandeld heeft.
Supervised learning gaat ervan uit dat er gelabelde data bestaat. Evals gaan ervan uit dat er een set verwachte antwoorden bestaat. Geen van beide zegt waar die antwoorden vandaan komen, en in de praktijk kruipt daar de meeste tijd in. De antwoordsleutel is geschreven door mensen, onder tijdsdruk, met een definitie van "juist" die iemand ooit heeft moeten uitvinden.
Waar labels vandaan komen
Er zijn vijf gangbare bronnen, en de meeste projecten combineren er minstens twee.
Mensen die het domein kennen. De boekhouder leest de factuurlijn en kiest de categorie. De servicemanager leest het ticket en zegt of het een klacht of een vraag is. De machine learning-cursus van Google zet de afweging helder neer: menselijke beoordelaars kunnen taken aan die een model moeilijk vindt en dwingen je om duidelijke criteria op te schrijven, maar je betaalt ze, en omdat mensen fouten maken moeten er soms meerdere naar hetzelfde voorbeeld kijken.
Beslissingen die je systemen al hebben vastgelegd. Elke geboekte factuur in je ERP draagt de grootboekrekening die iemand gekozen heeft. Elk afgesloten helpdeskticket heeft de categorie die een medewerker aangeklikt heeft. Elke offerte heeft een vlag gewonnen of verloren. Dat zijn labels die mensen tijdens jaren gewoon werk gemaakt hebben, en ze kosten niets om eruit te halen. Het addertje: ze tonen wat mensen gedaan hebben, en dat is niet altijd wat de procedure zegt dat ze hadden moeten doen.
Zwakke regels. In plaats van elk voorbeeld apart te labelen, schrijf je kleine regels die er veel tegelijk labelen: een factuur van een koerierbedrijf is waarschijnlijk transport, een ticket met het woord "terugbetaling" is waarschijnlijk een klacht. Het team achter Snorkel, ontstaan aan Stanford, noemt dat weak supervision: ruwere en minder betrouwbare bronnen van supervisie, gecombineerd tot veel grotere trainingssets in veel minder tijd dan lijn per lijn labelen. De regels spreken elkaar tegen, en de methode leert uit waar ze het eens en oneens zijn hoeveel vertrouwen elke regel verdient.
Voorlabelen door een model, corrigeren door een mens. Een model, vaak een algemene LLM, stelt voor elk voorbeeld een label voor en een mens keurt het goed of verbetert het. Label Studio, een open source labeltool, ondersteunt dat rechtstreeks: je importeert de voorspellingen van het model en die verschijnen als pre-annotaties die de labeler kan overnemen en aanpassen. Corrigeren gaat sneller dan van nul labelen, met één risico dat verderop aan bod komt.
Synthetische voorbeelden, met de nodige voorzichtigheid. Als een klasse zeldzaam is, kan een model er geloofwaardige voorbeelden van genereren. Handig om gaten te vullen, gevaarlijk als ground truth, want een gegenereerd voorbeeld draagt het label dat de generator aannam, geen label dat een mens bevestigd heeft.
Waarom kwaliteit boven hoeveelheid gaat
Een fout label is erger dan geen label. Een ontbrekend label laat een gat; een fout label leert het model het verkeerde antwoord en rekent dat antwoord daarna nog juist ook als het model de fout herhaalt. Vier gewoontes houden de labels eerlijk.
Richtlijnen met voorbeelden. Schrijf op wat elk label betekent en toon twee of drie echte gevallen per label, ook de gevallen die op een buurlabel lijken. Bij "transportkost" hoort een zin over de leveringskost die op een goederenfactuur staat, want net op die lijn gaan twee labelers uit elkaar.
Twee labelers op een steekproef, en een cijfer voor hun overeenstemming. Laat twee mensen dezelfde deelverzameling onafhankelijk labelen en tel hoe vaak ze het eens zijn. Een gewoon percentage vleit je, want met weinig categorieën zijn twee mensen die gokken al een deel van de tijd toevallig eens. Cohen's kappa verrekent dat: de maat vergelijkt de waargenomen overeenstemming met wat toeval alleen zou opleveren, en loopt van 1 voor perfecte overeenstemming tot 0 voor niet beter dan toeval. De schaal die de meeste mensen gebruiken, leest 0,61 tot 0,80 als aanzienlijk en boven 0,80 als bijna perfect, al zijn die grenzen een afspraak en geen meetresultaat. Lage overeenstemming zegt iets over de richtlijn, niet over de labelers: de definitie is nog niet scherp genoeg.
Randgevallen één keer beslissen. Elk meningsverschil dat bij de persoon belandt die de knoop doorhakt, wordt een regel in de richtlijn. Zo wordt dezelfde vraag nooit twee keer beslist door twee verschillende mensen op twee verschillende manieren.
Een gouden set die de labelers niet zien. Hou een kleine set voorbeelden bij, gelabeld door je meest vertrouwde expert, en gebruik die om iedereen te controleren, ook elk model dat voorlabelt. Google raadt aan om je beoordelaars te controleren door zelf een deel te labelen en te vergelijken, en het engineeringteam van Anthropic geeft de test voor een goede evalcase: twee domeinexperts die onafhankelijk werken, komen tot hetzelfde oordeel.
Hoeveel labels heb je nodig?
Het eerlijke antwoord: minder dan je vreest om te evalueren, meer dan je hoopt om te trainen. Afgeronde ranges, uit richtlijnen van leveranciers en uit onze eigen praktijk:
Voor een evalset. Het engineeringteam van Anthropic schreef in januari 2026 dat 20 tot 50 taken uit echte fouten een goede start zijn voor een agent, en hun evaluatiegids geeft voorbeelden als 200 artikels met een referentiesamenvatting of 100 klantvragen, met de raad om liever meer cases automatisch te scoren dan weinig cases met de hand. Vijftig tot tweehonderd echte cases waar een domeinexpert zijn handtekening onder zet, is de range die wij nastreven voor een AI-project live gaat.
Voor het fine-tunen van een LLM. De documentatie van OpenAI legt het minimum op 10 voorbeelden en raadt aan te starten met 50 goed uitgewerkte, en er pas meer bij te doen als die 50 het resultaat merkbaar verbeteren. Duizenden voorbeelden zijn het terrein van een model anders leren schrijven of redeneren, niet van je categorieën aanleren.
Voor een klassieke classifier. Dat hangt af van het aantal klassen en hoe scheef ze verdeeld zijn. Een vuistregel uit de praktijk: genoeg voorbeelden zodat je zeldzaamste klasse er nog een paar honderd heeft, wat voor een factuurmodel met zes categorieën en één zeldzame klasse al gauw enkele duizenden lijnen in totaal betekent.
In elk geval zit de beperking bij de zeldzame en dubbelzinnige voorbeelden, nooit bij de makkelijke. Tweehonderd doorsnee factuurlijnen leren een model minder dan vijftig doorsnee lijnen plus vijftig lastige waar je boekhouder over heeft moeten nadenken.
Een uitgewerkt voorbeeld: 200 factuurlijnen
Stel dat je een assistent wil die aankoopfactuurlijnen in zes categorieën steekt: handelsgoederen, transport, verpakking, externe diensten, energie en overige. Voor je een model aanraakt, bouw je de ground truth.
Steekproef. Je haalt 200 lijnen uit de laatste twaalf maanden, niet zomaar willekeurig. Je neemt de grootste leveranciers evenredig, en voegt dan bewust lijnen toe van kleine leveranciers, creditnota's, lijnen met een nulbedrag en lijnen waarvan de omschrijving enkel een artikelcode is. Ruwweg 60 procent doorsnee, 40 procent gekozen omdat ze er moeilijk uitzien.
Twee labelers. De boekhouder en de aankoopverantwoordelijke labelen elk apart alle 200 lijnen, met een richtlijn van één bladzijde en twee voorbeelden per categorie.
Meningsverschillen tellen. Ze zijn het eens over 172 lijnen en oneens over 28, dus 86 procent overeenstemming. Met zes categorieën en deze verdeling ligt toevallige overeenstemming rond een kwart, dus kappa komt uit rond 0,8. Goed, en de 28 lijnen zijn het interessante deel.
Beslissen. De financieel verantwoordelijke hakt de knoop door voor elk van de 28. Twintig zijn gewone vergissingen. Acht zijn echte gaten in de richtlijn: de leveringskost op een goederenfactuur, een leverancier die zowel verpakking als goederen verkoopt, een onderhoudscontract waar onderdelen in zitten. Elk van die acht wordt een zin in de richtlijn, één keer beslist.
De gouden set. De 200 beoordeelde lijnen zijn de ground truth. Veertig ervan, vooral de moeilijke, zet je apart als gouden set die niemand nog opnieuw labelt. Elke nieuwe labeler en elk model wordt eerst op die veertig gescoord.
Totale inspanning: ongeveer anderhalve dag van twee mensen plus twee uur van de financieel verantwoordelijke. Dat is het goedkoopste stuk van het project en het stuk dat beslist of de cijfers die je later ziet iets betekenen.
Ground truth tegenover modeloutput
De vraag die deze vergelijking beslist: wie vertrouw je als de twee het oneens zijn? De reflex is de ground truth vertrouwen, want daar dient ze voor. De betere reflex is eerst het label nakijken.
Een model dat 92 procent scoort op je ground truth zit fout op 8 procent van de gevallen, of de ground truth zit fout, of allebei. In onze ervaring blijkt een deel van de "fouten" die een degelijk model maakt op een handgelabelde set bij nader inzien een labelfout te zijn: de boekhouder boekte het in de haast op de verkeerde rekening, de richtlijn veranderde halverwege het jaar, twee labelers raakten het nooit eens en één van hen kreeg gelijk.
De werkregel is dus: als model en label het oneens zijn, kijkt een mens naar dat geval voor iemand het meetelt. Was het label fout, verbeter het label, en de ground truth wordt beter. Was het model fout, hou het geval bij, want dat is precies het soort dat je in de gouden set wil. Ground truth is tegelijk het ding waartegen je meet en het ding dat je blijft corrigeren.
Waar moet je op letten bij datalabeling
Ground truth is niet de waarheid. Het is een reeks beslissingen van bepaalde mensen onder een bepaalde definitie op een bepaalde datum. Bedrijfsdefinities verschuiven: vorig jaar zaten softwareabonnementen onder "externe diensten", dit jaar zijn ze een categorie apart. Labels van voor die wijziging zijn nu fout, en een model dat erop getraind is, blijft abonnementen vol overtuiging op de oude manier boeken. Zet een datum op je labels en kijk de gouden set opnieuw na als een definitie verandert.
Labels uit het ERP dragen de fouten van gisteren mee. Als een ex-collega drie jaar lang elke koerierfactuur op "overige" geboekt heeft, dan is dat wat de labels zeggen. Neem een steekproef van historische labels en controleer ze voor je ze vertrouwt, net zoals je een nieuwe labeler zou controleren.
Voorlabelen stuurt de corrector. Als een model een label voorstelt, is een vermoeide mens geneigd het te aanvaarden. Hou een deel van de voorbeelden apart die blind gelabeld worden, zonder de suggestie van het model, en vergelijk de twee stromen. Wijkt de blinde stroom meer af van de voorgelabelde dan de twee labelers van elkaar afweken, dan stuurt het model de labels.
De kost is werk, en het is werk van de vakmensen. Wie een factuurlijn juist kan labelen, is dezelfde persoon die al bezig is met de maandafsluiting. Labeldiensten en crowdplatformen zijn goedkoop per item en weinig waard voor alles wat jouw context nodig heeft. Reken de uren van de domeinexpert in het project mee als elke andere kost, en zet die uren in op de moeilijke gevallen terwijl regels en voorlabelen de makkelijke afhandelen.
De tool is het kleinste probleem. Een spreadsheet met één kolom per label en een veld voor opmerkingen volstaat voor een paar honderd cases. Label Studio en vergelijkbare open source tools kunnen overweg met afbeeldingen, documenten en meerdere labelers, en de betalende versie voegt dashboards voor overeenstemming toe. Voor grote volumes bestaan er labeldiensten. Kies de tool nadat de richtlijn geschreven is, nooit ervoor.