Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

A/B-testen van prompts

Leer hoe je promptvarianten systematisch test en vergelijkt op dezelfde testset, zodat je de best presterende versie kiest op basis van bewijs in plaats van gevoel.

Wat is prompt A/B-testen?

Prompt A/B-testen is het systematisch vergelijken van twee of meer promptvarianten op dezelfde set testgevallen om te bepalen welke variant beter presteert. Het principe is hetzelfde als klassiek A/B-testen in productontwerp: je verandert één variabele, meet de impact en kiest de winnaar op basis van data.

In de context van prompts test je variaties zoals:

  • Instructiestijl (imperatief versus vragend)
  • Persona-beschrijving (met versus zonder rolinstelling)
  • Aantal few-shot voorbeelden (twee versus vijf)
  • Formattering van de instructie (bullet-lijst versus proza)
  • Toevoeging of weglating van een chain-of-thought instructie

Door systematisch te testen ontdek je welke promptelementen daadwerkelijk bijdragen aan kwaliteit en welke weinig impact hebben. Dat voorkomt dat je prompts opbouwt op basis van onderbuikgevoel.

Hoe zet je een A/B-test op?

De opzet bestaat uit vijf stappen. Wijzig per test precies één element, anders weet je achteraf niet welke verandering het verschil veroorzaakte.

Een A/B-test opzetten in vijf stappen

  1. Definieer wat je test. Wijzig precies één element tussen variant A en variant B.
  2. Maak je testset. Gebruik dezelfde testset voor beide varianten, minimaal 50 gevallen, representatief voor je productiedata.
  3. Kies je metriek. Bepaal één primaire metriek, zoals accuracy, gemiddelde kwaliteitsscore of task completion rate, plus eventuele secundaire metrieken.
  4. Voer beide varianten uit. Verwerk alle testgevallen met variant A en met variant B, met dezelfde temperature-instelling en dezelfde modelversie.
  5. Meet en vergelijk. Bereken de metriek voor beide varianten en toets op statistische significantie voor je een winnaar uitroept.

Een concreet voorbeeld

Stel dat je een prompt hebt die klantvragen samenvat in maximaal twee zinnen. Je vermoedt dat een voorbeeld toevoegen de kwaliteit verbetert.

  • Variant A (baseline): alleen de instructie "Vat de klantvraag samen in maximaal twee zinnen."
  • Variant B: dezelfde instructie met één uitgewerkt voorbeeld van een vraag en de gewenste samenvatting.

Je draait beide varianten op dezelfde 80 klantvragen met temperature=0. Een tweede, sterker model scoort elke samenvatting van 1 tot 5 op volledigheid en bondigheid (dit heet LLM-as-a-judge). Variant B scoort gemiddeld 4,2 tegen 3,7 voor variant A. Met een t-toets controleer je vervolgens of dat verschil van 0,5 punt waarschijnlijk echt is en niet door toeval ontstaat.

Statistische significantie

Een groot verschil in scores is niet automatisch betekenisvol. Met een kleine testset kun je door pech een groot verschil zien terwijl er in werkelijkheid geen verschil is. LLM-output is bovendien stochastisch: op tokenniveau zit er toeval in, dus zelfs dezelfde prompt levert variatie op.

Welke toets je gebruikt hangt af van je metriek:

  • Continue metriek (gemiddelde kwaliteitsscore, gemiddelde rating): gebruik een t-toets of een niet-parametrisch alternatief.
  • Binaire of categorische uitkomst (goed versus fout, taak voltooid versus niet): gebruik een twee-proporties z-toets of een chi-kwadraattoets.

Vuistregels voor de omvang van je testset:

  • Minder dan 50 testgevallen: resultaten zijn te onzeker voor sterke conclusies.
  • 50 tot 100 testgevallen: bruikbaar voor grove indicaties.
  • 100 tot 500 testgevallen: statistisch betrouwbaar voor de meeste use cases.

Een p-waarde kleiner dan 0,05 geeft aan dat het verschil waarschijnlijk niet door toeval komt.

info

Pragmatiek versus formele statistiek

