Steekproefgrootte bepalen voor betrouwbare LLM-evaluaties
Bij het bouwen, verfijnen en in productie nemen van taalmodellen staat één vraag centraal zodra er een prompt of modelversie wordt gewijzigd: hoe weten we zeker dat het model daadwerkelijk beter presteert en dat het geobserveerde verschil geen toevallige steekproeffout is? Wie een evaluatieset samenstelt, balanceert voortdurend tussen statistische zeggingskracht enerzijds en praktische haalbaarheid anderzijds. Een te kleine steekproef leidt tot schijnzekerheid waarbij toevallige ruis wordt aangezien voor een prestatieverbetering. Een te grote steekproef jaagt de tokenkosten en rekentijden onnodig op en vertraagt snelle ontwikkelcycli.
Dit artikel behandelt de wiskundige en praktische methodiek om de minimale steekproefgrootte (sample size) exact te berekenen voor zowel binaire slaag/faal-taken als continue kwaliteitsscores. We richten ons specifiek op de statistische power-analyses die nodig zijn om harde productiebeslissingen te onderbouwen. Dit artikel onderscheidt zich van algemene richtlijnen over testsets doordat we diep ingaan op de parametrische en non-parametrische steekproefcalculaties, power-functies en variantiereductietechnieken, in plaats van uitsluitend het verzamelen van brondata of het opstellen van annotatierichtlijnen.
De beslissing: wanneer is een verschil statistisch significant?
Voordat we formules toepassen, moeten we helder formuleren welke beslissing afhangt van de evaluatie-uitkomst. In software-ontwikkeling met LLM-componenten treden doorgaans twee situaties op. De eerste is een vergelijkende A/B-toets tussen twee promptvarianten, modelarchitecturen of kwantiseringsniveaus. De tweede is een absolute acceptatietest: haalt een getuned model een vooraf vastgesteld kwaliteitsniveau van bijvoorbeeld minimaal 95 procent nauwkeurigheid op een extractietaak?
Wanneer een nieuw model op een willekeurige set van 50 vragen een score haalt van 88 procent en het oude model 84 procent, lijkt er op het eerste gezicht sprake van winst. Statistisch gezien is dit verschil van twee extra goede antwoorden bij een steekproef van slechts 50 items echter volkomen betekenisloos; het 95%-betrouwbaarheidsinterval van beide metingen vertoont een enorme overlap. Wie overhaast begint zonder basiskennis over spreiding en betrouwbaarheid, kan eerst de grondbeginselen van evaluaties voor beginners doornemen om te begrijpen hoe scoring en evaluatiecriteria in de basis worden opgebouwd.
Het bepalen van de steekproefgrootte draait fundamenteel om het beheersen van twee soorten foutenrisico's. Aan de ene kant staat het risico dat een inferieur model per ongeluk naar productie wordt gepromoveerd (Type I-fout of fout-positief, begrensd door het significantieniveau α). Aan de andere kant staat het risico dat een reële, waardevolle kwaliteitsverbetering over het hoofd wordt gezien (Type II-fout of fout-negatief, begrensd door β). Wie bovendien wil voorkomen dat testvragen al tijdens pre-training door het model zijn gezien en de berekende power vertekenen, raadpleegt de richtlijnen over een testset bouwen zonder datacontaminatie om te waarborgen dat de berekende steekproef uitsluitend uit zuivere, ongeziene data bestaat.
Binaire evaluaties: de formule van Cochran en betrouwbaarheidsintervallen
Veel geautomatiseerde LLM-evaluaties hebben een discrete, binaire uitkomst: een gegenereerd antwoord voldoet wel of niet aan een strikt validatieschema, bevat wel of geen hallucinatie, of volgt een reeks negatieve restricties correct op. Voor zulke binaire proporties baseren we de steekproefberekening op de binomiale verdeling en de centrale limietstelling.
Wanneer het doel is om een absolute slaagproportie te schatten met een vooraf gedefinieerde absolute foutmarge (margin of error e) bij een gekozen betrouwbaarheidsniveau (met z-score Z), gebruiken we de klassieke formule van Cochran:
n = (Z^2 * p * (1 - p)) / e^2
Hierin staat Z voor de kritieke waarde behorend bij het tweezijdige betrouwbaarheidsinterval (1,96 voor 95% betrouwbaarheid; 2,576 voor 99% betrouwbaarheid), p voor de verwachte proportie successen in de populatie, en e voor de maximaal toelaatbare halve breedte van het interval. Beschikken we over geen enkele voorkennis, dan kiezen we conservatief voor p = 0,5. Dit levert het maximale product p * (1 - p) = 0,25 op, wat resulteert in de grootst mogelijke benodigde steekproefomvang.
Let op: De getallen in de onderstaande tabel zijn wiskundige rekenvoorbeelden op basis van de binomiale standaardfoutformule en vormen een richtlijn voor evaluatieplanning.
| Betrouwbaarheidsniveau | Toelaatbare foutmarge (e) | Aangenomen proportie (p) | Benodigde steekproefgrootte (n) |
|---|---|---|---|
| 95% (Z = 1,96) | ± 10% (0,10) | 0,50 (maximale variantie) | 97 |
| 95% (Z = 1,96) | ± 5% (0,05) | 0,50 (maximale variantie) | 385 |
| 95% (Z = 1,96) | ± 2% (0,02) | 0,50 (maximale variantie) | 2.401 |
| 99% (Z = 2,576) | ± 5% (0,05) | 0,50 (maximale variantie) | 664 |
| 95% (Z = 1,96) | ± 5% (0,05) | 0,90 (hoge basisaccuratesse) | 139 |
| 95% (Z = 1,96) | ± 2% (0,02) | 0,95 (zeer hoge accuratesse) | 457 |
Als een modeltaak naar verwachting een hoge slagingskans heeft van rond de 90 procent (p = 0,9), daalt de binomiale variantie naar 0,9 * 0,1 = 0,09. In dat scenario zijn er slechts 139 onafhankelijke prompts nodig om met 95 procent zekerheid aan te tonen dat de werkelijke score binnen het interval [85%, 95%] ligt. Voor engineers die de formele bewijsvoering en wiskundige achtergrond van betrouwbaarheidsintervallen verder willen bestuderen, biedt de verdiepende handleiding over statistiek voor evaluaties een grondig overzicht van hypothesetoetsen, z-scores en verdelingsfuncties.
A/B-vergelijkingen en statistische power
Bij het vergelijken van twee modelcheckpoints of promptvarianten volstaat het schatten van een enkelvoudig betrouwbaarheidsinterval niet. We moeten formeel toetsen of het verschil tussen twee proporties (p1 en p2) significant afwijkt van nul. Hierbij spelen vier fundamentele variabelen een rol:
1. Significantieniveau (α): de drempel voor het risico op een vals-positieve conclusie (standaard gezet op 0,05).
2. Statistische power (1 - β): de waarschijnlijkheid dat een werkelijk aanwezig prestatieverschil daadwerkelijk wordt gedetecteerd (standaard 0,80 of 0,90).
3. Basiskwaliteit (p1): het huidige nauwkeurigheidsniveau van het productiemodel.
4. Minimaal Detecteerbaar Effect (MDE, δ = |p1 - p2|): de kleinste absolute prestatieverbetering die operationeel relevant is.
De benodigde steekproefomvang per variant (n) bij een tweezijdige tweesteekproeven-z-toets voor onafhankelijke groepen luidt:
n = [ (Z_alpha/2 * sqrt(2 * p_gem * (1 - p_gem)) + Z_beta * sqrt(p1*(1-p1) + p2*(1-p2)))^2 ] / (p1 - p2)^2
Hierin is p_gem = (p1 + p2) / 2. Stel dat we een promptwijziging testen waarbij we hopen de accuraatheid te verhogen van 80% naar 85% (α = 0,05, power = 0,80). Volgens deze formule zijn circa 1.077 unieke testitems per promptvariant vereist, wat neerkomt op 2.154 modelaanroepen in totaal. Wil men een fijnmaziger verschil van slechts 2 procentpunt aantonen (van 80% naar 82%), dan explodeert de benodigde steekproefomvang naar ruim 6.800 items per groep. Om dergelijke experimenten gecontroleerd en reproduceerbaar uit te voeren, legt het artikel over A/B-testen van prompts uit hoe men varianten parallel toetst zonder bias in de selectie van testgevallen.
Gepaarde versus ongepaarde meetopzetten (McNemar-toets)
De klassieke formule voor twee onafhankelijke steekproeven gaat ervan uit dat groep A en groep B op verschillende prompts worden getest. In de praktijk van software-evaluatie is dat buitengewoon inefficiënt. We kunnen een gepaarde meetopzet hanteren: model A en model B krijgen exact dezelfde set testprompts voorgelegd.
Door dezelfde invoer te hanteren, elimineren we direct de externe variantie die veroorzaakt wordt door verschillen in inherente moeilijkheidsgraad tussen afzonderlijke testprompts. De statistische toetsing verschuift daardoor van een tweesteekproeven-z-toets naar de toets van McNemar voor gepaarde nominale data. Bij een gepaarde evaluatie bouwen we een 2x2-contingentietabel op:
| Model B: Correct | Model B: Fout |
---------------+------------------+---------------+
Model A: Goed | a | b |
Model A: Fout | c | d |
De concordante paren (a en d) vertegenwoordigen prompts waar beide modellen hetzelfde resultaat behalen; zij leveren geen onderscheidend bewijs. Uitsluitend de discordante paren (b en c) bepalen de teststatistiek. De toetsgrootheid chi-kwadraat (χ²) met continuïteitscorrectie luidt:
chi^2 = (|b - c| - 1)^2 / (b + c)
Omdat modellen op veel prompts identiek presteren (bijvoorbeeld 80% overlap in uitkomsten), verkleint een gepaarde opzet de vereiste steekproefgrootte vaak met een factor 3 tot 5 vergeleken met een ongepaarde test. Waar een ongepaarde A/B-toets 1.000 prompts per variant vergt, kan een gepaarde opzet op 250 tot 350 prompts al dezelfde statistische power bereiken.
Continue evaluaties en Likert-schalen
Niet elke taakevaluatie laat zich vangen in een binaire 0 of 1. Bij het meten van antwoordrelevantie, semantische embedding-afstand, stijlovereenkomst of LLM-as-a-Judge oordelen op een schaal van 1 tot 5, werken we met continue of ordinale metrieken. Voor continue variabelen hangt de minimale steekproefgrootte direct af van de populatievariantie (σ²).
De formule voor het schatten van een continu populatiegemiddelde binnen een absolute foutmarge E luidt:
n = (Z^2 * sigma^2) / E^2
De grootste uitdaging bij continue metrieken is dat de standaarddeviatie (σ) vooraf onbekend is. Een verkennende pilotmeting op 30 tot 50 representatieve prompts is daarom een verplichte eerste stap om σ empirisch te schatten. Blijkt uit de pilot dat de kwaliteitsscores sterk fluctueren (hoge standaarddeviatie), dan schaalt de benodigde steekproefomvang kwadratisch mee om de gewenste precisie te handhaven.
Bij strikt gestructureerde extractietaken, waarbij de uitvoer moet voldoen aan een rigide JSON-schema, kunnen we continue kwaliteitsbeoordelingen vaak weer terugbrengen naar deterministische, binaire parsings- en validatieregels. Hoe men dergelijke schema-eisen programmeert en toetst, wordt nader uiteengezet in het overzicht over betrouwbare JSON en structured output.
Niet-deterministische modellen en herhalingen per prompt
Een unieke complicatie bij het kwantitatief evalueren van moderne LLM's is niet-determinisme. Zelfs wanneer de temperatuurparameter op 0 wordt ingesteld, kunnen floating-point afrondingsvolgordes in parallelle GPU-decodingmini-batches minieme variaties in de token-kansen veroorzaken. Bij sampling met een temperatuur boven 0 introduceert het model expliciete stochastiek.
Hierdoor ontstaat een hiërarchisch data-ontwerp met twee afzonderlijke variantiecomponenten:
1. De variantie tussen verschillende prompts in de testset (σ²_prompt).
2. De variantie tussen herhaalde generaties op dezelfde prompt (σ²_run).
De gecombineerde standaardfout (Standard Error, SE) van het geschatte gemiddelde over N unieke prompts met elk k herhalingen wordt gegeven door:
SE = sqrt( (sigma^2_prompt / N) + (sigma^2_run / (N * k)) )
Deze vergelijking legt een cruciaal ontwerpprincipe bloot: het verhogen van het aantal unieke prompts (N) verlaagt beide variantietermen tegelijkertijd, terwijl het verhogen van het aantal herhalingen per prompt (k) uitsluitend de run-variantie dempt. In vrijwel alle praktische use-cases is σ²_prompt vele malen groter dan σ²_run. Het is daarom statistisch superieur om te investeren in een brede verzameling van bijvoorbeeld 300 unieke prompts met k = 1 of k = 2, in plaats van 30 prompts elk 20 keer te bevragen. Om ervoor te zorgen dat herhaalde runs niet verstoord worden door veranderende systeemomgevingen, is het raadzaam de richtlijnen voor reproduceerbaarheid van AI-evaluaties toe te passen op hardware- en parameterconfiguraties.
Nederlandstalige valkuilen en gestratificeerde steekproeven
Een veelgemaakte fout bij evaluaties in het Nederlandse taalgebied is het trekken van een zuiver willekeurige steekproef over een ongeordende verzameling productielogs. Het Nederlands kent specifieke taalkundige eigenschappen die zeer ongelijk verdeeld zijn in het taalgebruik, maar die wel bepalend zijn voor de gebruikerservaring:
1. Lange samenstellingen: Modellen tokenizeren Nederlandse samenstellingen ('aansprakelijkheidsverzekering', 'klimaatadaptatiestrategie') vaak in inefficiënte sub-word tokens, wat kan leiden tot hallucinaties of spellingsfouten.
2. Aanspreekvorm en register: De keuze tussen formele 'u'-vorm en informele 'je/jij'-vorm vereist consistente contextsturing.
3. Regionale taalvariatie: Verschillen tussen Noord-Nederlands en Belgisch-Nederlands (Vlaams) lexicon en zinsbouw.
4. Domeinspecifiek jargon: Het correct verwerken van Engelse leenwoorden binnen een Nederlandse grammaticaale context.
Wanneer een testset van 200 vragen willekeurig wordt getrokken, kan het voorkomen dat er slechts twee of drie zinnen met formele u-aanspreking of complexe samenstellingen in de steekproef belanden. Een deelevaluatie over die specifieke vaardigheid bezit dan een gigantische foutmarge. De methodologische oplossing is gestratificeerde steekproeftrekking (stratified sampling). Hierbij delen we de populatie vooraf op in homogene strata (subgroepen) en berekenen we per stratum de minimaal benodigde steekproefomvang. Hierdoor worden ook zeldzame maar bedrijfskritische taalfenomenen met voldoende statistische betrouwbaarheid gedekt.
Kosten versus zeggingskracht: een pragmatisch stappenplan
Elke extra evaluatievraag brengt directe API-kosten, wachttijd en eventueel annotatiekosten met zich mee. Om een financieel beheersbare evaluatiestrategie te hanteren, doorlopen we de volgende vier fasen:
Stap 1: Bepaal het Minimale Detecteerbare Effect (MDE). Stel vooraf vast welk prestatieverschil een migratie naar een groter model of een herziening van de systeemprompt rechtvaardigt. Een winst van 1% rechtvaardigt zelden een verdubbeling van de latency of kosten, terwijl een verschil van 5% dat vaak wel doet.
Stap 2: Voer een pilotmeting uit (N = 30 tot 50). Meet de initiële slagingskans (p) en standaarddeviatie (σ). Hiermee worden aannames vervangen door harde empirische schattingen.
Stap 3: Bereken de definitieve steekproefomvang. Pas de gepaarde McNemar-formule of de Cochran-formule toe met het gewenste betrouwbaarheidsniveau (95%) en gewenste power (80%).
Stap 4: Hanteer sequentiële analyse (early stopping). Bij omvangrijke validatieruns kan men tussentijds toetsen via Wald's Sequential Probability Ratio Test (SPRT). Als een nieuw model na 80 van de geplande 400 prompts al significant slechter presteert dan de productielijn, kan de run direct worden afgebroken om budget te besparen.
Voor een diepgaande analyse van de afweging tussen tokenprijzen, modelkeuzes en evaluatiekosten, raadpleegt men het overzicht over de kosten van evalueren beheersen.
Integratie in de ontwikkel- en deploypijplijn
Een steekproefberekening is geen statische eenmalige berekening, maar een dynamisch instrument binnen continue integratie (CI/CD). In moderne engineering-pijplijnen differentiëren we de steekproefomvang op basis van de validatiefase:
| Pijplijnfase | Doel van de evaluatie | Typische steekproef (n) | Statistische doelstelling |
|---|---|---|---|
| Lokale pre-commit | Detectie van fatale regressies en syntaxfouten | 15 – 30 prompts | Snelle sanity check (< 30 seconden) |
| Pull Request CI | Detectie van substantiële regressies (> 8% MDE) | 100 – 250 prompts | Gepaarde toetsing met 80% power (< 3 minuten) |
| Nachtelijke / Release build | Detectie van subtiele effecten (2 – 3% MDE) | 500 – 2.000 prompts | Volledige hypothesetoetsing met 90% power |
Hoe men dergelijke geautomatiseerde regressietests met harde afbreekcriteria en faaldrempels inbouwt in deployment-workflows, wordt stap voor stap uitgelegd in de gids over evaluaties in de pijplijn inrichten.
Conclusie en checklist voor evaluatie-opzet
Het bepalen van de juiste steekproefgrootte transformeert LLM-evaluaties van nattevingerwerk naar reproduceerbare wetenschap. Door vooraf het gewenste betrouwbaarheidsniveau, de toelaatbare foutmarge en het minimaal detecteerbare effect wiskundig vast te leggen, voorkomt men dat budget wordt verspild aan nodeloos grote testsets of dat beslissingen worden gebaseerd op statistische ruis.
Controleer bij het opzetten van een nieuwe testverzameling altijd de volgende kernpunten:
• Is het evaluatiedoel expliciet gedefinieerd als een absolute proportieschatting of een vergelijkende A/B-toets?
• Is er gekozen voor een gepaarde meetopzet op identieke prompts om ruis door vraagvariatie te elimineren?
• Is de variantie vooraf geschat met een representatieve pilot van 30 tot 50 items?
• Krijgt het uitbreiden van unieke prompts (N) structureel voorrang boven herhaalde runs per prompt (k)?
• Is de dataset via gestratificeerde steekproeven gecontroleerd op representatieve dekking van specifieke Nederlandse taalconstructies?


