Het DeBot Project: Simulatie van Parlementaire Debatten

Het DeBot project verkent de mogelijkheden van taalmodellen om debatten in de Tweede Kamer na te bootsen. Dit document biedt een toegankelijke introductie tot de onderliggende processen en technieken van het project, gericht op geïnteresseerden die een inzicht willen krijgen in hoe grote taalmodellen werken en hoe deze kunnen worden aangepast om specifieke soorten conversaties, zoals parlementaire debatten, te simuleren.

Voor technische documentatie, zie https://debot.lodder.dev/index.html

De Werking van Taalmodellen: Voorspellers van Taal

Taalmodellen zijn in de kern voorspellers: hun primaire taak is niets anders dan, gegeven een tekst van reeds waargenomen tekst, het volgende woord - of, nauwkeuriger uitgedrukt, het volgende 'token' - te voorspellen. Een token is een eenheid van tekst die door het model wordt gebruikt voor verwerking. Dit kan een woord zijn, een deel van een woord, of zelfs een enkel karakter. De tekst wordt omgezet in een reeks tokens om deze beter verwerkbaar te maken voor het model.

We leren deze taalmodellen met behulp van gigantische hoeveelheden aan tekst, steeds beter te worden in het voorspellen van de meest waarschijnlijke volgende token. In feite zijn grote taalmodellen (Large Language Models, of LLMs) daarom een soort statistische papegaaien: ze zijn getraind om patronen in teksten te herkennen en deze na te bootsen.

De vergelijking met statistische papegaaien wordt vaak gebruikt om het idee te weerleggen dat taalmodellen over echte intelligentie beschikken. Ondanks kritiek dat taalmodellen geen ware intelligentie bezitten, maar slechts patronen in data repliceren, brengt hun vermogen om accurate voorspellingen te doen toch een bepaalde mate van begrip van de wereld met zich mee. Indien een model consequent het correcte volgende woord kan voorspellen, impliceert dit een dieper inzicht in de structuur van de werkelijkheid, alsof het model een intern model van de wereld heeft. Zo zou een hypothetisch model dat altijd het correcte volgende woord kan voorspellen, in theorie elke denkbare waarheid kunnen articuleren.

Neem als illustratie het verschil tussen de zinnen "de hond blaft" en "de hond miauwt". Intuïtief herkennen we dat de eerste zin logischer is dan de tweede, een onderscheid dat een goed getraind taalmodel ook zou maken. Dit verschil in waarschijnlijkheid weerspiegelt een basaal begrip van hoe de wereld werkt, ook al berust dit 'begrip' puur op het herkennen van statistische patronen in tekst. Of deze methode uiteindelijk zal resulteren in de ontwikkeling van echte intelligentie of kunstmatige superintelligentie is nog steeds een open vraag.

Aanpassing en Specialisatie: Hoe Werkt Finetunen?

In het DeBot project onderzoeken we hoe goed taalmodellen debatten in de Tweede Kamer kunnen nabootsen. Het direct inzetten van een bestaand model, zoals ChatGPT, voor het simuleren van deze debatten zou echter niet optimaal zijn, aangezien het waarschijnlijk niet genoeg specifieke data heeft gezien tijdens haar training.

De voorkeur gaat uit naar een model dat al veel Tweede Kamerdebatten heeft 'gelezen'. Dit kan bereikt worden door:

  1. Een model vanaf nul op te bouwen
  2. Een bestaand model te finetunen

Het trainen van een model vanaf de grond af aan is zowel kostbaar als onpraktisch vanwege de gigantische hoeveelheid data die vereist is om een grondige kennis van taal te ontwikkelen. Wanneer we rekening houden met het gebruik van honderden miljarden tot zelfs biljoenen tokens, staat dit gelijk aan duizenden jaren aan gesproken tekst. Dit brengt ons bij een veelgehoorde kritiek op de huidige generatie van grote taalmodellen: hun inefficiënte leerproces. In tegenstelling tot een menselijke baby, die leert spreken met aanzienlijk minder input, vereisen taalmodellen een hoeveelheid tekst die geen mens in zijn hele leven zou kunnen doornemen, om een vergelijkbaar niveau van taalvaardigheid te bereiken.

In het kader van dit project, waarbij we Tweede Kamerdebatten simuleren, geven we de voorkeur aan het finetunen van taalmodellen. Finetunen betekent dat we starten met een model dat al is getraind en dus over een fundamentele kennis van taal beschikt. Vervolgens passen we het interne voorspelingsmechanisme van het model subtiel aan. Door het model bloot te stellen aan debatten uit de Tweede Kamer, begeleiden we het in het aanpassen van zijn voorspellingsmechanisme. Het doel is dat het model leert om teksten te produceren die lijken op de debatten waarmee het is ge-finetuned.

Het finetunen van een getraind taalmodel kan vergeleken worden met iemand die de accentverschuiving ondergaat bij een verhuizing van Friesland naar Noord-Brabant, dwars over de patat-frietgrens heen. Deze verandering symboliseert niet alleen een geografische verplaatsing, maar ook een aanpassing in het vocabulaire: waar men eerst gewend was om een 'patatje' te bestellen, zal na verloop van tijd en blootstelling aan de lokale taalgebruiken, het woord 'frietje' gemeengoed worden. Dit proces illustreert hoe finetunen werkt. Een taalmodel, met al een stevige basis van taalbegrip, wordt verder gespecialiseerd door het bloot te stellen aan grote hoeveelheden specifieke teksten. Door deze nieuwe input past het model haar interne voorspellingsmechanisme aan. Hierdoor zal de output van het model meer gaan lijken op de stijl en het vocabulaire van de geleerde teksten. Net zoals de persoon die na enige tijd in Noord-Brabant, instinctief de voorkeur geeft aan de term 'friet' in plaats van 'patat', zo past het finetunen de interne mechanismen van het model aan om nauwkeuriger af te stemmen op de gewenste taalgebruiken.

