Terug naar hoofdpagina

Hoe werkt ChatGPT eigenlijk?

ChatGPT is een chatbot gebaseerd op een groot taalmodel (GPT-3.5 of GPT-4). Onder de motorkap is ChatGPT een voorgetraind neuraal netwerk dat is getraind op een indrukwekkende hoeveelheid openbaar beschikbare tekstgegevens van het internet.

Deze enorme hoeveelheid gegevens stelt het model in staat om patronen, grammatica, context en zelfs wat gezond verstand te leren, waardoor het zinvolle en samenhangende antwoorden op gebruikersvragen kan genereren. ChatGPT heeft de unieke mogelijkheid om interactieve en dynamische conversaties aan te gaan met gebruikers, waardoor het een veelbelovend hulpmiddel is voor een breed scala aan toepassingen.

Wat is een groot taalmodel

Grote taalmodellen zijn AI-algoritmen die deep learning-technieken gebruiken die bekend staan als natuurlijke taalverwerking om tekst te lezen, te begrijpen, te genereren en te voorspellen.

Als je een vraag intypt (prompt), zoekt het model het antwoord niet op internet, maar geeft het je het antwoord uit zijn hoofd (hoewel het geen hoofd heeft). Het genereert een antwoord woord voor woord en bepaalt elk volgend woord op basis van waarschijnlijkheden die zijn afgeleid van de tekstgegevens waarop het is getraind en de tekst die het tot nu toe heeft gegenereerd.

11 miljard parameters: vragen beantwoorden, rekenen, taal begrijpen

11 miljard parameters: vragen beantwoorden, rekenen, taal begrijpen

Hoe is dat mogelijk? ChatGPT hoeft het internet niet af te zoeken naar informatie, want het weet alles al (nou ja, bijna alles). Alle kennis die beschikbaar is op het internet is opgenomen in ChatGPT via de 175 miljard parameters.

62 miljard parameters: vertalen, gezond verstand redeneren, code voltooien

62 miljard parameters: vertalen, gezond verstand redeneren, code voltooien

Naarmate het aantal modelparameters toeneemt, ontstaan er nieuwe mogelijkheden in het model die niet opzettelijk door iemand zijn ontworpen.

540 miljard parameters: logische inferentieketens, patroonherkenning, begrijpend lezen

540 miljard parameters: logische inferentieketens, patroonherkenning, begrijpend lezen

Hoe ChatGPT werd opgeleid

ChatGPT is getraind op honderdduizenden boeken, artikelen, dialogen, waaronder:

  • WebText2 (een grote bibliotheek van meer dan 45 terabytes aan tekstgegevens)
  • Cornell Movie Dialogs Corpus (een dataset met meer dan 200.000 gesprekken tussen 10.000 filmpersonages in filmscripts)
  • Ubuntu Dialogue Corpus (een verzameling van 1.000.000 multi-turn dialogen tussen Ubuntu gebruikers en het ondersteuningsteam van de gemeenschap)
  • miljarden regels code van GitHub

Eerst mocht GPT alle gegevens waartoe het toegang had verwerken zonder enige menselijke begeleiding, zodat het zelfstandig de regels en verbindingen kon begrijpen die het domein van de tekst bepalen (dat is wat "unsupervised learning" wordt genoemd).

Om het taalmodel te verfijnen werd vervolgens een techniek toegepast die reinforcement learning met menselijke feedback wordt genoemd:

  • Menselijke AI-trainers voerden gesprekken waarin ze beide kanten speelden - de gebruiker en een AI-assistent. Ze hadden toegang tot door het model geschreven suggesties om te helpen antwoorden samen te stellen. Het model werd getraind met behulp van supervised fine-tuning om het volgende bericht van de assistent te voorspellen op basis van de dialooggeschiedenis.
  • Om een beloningsmodel voor versterkingsleren te maken, werden vergelijkingsgegevens verzameld. AI-trainers rangschikten meerdere antwoorden van het model op kwaliteit, waarbij werd gekeken of het antwoord logisch was en of het behulpzaam was. De geselecteerde reacties werden een dialoogdataset met nieuwe, door het model geschreven berichten.
  • Er werd een beloningsmodel gemaakt met behulp van een techniek die beloningsmodellering wordt genoemd, waarbij een model werd getraind om de kwaliteit van een reactie te voorspellen op basis van de vergelijkingsgegevens die in de vorige stap waren verzameld.

