Waarom je AI-chatbot dingen verzint

Je bouwt een assistent die vragen over je eigen product beantwoordt, en na een week meldt een klant dat hij een antwoord kreeg dat nergens op sloeg. Dat is geen bug in de gewone zin. Het is hoe taalmodellen werken, en het is grotendeels op te lossen, alleen niet door een strengere instructie te schrijven.

Terug naar OneDayBuild
01/06

Wat er onder de motorkap gebeurt

Een taalmodel zoekt niets op. Het voorspelt wat er waarschijnlijk volgt.

Een taalmodel is getraind om het volgende stukje tekst te voorspellen. Het heeft geen database met feiten die het raadpleegt en geen besef van wat het wel en niet weet. Krijgt het een vraag waarop het antwoord niet in zijn training zat, dan produceert het toch het meest waarschijnlijk klinkende antwoord.

Dat verklaart waarom fouten er zo overtuigend uitzien. Een verzonnen artikelnummer heeft dezelfde vorm als een echt artikelnummer, want vorm is precies wat het model goed kan. Het is geen leugen en geen storing; het is het gedrag waar het systeem op is gebouwd.

Daarom werkt de meest gekozen oplossing niet. In je prompt zetten dat het model niets mag verzinnen, helpt een beetje maar lost het niet op: het model kan niet weten dat het iets niet weet. Wat wel werkt, is zorgen dat het antwoord ergens op gebaseerd is dat je zelf hebt aangeleverd.

02/06

Wat wel helpt

Drie maatregelen, oplopend in effect en in werk.

Stuur de bron mee

Zoek eerst de relevante stukken uit je eigen documentatie op en stuur die mee met de vraag. Het model hoeft dan niet te putten uit zijn geheugen maar uit tekst die voor zijn neus ligt. Dit is verreweg de grootste stap vooruit.

Laat het naar de bron verwijzen

Vraag om bij elk antwoord aan te geven uit welk document het komt. Dat maakt controleerbaar wat er wordt beweerd, en het onderdrukt in de praktijk het aantal verzinsels omdat het model iets moet kunnen aanwijzen.

Geef het een uitweg

Zeg expliciet dat 'dat staat niet in de documentatie' een goed antwoord is. Zonder die uitweg is de enige beschikbare route een antwoord verzinnen, want daar is het model op getraind.

03/06

De valkuilen die we het vaakst zien

Vijf dingen die op papier logisch lijken en het probleem niet oplossen.

  • Alle documentatie in één keer meesturen. Dat maakt het duur en vaak slechter: in een berg tekst raakt het relevante stuk ondergesneeuwd. Beter een paar goed gekozen fragmenten dan alles.
  • Vergeten dat het model geen nieuws kent. Vragen over gisteren, over prijzen of over de huidige stand van zaken gaan mis zolang je die informatie niet meestuurt. Het model doet alsof het het weet.
  • Denken dat een groter model het oplost. Sterkere modellen verzinnen minder, en ze verzinnen nog steeds. Het verschil tussen wel en niet grondslag meesturen is groter dan het verschil tussen modellen.
  • Geen enkele controle op de uitvoer. Noemt het model een artikelnummer, klantnummer of datum, controleer dan of die bestaat voordat je hem toont. Dat is gewone code en het vangt de pijnlijkste fouten af.
  • Het model laten rekenen. Bedragen optellen of percentages uitrekenen doet een taalmodel onbetrouwbaar. Laat het de gegevens ophalen en laat je eigen code rekenen.
04/06

Waar het risico groot is en waar niet

Niet elke toepassing vraagt dezelfde strengheid.

Hier moet je het afdekken
  • Antwoorden over prijzen, voorwaarden of leveringen aan klanten.
  • Alles wat richting medisch, juridisch of financieel advies gaat.
  • Gegevens die de gebruiker als feit overneemt, zoals nummers en datums.
  • Een assistent die zelf acties uitvoert op basis van wat hij denkt te weten.
Hier valt het mee
  • Brainstormen en concepten schrijven, waar variatie juist welkom is.
  • Interne hulpmiddelen waarbij de gebruiker de stof zelf kent.
  • Samenvatten van een tekst die de gebruiker er zelf bij heeft.
  • Herschrijven en toon aanpassen, waar geen feiten in het spel zijn.
05/06

Hoe we dit in een bouwdag aanpakken

Grondslag meesturen bouwen we standaard in, ook in een prototype.

Als je assistent vragen over jouw materiaal moet beantwoorden, bouwen we de opzoekstap meteen mee: eerst zoeken in jouw documenten, dan de gevonden stukken meesturen, dan pas antwoorden. Dat kost een paar uur en het is het verschil tussen een demo die indruk maakt en een demo die klopt.

Daarnaast nemen we in de testset bewust vragen op waarvan het antwoord niet in de documentatie staat. Wat we willen zien is dat de assistent dat zegt. Doet hij dat niet, dan weten we dat vóór je hem aan klanten laat zien.

Wat we niet doen is beloven dat het nooit meer misgaat. Verzinsels zijn te onderdrukken, niet uit te sluiten. Daarom hoort er bij elke assistent die naar klanten praat een plek waar een mens kan meekijken en corrigeren.

06/06

Veelgestelde vragen

Waarom noemen ze het hallucineren?

Omdat het model iets produceert dat er geloofwaardig uitziet zonder dat er een bron voor is. De term is ongelukkig, want hij suggereert een storing. Het is juist normaal gedrag van een systeem dat tekst voorspelt in plaats van feiten opzoekt.

Wat is RAG?

Een werkwijze waarbij je eerst relevante stukken uit je eigen documenten opzoekt en die meestuurt met de vraag. Het model antwoordt dan op basis van wat het voor zich heeft in plaats van uit zijn geheugen. Dit is de maatregel die in de praktijk het meeste effect heeft.

Helpt het om in de prompt te zetten dat hij niet mag verzinnen?

Een beetje, en het is niet genoeg. Het model kan niet vaststellen dat het iets niet weet, dus een verbod verandert daar weinig aan. Wat wel helpt, is een grondslag meesturen en expliciet aangeven dat 'dat weet ik niet' een geaccepteerd antwoord is.

Verzinnen nieuwere modellen minder?

Over het algemeen wel, en het blijft gebeuren. Het verschil dat je maakt door de juiste informatie mee te sturen is groter dan het verschil tussen modelversies. Vertrouw dus niet op een upgrade als oplossing voor een assistent die feitelijk moet zijn.

Kan ik controleren of een antwoord klopt voordat ik het toon?

Voor een deel wel, en dat is de moeite waard. Noemt het model een nummer, datum of naam, dan kun je met gewone code nakijken of die bestaat in je database. Klopt het niet, dan toon je het antwoord niet. Dat vangt precies de fouten af waar klanten het meest van schrikken.

Wanneer is een chatbot te riskant?

Zodra een fout antwoord directe gevolgen heeft: geld, gezondheid, rechten of een verplichting. Dan zet je de assistent in als hulpmiddel voor een medewerker in plaats van als directe gesprekspartner van de klant. Hetzelfde model, een ander ontwerp, een heel ander risico.

Wil je een assistent die zich aan jouw documentatie houdt?

In een bouwdag zetten we de opzoekstap en de testvragen er meteen in, zodat je aan het eind weet hoe vaak hij het goed doet en hoe vaak hij toegeeft dat hij het niet weet.