Hoe test je of een AI-functie goed werkt?

Bij gewone software test je of twee plus twee vier is. Bij een AI-functie is er geen enkel goed antwoord en krijg je bovendien niet elke keer hetzelfde terug. Toch kun je meten of je functie goed genoeg is, en vooral of hij beter of slechter wordt als je iets verandert. Dat is meestal de vraag die ertoe doet.

Terug naar OneDayBuild
01/06

Waarom gewone tests hier niet werken

Twee keer dezelfde vraag levert twee formuleringen op, allebei mogelijk goed.

Een taalmodel is niet deterministisch: dezelfde vraag geeft niet elke keer letterlijk hetzelfde antwoord. Een test die controleert of de uitvoer exact overeenkomt met een verwachte tekst, faalt daarom op formuleringen die prima zijn.

Daar komt bij dat kwaliteit vaak een oordeel is. Of een samenvatting goed is, hangt af van of de belangrijkste punten erin staan, niet van welke woorden er zijn gebruikt. Dat kun je niet met een gelijkheidstest afvangen.

Wat wel kan is een set voorbeelden aanleggen met daarbij wat je verwacht, en die telkens opnieuw doorrekenen als je iets verandert aan je prompt, je model of je context. Je meet dan geen absolute waarheid, maar wel richting: gaat het vooruit of achteruit.

02/06

Drie manieren om te beoordelen

Van goedkoop en hard naar duur en genuanceerd.

Harde controles

Staat het gevraagde veld erin, is het geldige JSON, valt het binnen de toegestane waarden, blijft het onder de maximale lengte. Snel, goedkoop en verrassend effectief voor alles wat een vaste vorm moet hebben.

Vergelijken met een verwacht antwoord

Je legt vast wat er in het antwoord moet zitten en controleert of die punten terugkomen. Werkt goed voor classificatie en extractie, waar er wél een goed antwoord bestaat.

Een model laat oordelen

Je laat een tweede model beoordelen of het antwoord aan je criteria voldoet. Bruikbaar voor open teksten, mits je de criteria scherp opschrijft en steekproefsgewijs zelf meekijkt.

03/06

Zo begin je, zonder dat het een project wordt

Vijf stappen die samen een dagdeel kosten en daarna elke wijziging goedkoper maken.

  • Verzamel twintig echte voorbeelden. Geen verzonnen gevallen maar invoer die je in de praktijk verwacht, inclusief de rare gevallen. Twintig is genoeg om richting te zien; honderd is prettiger maar niet nodig om te beginnen.
  • Schrijf per voorbeeld op wat je wilt zien. Niet het exacte antwoord, maar de punten die erin horen of het label dat eruit moet komen. Dit is het werk waar je even voor moet zitten, en het is eenmalig.
  • Draai ze allemaal en beoordeel met de hand. De eerste ronde doe je zelf. Dat kost een uur en het levert je een nulmeting op plus een scherp beeld van waar het misgaat.
  • Automatiseer wat automatisch kan. De harde controles eerst. Daarna eventueel een beoordelend model voor de open antwoorden, waarvan je de oordelen af en toe steekproefsgewijs narekent.
  • Draai de set bij elke wijziging. Verander je je prompt, je model of je context, dan zie je meteen of het beter wordt. Dat is het hele punt: je verandert niet meer op gevoel.
04/06

Wat je meet en wat je niet moet meten

Een paar maatstaven die iets zeggen, en een paar die vals comfort geven.

Zegt iets
  • Het aandeel antwoorden dat aan je harde eisen voldoet.
  • Het aandeel waarin de gevraagde punten daadwerkelijk voorkomen.
  • Hoe vaak het model iets beweert dat niet in de bron staat.
  • Hoe vaak het model helemaal geen antwoord geeft terwijl dat wel had gemoeten.
Zegt weinig
  • Een gemiddeld cijfer van een model over zijn eigen werk.
  • Hoe tevreden je zelf was bij de drie voorbeelden die je toevallig probeerde.
  • Lengte van het antwoord, tenzij je daar een expliciete eis over hebt.
  • Snelheid, zolang je nog niet weet of de antwoorden kloppen.
05/06

In een bouwdag

Een testset van twintig gevallen is het verschil tussen een demo en iets waar je op kunt sturen.

Als een idee draait om een AI-functie, besteden we een deel van de dag aan het verzamelen van voorbeelden. Meestal heb jij die al: e-mails, aanvragen, documenten die door je organisatie heen gaan. Twintig daarvan zijn genoeg om te zien wat het model wel en niet aankan.

Aan het eind van de dag heb je dan niet alleen een werkende functie maar ook een getal: bij hoeveel van die twintig kwam er iets bruikbaars uit. Dat getal is oninteressant op zichzelf en waardevol als vertrekpunt, want elke volgende wijziging kun je ertegen afzetten.

Het levert bovendien vaak het nuttigste inzicht van de dag op: welk deel van de gevallen simpel is en welk deel echt lastig. Als tachtig procent moeiteloos gaat en twintig procent hardnekkig fout, is dat een heel ander gesprek dan wanneer alles half werkt.

06/06

Veelgestelde vragen

Wat is een eval?

Een vaste set voorbeelden met daarbij wat je verwacht, die je telkens opnieuw doorrekent om te zien of je AI-functie beter of slechter wordt. Het is dezelfde gedachte als een testsuite bij gewone software, maar met beoordeling in plaats van gelijkheid.

Hoeveel voorbeelden heb ik nodig?

Begin met twintig echte gevallen, inclusief de lastige. Dat is genoeg om richting te zien en klein genoeg om ze in een uur met de hand te beoordelen. Groeit de functie in belang, dan breid je uit. Elke keer als er iets misgaat in de praktijk, voeg je dat geval toe.

Kan ik een model zijn eigen werk laten beoordelen?

Beter een tweede aanroep met een expliciete beoordelingsopdracht dan het model in hetzelfde antwoord om een cijfer vragen. Ook dan geldt: schrijf je criteria op en reken de oordelen af en toe zelf na. Een beoordelend model is een hulpmiddel, geen scheidsrechter.

Hoe test ik of het model dingen verzint?

Door in je testset gevallen op te nemen waarvan je weet dat het antwoord niet in de bron staat. Het gewenste gedrag is dan dat het model zegt dat het dat niet weet. Hoe vaak het toch een antwoord verzint, is een van de nuttigste getallen die je kunt bijhouden.

Moet ik dit al doen in een prototype?

In lichte vorm ja, en het kost minder dan je denkt. Zonder een vaste set voorbeelden verander je je prompt op gevoel en weet je niet of je vooruitgaat. Twintig gevallen en een uur beoordelen is genoeg om die val te vermijden.

Wat als het model soms goed en soms fout is bij dezelfde vraag?

Dat is normaal en het is meetbaar. Draai dezelfde vraag een paar keer en kijk hoe vaak het goed gaat. Is de spreiding groot, dan helpt het vaak om de opdracht strakker te maken, om het gewenste formaat af te dwingen of om een minder vrij model te kiezen voor die taak.

Wil je weten of jouw AI-functie goed genoeg is?

Neem twintig echte voorbeelden mee naar de intake. Aan het eind van een bouwdag weet je bij hoeveel daarvan er iets bruikbaars uitkomt.