Je typt een vraag in ChatGPT en binnen seconden krijg je een antwoord dat klinkt alsof een mens het heeft geschreven. Maar wat gebeurt er eigenlijk onder de motorkap? Het antwoord is verrassend: het draait allemaal om wiskunde, waarschijnlijkheden en veel, heel veel rekenkracht. Je hoeft gelukkig geen wiskundige te zijn om te begrijpen hoe het werkt.
Andrey Markov (1856-1922), een Russische wiskundige, had al in het begin van de 20e eeuw ontdekt dat je taal kunt analyseren als een keten van kansen. Door Russische poëzie te bestuderen, zag hij dat letters en woorden patronen volgen - dat de kans op een bepaalde letter afhangt van wat er daarvoor komt. Deze "Markov-ketens" legden de wiskundige basis voor alles wat later zou komen.
Maar pas in 1948 kreeg Claude Shannon (1916-2001) bij Bell Labs het idee dat de wereld zou veranderen. Hij werkte aan telefoonlijnen en vroeg zich af hoeveel informatie je door een kabel kon sturen. Hij vervolgens ontdekte iets veel belangrijkers: je kunt taal zien als een reeks kansen, precies zoals Markov ruim 30 jaar eerder had ontdekt.
Shannon's inzicht was simpel maar briljant. Als je "Ik hou van..." typt, is de kans groot dat het volgende woord "jou" is. Niet omdat de computer begrijpt wat "houden van" betekent, maar omdat die combinaties heel vaak voorkomen in teksten. Het is pure statistiek - de statistiek die Markov al had beschreven met zijn ketens van waarschijnlijkheden.
Dit principe kennen we allemaal van autocorrect op onze telefoon. Als je "Ik kom wat" typt, stelt je telefoon "later" voor. Dat is geen magie – het is statistiek. Je telefoon heeft uit miljoenen berichten geleerd welke woorden vaak na elkaar komen. Typ je vaak "pizza" na "bestel", dan leert je telefoon dat ook.
In de jaren '60 maakte Joseph Weizenbaum (1923-2008) een chatbot genaamd ELIZA. Het was een simpel programma dat deed alsof het een therapeut was. Als je typte "Ik voel me verdrietig", antwoordde ELIZA met "Waarom voel je je verdrietig?" Het leek slim, maar het was gewoon een truc met patronen. ELIZA begreep niets van wat je zei.
Jarenlang bleven taalmodellen hangen in wat we "n-grammen" noemen. Klinkt ingewikkeld, is het niet. Een bigram kijkt naar twee woorden ("de kat"), een trigram naar drie ("de kat zit"). Het model telde hoe vaak deze combinaties voorkwamen en gebruikte dat om het volgende woord te raden.
Het probleem? Deze modellen hadden het geheugen van een goudvis. Ze konden maar een paar woorden terug kijken. Als je een verhaal van tien zinnen schreef, was het model de eerste zin alweer vergeten. Het was alsof je met iemand praatte die steeds vergat waar het gesprek over ging.
In 2013 kwam de eerste echte doorbraak met "Word2Vec". Voor het eerst konden computers woorden op een slimme manier omzetten in getallen. Niet zomaar getallen, maar getallen die de betekenis van woorden vastlegden. "Hond" kreeg getallen die dicht bij de getallen van "kat" lagen, omdat het beide huisdieren zijn.
Maar de echte revolutie kwam in 2017. Google-onderzoekers publiceerden een artikel met de titel "Attention Is All You Need". Ze hadden een nieuwe manier bedacht om computers naar taal te laten kijken: transformers.
Het probleem met de oude systemen was context. Neem deze zinnen: "Jan gaf Bob een boek. Hij was blij." Wie was er blij – Jan of Bob? Oude systemen hadden geen idee. Ze lazen woord voor woord, als een kleuter die net leert lezen.
Transformers lossen dit op door naar alle woorden tegelijk te kijken. Ze gebruiken iets dat 'aandacht' heet. Het model geeft elk woord een score voor hoe belangrijk het is voor elk ander woord. Bij "Hij was blij" kijkt het model terug naar "Jan" en "Bob" en bepaalt wie "hij" waarschijnlijk is.
Het is alsof je een detective bent die alle aanwijzingen tegelijk bekijkt in plaats van ze één voor één door te nemen. Je ziet het complete plaatje en de verbanden worden duidelijk.
Computers kunnen niet lezen. Ze werken alleen met getallen. Daarom wordt tekst eerst opgehakt in stukjes, tokens genoemd. Het is alsof je een puzzel in stukjes knipt om hem later weer in elkaar te zetten.
Het woord "katten" wordt bijvoorbeeld "kat" en "ten". Waarom? Zo kan het systeem de relatie tussen "kat" en andere woorden zoals "kattenluik" of "katachtig" begrijpen. Het is efficiënt: met 50.000 tokens kun je miljoenen verschillende woorden maken.
Maar tokens zijn nog steeds tekst. De volgende stap is deze om te zetten in vectoren – lijsten met getallen. Stel je het voor als coördinaten op een kaart, maar dan in plaats van twee dimensies (lengte en breedte) gebruik je er 300 of meer.
Woorden die qua betekenis op elkaar lijken, zoals "hond" en "kat", krijgen coördinaten dicht bij elkaar. "Auto" en "fiets" ook – het zijn beide voertuigen. Maar "hond" en "auto" staan ver uit elkaar omdat ze weinig met elkaar te maken hebben.
Het mooie is dat je met deze vectoren kunt rekenen. Trek "man" af van "koning", tel "vrouw" erbij op, en je komt uit bij "koningin". De computer snapt deze relaties tussen woorden zonder te weten wat ze betekenen. Het is alsof de computer een taal leert zonder ooit de wereld gezien te hebben.
Maar er is nog een probleem. De zin "De hond bijt de man" betekent iets héél anders dan "De man bijt de hond". De woorden zijn precies hetzelfde, maar de volgorde maakt het verschil. Hoe leer je een computer dat volgorde belangrijk is?
Het antwoord is "positionele codering". Elk woord krijgt niet alleen een vector voor zijn betekenis, maar ook een extra set getallen die aangeeft wáár het staat in de zin. Het eerste woord krijgt andere getallen dan het tiende woord.
Ze gebruiken hiervoor sinusgolven – die golvende lijnen die je misschien kent van wiskunde. Waarom? Omdat sinusgolven een vaste wiskundige relatie hebben: door de golfpatronen kan het model precies berekenen op welke afstand twee woorden van elkaar staan in een zin, ook als die zin tientallen woorden lang is.
Een taalmodel leert net zoals wij: door fouten te maken en het dan beter te doen. Maar waar wij misschien tien keer moeten oefenen, doet een AI-model dit miljarden keren.
Het proces is simpel. Het model krijgt een zin zoals "Het is weekend, morgen moet ik **" en moet raden wat er op de plek van de sterretjes komt. Raadt het "gitaarspelen"? Fout! Het juiste antwoord is "werken". Het model krijgt een tikje op de vingers (in computertermen: de parameters worden aangepast) en probeert het opnieuw.
Dit proces heet "gradient descent", wat klinkt als iets voor een bergbeklimmer maar eigenlijk betekent: "zoek de weg naar beneden". Stel je voor dat je in het donker van een berg af moet. Je voelt met je voet waar de grond naar beneden loopt en zet een stapje die kant op. Het model herhaalt dit keer op keer en daalt zo stap voor stap af naar het laagste punt. Daar vindt het model het beste antwoord.
Het model heeft miljarden parameters – stelknoppen die bepalen hoe het reageert op input. GPT-3 had er 175 miljard (https://arxiv.org/abs/2005.14165). an GPT-4 weten we het niet precies, maar experts schatten dat het er meer dan een biljoen heeft. Dat is een één met twaalf nullen! Elk van die parameters wordt tijdens het leren een klein beetje aangepast.
De cijfers zijn duizelingwekkend. Het trainen van GPT-4 kostte naar verschillende schattingen meer dan 100 miljoen euro, hoewel OpenAI geen officiële cijfers heeft vrijgegeven. Het gebruikte evenveel elektriciteit als een kleine stad in een maand. De trainingsdata bestond uit een groot deel van het internet – Wikipedia, boeken, nieuwsartikelen, forums, alles.
Het model draaide maandenlang op duizenden van de krachtigste computers die er bestaan. Deze computers, GPU's genaamd, zijn eigenlijk bedoeld voor videogames maar blijken perfect voor AI. Ze kunnen duizenden berekeningen tegelijk maken.
Waarom zo groot? Omdat grootte ertoe doet bij taalmodellen. Een model met meer parameters kan subtielere patronen leren. Het verschil tussen 1 miljard en 100 miljard parameters is als het verschil tussen een basisschoolkind en een professor wat betreft taalvaardigheid.
Maar er is een grens. Onderzoekers merken dat je niet eindeloos kunt blijven opschalen. Van 100 naar 200 miljard parameters maakt minder verschil dan van 1 naar 10 miljard. Het is als spieren kweken – de eerste resultaten gaan makkelijk, daarna wordt het steeds moeilijker.
De nieuwste modellen kunnen meer dan alleen tekst verwerken. Ze begrijpen ook plaatjes, geluid en video. Hoe? Door alles om te zetten naar dezelfde soort getallen.
Een foto bestaat uit pixels, elk met waarden voor rood, groen en blauw. Het model leert welke patronen van pixels overeenkomen met welke woorden. Een patroon dat vaak voorkomt bij het woord "hond" leert het herkennen als hond.
Geluid werkt hetzelfde. Geluidsgolven worden omgezet in getallen. Het model leert dat bepaalde golfpatronen het geluid van blaffen zijn, en dat blaffen bij honden hoort.
Het bijzondere is dat dit allemaal in dezelfde wiskundige ruimte gebeurt. Een foto van een hond, het woord "hond" en het geluid van blaffen krijgen vectoren die dicht bij elkaar liggen. Zo 'begrijpt' het model dat ze bij elkaar horen.
Dit opent deuren naar toepassingen die we eerder alleen in sciencefiction zagen. Een dokter kan straks een röntgenfoto uploaden samen met symptomen, en het systeem combineert beide soorten informatie voor een diagnose. Een architect kan schetsen maken terwijl hij beschrijft wat hij wil, en het model begrijpt beide vormen van informatie.
Hoe slim deze systemen ook lijken, ze begrijpen niets. Ze zijn heel goed in het vinden van patronen en het maken van voorspellingen, maar hebben geen idee wat ze eigenlijk zeggen. Het model dat perfect kan uitleggen hoe je een cake bakt, heeft nog nooit een oven gezien. Laat staan zelf een cake gebakken.
Daarom is menselijke begeleiding cruciaal. Met een techniek die RLHF heet (Reinforcement Learning from Human Feedback) leren mensen het model wat goede en slechte antwoorden zijn.
Het werkt zo: het model genereert verschillende antwoorden op een vraag. Mensen beoordelen deze antwoorden van best naar slechtst. Het model leert van deze beoordelingen en past zijn parameters aan om meer antwoorden te geven zoals de goede voorbeelden.
Dit is waarom ChatGPT beleefd is en geen recepten voor bommen geeft. Niet omdat het moraal heeft, maar omdat mensen het hebben geleerd dat zulke antwoorden slecht scoren.
Er zijn ook zorgen. Deze modellen leren van tekst op internet, en internet staat vol met nepnieuws, vooroordelen en desinformatie. Als in de trainingsdata dokters meestal mannen zijn en verpleegkundigen meestal vrouwen, leert het model die bias en zal het dit gebruiken in antwoorden.
Onderzoekers werken hard om dit te verhelpen, maar het is lastig. Hoe bepaal je wat eerlijk is? Moet het model de wereld weergeven zoals die is (met alle ongelijkheden) of zoals we willen dat die is?
Een ander probleem is dat niemand precies weet hoe deze modellen tot hun antwoorden komen. Met een biljoen parameters is het onmogelijk om te volgen welke berekeningen tot welk antwoord leiden. Het is een black box.
Dit is vooral zorgelijk bij belangrijke beslissingen. Als een AI-systeem zegt dat iemand een bepaalde ziekte heeft, willen dokters weten waarom. "Het model zegt het" is geen goede uitleg.
We staan nog maar aan het begin. Nieuwe technieken maken modellen efficiënter. In plaats van alle parameters te gebruiken voor elke vraag, activeren "sparse" modellen alleen de relevante delen. Het is alsof je alleen de delen van je brein gebruikt die je nodig hebt.
Federated learning laat computers van elkaar leren zonder data te delen. Je telefoon kan leren van je typegedrag zonder je berichten naar Google te sturen. Privacy en AI gaan zo hand in hand.
Modellen beginnen ook hun eigen trainingsdata te maken. Ze genereren tekst, controleren of het klopt, en leren van hun fouten. Het is een beetje eng – AI die zichzelf verbetert zonder menselijke hulp.
Er wordt gewerkt aan modellen die kunnen redeneren, niet alleen patronen herkennen. Die niet alleen weten dat Parijs de hoofdstad van Frankrijk is, maar ook kunnen uitleggen waarom grote steden - zoals Parijs - meestal aan rivieren liggen.
Grote taalmodellen zoals ChatGPT zijn geen magie. Het zijn rekenkundige krachtpatsers die patronen in taal hebben geleerd uit enorme hoeveelheden tekst. Ze voorspellen de meest voor de hand liggende vervolgstap op basis van wat ze eerder hebben gezien.
Het is knap dat dit werkt. Het is slim bedacht en uitgevoerd. Maar uiteindelijk is het gewoon wiskunde – heel veel wiskunde. De volgende keer dat je met ChatGPT praat, weet je dat er achter elk antwoord miljarden berekeningen schuilgaan, uitgevoerd door een systeem dat is ontwikkeld en getraind door duizenden AI-experts wereldwijd.
Het is geen bewustzijn, geen begrip, geen intelligentie zoals wij die kennen. Het is patroonherkenning op een schaal die ons voorstellingsvermogen te boven gaat. En dat is misschien wel het meest fascinerende: dat je met genoeg wiskunde iets kunt maken dat zo menselijk lijkt, zonder dat het ook maar iets menselijks heeft...
Meer weten? Neem contact op met Wil Peters of Dennis Verhaert.