Uiteindelijk heeft ChatGPT geleerd hoe te reageren in elke gegeven situatie, precieze en relevante antwoorden te geven en potentieel schadelijke onderwerpen te vermijden.

Transformer-architectuur

Het trainingsproces van ChatGPT bestaat uit het voorspellen van het volgende woord in een zin op basis van de voorgaande woorden. Om dit te bereiken wordt een Transformer-architectuur gebruikt (de T in ChatGPT staat trouwens voor Transformer), die bestaat uit lagen van zelfattentiemechanismen. Dankzij zelfattentie kan het model verschillende woorden in een zin wegen op basis van hun belang en relevantie om het volgende woord nauwkeurig te voorspellen.

Oudere recurrente neurale netwerken (RNN's) lezen tekst van links naar rechts. Hoewel dit goed werkt als verwante woorden naast elkaar staan, wordt het een uitdaging als ze aan tegenovergestelde uiteinden van een zin staan.

Daarom zou een RNN bij het werken met een tekst van één pagina halverwege de derde alinea al "vergeten" zijn wat er helemaal aan het begin stond.

Transformatoren zijn daarentegen in staat om elk woord in een zin tegelijkertijd te verwerken en elk woord met alle andere te vergelijken. Hierdoor kunnen ze hun "aandacht" richten op de meest relevante woorden, ongeacht hun positie binnen de invoerreeks.

Tokenisatie

Het is belangrijk op te merken dat transformatoren niet werken op individuele woorden (ze kunnen niet lezen zoals mensen). In plaats daarvan wordt de ingevoerde tekst opgesplitst in individuele tokens, inclusief woorden, leestekens en speciale tokens. Tokens in ChatGPT zijn tekstbrokken die worden weergegeven als vectoren (getallen met richting en positie).

De nabijheid van tokenvectoren in de ruimte bepaalt hun mate van associatie: hoe dichter ze bij elkaar staan, hoe meer ze met elkaar te maken hebben. Bovendien wordt aandacht gecodeerd als een vector, waardoor op transformatoren gebaseerde neurale netwerken cruciale informatie uit voorgaande delen van een alinea kunnen vasthouden.

Wanneer een gebruiker communiceert met ChatGPT, ontvangt het model de conversatiegeschiedenis als input, inclusief zowel gebruikersprompts als door het model gegenereerde antwoorden. De input wordt getoken en vervolgens ingevoerd in het neurale netwerk. Elk token wordt geassocieerd met een inbedding die de betekenis ervan in de context van het gesprek weergeeft.

GPT-3 is getraind op ongeveer 500 miljard tokens, waardoor de taalmodellen gemakkelijker betekenis kunnen toekennen en plausibele vervolgteksten kunnen voorspellen door ze in vector-ruimte in kaart te brengen. Veel woorden worden weergegeven als enkele tokens, maar langere of complexere woorden worden vaak opgesplitst in meerdere tokens. Gemiddeld zijn tokens ongeveer vier tekens lang.

Tijdens de inferentiefase, waarin het model reacties genereert, wordt een proces gebruikt dat autoregressie wordt genoemd. Dit betekent dat het model één woord per keer voorspelt terwijl het conditioneert op de gespreksgeschiedenis en eerder gegenereerde woorden. Om ervoor te zorgen dat de gegenereerde respons coherent en relevant is, worden technieken zoals top-p sampling en temperature scaling gebruikt.

In het kort geeft de top-p parameter het model een pool van opties (tokens) om uit te kiezen, terwijl de temperatuur de waarschijnlijkheid van het kiezen van een bepaald token bepaalt. Als de temperatuur is ingesteld op 0, kiest het model alleen de meest "populaire" tokens (woorden die het vaakst samen voorkomen in de tekstdata waarop ChatGPT is getraind):

Dat is niet altijd geweldig. Hogere temperaturen maken de uitkomsten diverser:

Meer over ChatGPT-parameters: https://talkai.info/nl/blog/understanding_chatgpt_settings/