In de praktijk hanteren veel promptengineers een pragmatische drempel: is de verbetering consistent meer dan vijf procentpunten én blijft die stabiel over meerdere subsets van de testdata, dan accepteren ze de winnaar zonder formele significantietoets. Voor beslissingen met hoge impact, zoals een prompt die in productie gaat, blijft een echte toets aan te raden.

Wat te testen

Niet elke wijziging is een test waard. Richt je energie op wat doorgaans het meeste verschil maakt.

Hoge impact (test altijd):

  • Toevoegen of weglaten van few-shot voorbeelden
  • Veranderen van de taakformulering
  • Toevoegen of weglaten van een chain-of-thought instructie
  • Verandering van het outputformaat

Middelmatige impact (test bij twijfel):

  • Toon van de instructie
  • Hoeveelheid meegegeven context
  • Volgorde van instructie-elementen

Lage impact (zelden testen):

  • Kleine woordkeuzes in de instructie
  • Opmaak van de prompt (spaties, regeleinden)
  • Lengte van voorbeeldteksten bij few-shot

Iteratief verbeteren

A/B-testen is iteratief. Na elke test heb je een nieuwe basislijn, namelijk de winnaar, waarop je verder bouwt:

Basislijn -> Test A/B -> Winnaar wordt nieuwe basislijn -> Test A/B -> Winnaar -> ...

In de praktijk bereik je na drie tot vijf rondes een punt van afnemende meerwaarde. Dan is het zinvoller om de testset te verbeteren of andere aspecten van je systeem te optimaliseren.

warning

Pas op voor overfitting op je testset

Als je tientallen varianten test op dezelfde set, ga je uiteindelijk de testset optimaliseren in plaats van de werkelijke taak. Houd een aparte holdout-set achter de hand voor de finale validatie van je winnaar.

lightbulb

Werk met een vaste seed waar dat kan

Wil je runs zo reproduceerbaar mogelijk maken, combineer dan temperature=0 met een vaste seed als het model die ondersteunt. Zo verklein je de ruis tussen runs en heb je minder herhalingen nodig om een betrouwbaar gemiddelde te krijgen.

Kan ik A/B-testen in een chatinterface zonder API?

Handmatig testen kan, maar het is tijdrovend. Je draait beide varianten met de hand op een set gevallen en scoort handmatig. Automatisering via de API is vrijwel altijd efficiënter, zeker zodra je testset groeit.

Hoe ga ik om met stochastische output?

Bij een temperature groter dan 0 geeft dezelfde prompt bij herhaalde runs verschillende output. Draai dan meerdere runs per testgeval, bijvoorbeeld drie tot vijf, en middel de scores. Voor maximale reproduceerbaarheid gebruik je temperature=0.

Wanneer is mijn testset groot genoeg?

Als je metriek niet meer significant verandert wanneer je nieuwe testgevallen toevoegt, is je set groot genoeg. Begin met 50 gevallen en voeg cases toe totdat de resultaten stabiliseren.

Kan ik meer dan twee varianten tegelijk testen?

Ja, dat heet A/B/n-testen of multivariaat testen. Je hebt dan wel meer testgevallen nodig voor dezelfde statistische zekerheid en het kost meer API-aanroepen.

Welke toets gebruik ik voor mijn metriek?

Voor een continue metriek zoals een gemiddelde kwaliteitsscore gebruik je een t-toets. Voor een binaire uitkomst zoals goed versus fout gebruik je een twee-proporties z-toets of een chi-kwadraattoets.

Hoe scoor ik subjectieve kwaliteit objectief?

Een veelgebruikte aanpak is LLM-as-a-judge: een sterker model beoordeelt elke output op een vaste schaal met een vaste rubric. Belangrijk is dat je dezelfde rubric en hetzelfde beoordelaarsmodel voor beide varianten gebruikt.

Systematisch A/B-testen is het verschil tussen prompts verbeteren op gevoel en verbeteren op bewijs. Bouw dit proces vroeg in je workflow in, dan heb je een betrouwbaar mechanisme voor continue verbetering.