Wat de AI wel en niet mag schrijven
Boven aan een openbare statistiekpagina hier kunnen twee of drie zinnen staan die beschrijven wat de teller deze maand deed. Ze zijn geschreven door een taalmodel. Het model verzint niets, en de opzet die dat waar maakt, verdient beschrijving, want de voor de hand liggende manier om deze voorziening te bouwen heeft die eigenschap niet.
De server draait de SQL, beslist welk cijfer het noemen waard is, en schrijft de prompt. Het model maakt van één feit één zin in de gevraagde taal. Daarna leest de server het antwoord terug en gooit het weg als er een cijfer in staat dat niet uit de prompt kwam.
De enige vrijheid van het model is dus de formulering. Het kiest niet wat interessant is, het rekent niet, het rondt niet af. Wat het bijdraagt, is wat sjablonen niet kunnen: elf talen die als taal lezen.
Drie controles, en de mislukking waar elk voor staat
Geen ervan is uit voorzichtigheid geschreven. Elk bestaat omdat er op 17 augustus 2026 iets bepaalds misging. Een klein model kreeg twee feiten over één teller — sterkste weekdag maandag met 46 %, en 76 % van de bezoekers uit Polen verdeeld over 5 landen — en produceerde een zin die zei dat woensdag de sterkste was en dat 46 % van de bezoekers uit Polen kwam.
Twee verschillende fouten in één zin, en geen van beide is een verzonnen getal.
- Elk cijfer moet in de prompt staan. Dit vangt verzonnen cijfers. Het heeft een gevolg dat later makkelijk verkeerd gaat: het instructiedeel van de prompt bevat helemaal geen cijfers. Er staat "een of twee zinnen", nooit "1-2", want anders zouden de 1 en de 2 toegestane getallen in het antwoord worden.
- Eén prompt per feit. Dit vangt verwisselde cijfers. De 46 hierboven was echt — hij hoorde alleen bij het andere feit, en een controle over de verzameling getallen kan dat niet zien. Ziet het model altijd maar één feit, dan is er niets te verwisselen.
- Namen worden ook gecontroleerd. Dit vangt "maandag" dat "woensdag" wordt. De naam staat in het feit in de doeltaal, hij moet letterlijk in het antwoord staan, en zijn broertjes en zusjes mogen er niet in staan.
Wat ze niet vangen
Dat hoort in dezelfde adem als de rest. Twee dingen komen erdoor.
Een zin die iets onwaars zegt zonder cijfers te gebruiken — "de meeste bezoekers" terwijl het 46 % was — wordt door geen van de drie gevangen. Het ontwerp vangt dit anders op: het oordeel zit al in het feit dat de server heeft uitgekozen, niet in de vrijheid van het model.
En een zin die over een ander onderwerp gaat dan zijn feit, komt erdoor zolang de cijfers kloppen. Daartegen is er alleen een model dat instructies opvolgt. Voor kenmerken die een naam dragen — weekdag, apparaat, robot, pagina — dekt de derde controle het ook af.
Een controle die alleen verzonnen getallen vangt, zou de zin hierboven ongewijzigd hebben doorgelaten. Het waren echte getallen op de verkeerde plaatsen, en dat is een manier van mislukken die alleen in de uitvoer opduikt, nooit in het idee.