In het DeBot project voeden we het model met een uitgebreide collectie van Tweede Kamerdebatten, zodat het leert deze na te bootsen. Elk debat wordt systematisch geïntroduceerd door het type, de deelnemers, de aanleiding, en de regeringsperiode te specificeren. Hiermee trainen we het model om op basis van deze contextuele informatie de daadwerkelijke conversaties te genereren. Dit stelt ons in staat om het model later met nieuwe contexten te voeden, waarna het probeert een overtuigend debat te simuleren.

Daarnaast biedt dit de mogelijkheid om het model te vragen naar specifieke, reeds bestaande debatten. Als het model deze debatten heeft 'gezien' tijdens het finetunen, is er een kans dat het een vergelijkbaar debat kan genereren. Dit benadrukt de capaciteit van taalmodellen om te functioneren als een soort tekstuele database. Ze absorberen de informatie uit de teksten waarmee ze zijn getraind, en dankzij een afgestemd voorspelmechanisme kunnen ze de inhoud uit de originele teksten nabootsen.

Geheugen en Verwerking: Het Werkgeheugen van Taalmodellen

Taalmodellen worden tijdens hun trainings- en finetuningsfase geüpdatet om hun voorspellingsmechanisme te verbeteren. Echter, wanneer ze daadwerkelijk worden ingezet om tekst te genereren, blijft dit mechanisme constant. Dit betekent dat het model geen 'herinneringen' bewaart aan eerdere interacties. In essentie functioneert een taalmodel als een voorspellingsmachine: het neemt een gegeven tekst als input en produceert op basis daarvan een output.

Als voorbeeld, wanneer je communiceert met ChatGPT, 'onthoudt' het model niet echt eerdere delen van het gesprek. Elke keer dat je een nieuw bericht stuurt, wordt het volledige gesprek tot op dat moment aan ChatGPT gepresenteerd, en het gebruikt dan zijn voorspellingsmechanisme om de meest gepaste reactie te bepalen.

Deze noodzaak voor taalmodellen om de volledige tekst te 'zien' voor accurate voorspellingen onthult een inherente beperking: ze zijn gebonden aan een maximum aantal tekens of 'tokens' die ze in één keer kunnen verwerken. Wanneer de tekst het maximale aantal tokens overschrijdt, kan het model niet de gehele tekst overwegen voor zijn voorspelling. Dit vormde een uitdaging voor de initiële indruk van een 'geheugen' in lange gesprekken met bijvoorbeeld ChatGPT. De eerste versie van ChatGPT had een limiet van 4096 tokens, waarbij OpenAI waarschijnlijk technieken zoals samenvatten toepaste om de essentie van lange gesprekken te behouden. De nieuwste versies van GPT-4 kunnen echter tot 128.000 tokens verwerken, en recente technologische vooruitgang maakt zelfs limieten tot 1.000.000 tokens mogelijk, zoals bij Google's Gemini model.

In het DeBot project maken we gebruik van de Alpaca en Bloom modellen, die beide een limiet van 2048 tokens hebben. Deze hebben we dus enkel op korte stukken debat ge-finetuned, zodat ze binnen deze beperking passen. Bovendien varieert de verhouding tussen woorden en tokens per taal, voornamelijk omdat de tokenizer-systemen op de Engelse taal zijn gebaseerd. Dit betekent dat voor talen met andere frequenties van lettercombinaties, zoals het Nederlands, mogelijk meer tokens nodig zijn voor dezelfde hoeveelheid tekst dan in het Engels.

Van Luisteren naar Actie: Interdisciplinaire Samenwerking

De sleutel tot succesvolle interdisciplinaire samenwerking ligt in effectieve communicatie en het vermogen om vanuit verschillende perspectieven naar een project te kijken. Het DeBot project illustreert dit principe door de samenwerking tussen technische experts en domeinspecialisten. Aan de ene kant brengt het domeinteam een duidelijke visie en doelstellingen voor het project in, terwijl het technische team deze visie toetst aan wat technologisch haalbaar is binnen de projectgrenzen. Deze synergie begint met grondig naar elkaar luisteren en het stellen van gerichte vragen om de kernbehoeften en -doelen te begrijpen.

In de initiële fasen van het DeBot project was er een nadrukkelijke focus op het vaststellen van een Minimum Viable Product (MVP), een strategie die zowel de complexiteit van het project beheersbaar houdt als direct inzicht geeft in de potentie en beperkingen van het gebruikte model. Door in het begin veel aandacht te besteden aan communicatie, legden we een stevige basis voor het project, waarbij het technische team niet alleen inzicht kreeg in de structuur van de dataset en de benodigde technische vereisten, maar ook in de diepere domeinkennis die essentieel is voor het finetunen van de modellen.

De continue dialoog tussen domeinexperts en technici gedurende het project heeft een dubbel voordeel. Het verrijkt het technische team met een dieper begrip van het domein, wat leidt tot beter geïnformeerde ontwerpbeslissingen en efficientere ontwikkeling van de benodigde software. Tegelijkertijd krijgen domeinexperts inzicht in de technologische mogelijkheden en beperkingen, wat resulteert in realistischere projectdoelen en -verwachtingen. Deze wederzijdse verrijking draagt niet alleen bij aan de kwaliteit van het eindproduct, maar bevordert ook een efficiëntere ontwikkelingscyclus. Door gezamenlijk aan de projectrichting te werken, blijven alle betrokkenen op één lijn, wat de kans op succes aanzienlijk vergroot.