Explainer: Sådan virker ChatGPT

Billede lavet af Dall-e udfra tre prompts: "Læs det blogindlæg jeg har skrevet om, hvordan ChatGPT virker på https://jon-lund.com/main/explainer-saadan-virker-chatgpt/ og lav et billede der kan bruges som topbillede på indlægget.", "Billedet er godt, men lidt for kønsløst. Gør det mere personligt og følelsesmæssigt appellerende " og "Prøv at lav det som en stregning i stedet, og gør tegningen en lille smule tegneserie-agtig og lidt mindre prætentiøs"

Her er forklaringen til dig, der har undret dig over, hvordan ChatGPT – som jo bare er en computer – bærer sig ad med at virke så intelligent, som den gør. Hvordan en maskine kan blive i stand til at svare på næsten alt, og gøre det så nuanceret og tilsyneladende meningsfuldt, at man næsten ikke kan lade være med at tro, at den faktisk forstår. Blog-posten her er skrevet, så de fleste der interesserer sig kan følge med. Og hvis du er den nørdede type, der gerne vil kende og forstå alle de hypede ord, der omgiver ChatGPT, er der et helt afsnit til sidst, der får dig ind i fagjargonen også. (Billede: ChatGPT/DALL-E).

ChatGPT er en statistik- og regnemaskine. Den behandler en masse data. Men den forstår ingenting. Når den skriver, gør den intet andet end hele tiden at gætte på det næste ord. Et ord ad gangen. Den er utroligt, men sandt. Tekster, der giver perfekt mening og virker virkeligt elegante kan frembringes af intet andet end en stor sandsynlighedsberegner.

En tandhjulsindstilling for alle sprogets ord

ChatGPTs statistik- og regnemaskine er stor. Meget stor. Med milliarder af tandhjul som hver især kan indstilles på hver sin måde. Det er disse tandhjul og deres indstillinger, der er nøglen til at forstå, hvordan ChatGPT virker.

Tandhjulene er indstillet ved at tage uhyre tekstmængder og køre dem igennem maskinen, sætning for sætning og ord for ord, og i processen løbende tilpasse tandhjulene, til de giver det ønskede resultat: at maskinen kan reproducere det rette ord i den rette sammenhæng.

At denne tandhjulsindstilling sker sætning for sætning og ikke kun ord for ord er vigtigt, fordi det betyder, at ChatGPT lærer det samme ord at kende i mange sammenhænge. Katten i sætningen “hunden jager katten”, fx, er ikke bare en kat. Det er en jaget kat.

Dette afspejles i tandhjulsindstillingen: den kombination af ChatGPTs milliarder af tandhjulsindstilling, der producerer normale katte, ændres en anelse, så den nu bliver endnu bedre til at gætte, at det er ”katten” som ”hunden jager” i den givne sammenhæng. På den måde fanger tandhjulsindstillingerne de ”skjulte betydninger” som ordet “kat” – og alle andre ord – har, afhængig af den kontekst de indgår i.

Det er sådan ChatGPT lærer alt det, den ved.

Fem skridt og svaret falder

Når du spørger ChatGPT om noget, og den skal finde på noget at svare, går den gennem fem skridt. Den starter med at se på de ord, der indgår i den foregående tekst, et for et. Hvis den foregående tekst er “hunden jager” serChatGPT altså på både “hunden” og på “jager” (Det spørgsmål du har stillet er også en del af den foregående tekst. Så hvis du fx har spurgt “hvem jager katten?” er disse ord også med i den første ordanalyse).

Derefter slår ChatGPT alle ordene op, og aflæser hvert ords respektive tandhjulsindstillinger, regner på dem med relativ simpel matematik, og ender op med flere tusind tal for hvert ord, der tilsammen karakteriserer hvert ord og dets skjulte betydninger. Altså flere tusinde tal for “hunden”, flere tusinde for “jager” osv.

Nu tager ChatGPT – det er det tredje den gør – og ganger og plusser alle ordenes talværdier med hinanden ved hjælp af nogen avancerede, men alment kendte, regnemetoder. Resultatet er et enkelt sæt stærkt modificerede talværdier, der indkapsler ikke bare ordene i dit spørgsmål, men også deres skjulte betydninger. Ud fra alle de foregående ords tusinder af talværdier skabes ét sæt talværdier, med sine egne betydningsnuancer, som det næste ord i sætningen skal passe med.

Det fjerde ChatGPT gør er at sammenligne denne maggiterning af tal med alle andre ord den kender, og hvert af disse ords skjulte betydninger. Det ord der matcher bedst, scorer højest, den ord der matcher næstbedst scorer lidt lavere osv. Det gør ChatGPT for alle de ca. 40-50.000 ord der findes i ordbogen.

Til sidst vælger ChatGPT et af de højestscorende ord. Skriver det. Og fortsætter til næste ord i det svar, den er ved at skrive.

Sådan virker ChatGPT.

FAKTA: NØRDEDE DETALJER OG FRÆKKE ORD

Hvis du gerne vil et spadestik dybere, er her en liste over nogle af de mest brugte og hypede ord i den aktuelle AI-begreb – og en forklaring på, hvad de betyder og hvad de gør for ChatGPT.

170 milliarder tandhjul

  • Når ChatGPT er så god til at svare noget, der lyder begavet, er det pga de enormt mange tandhjul inde i dens mave. I ChatGPT 3.5 var der 170 milliarder tandhjul.
  • I den nyeste version over en trillion.
  • Det er derfor, ChatGPT kan fange så mange nuancer af skjulte betydninger. Derfor den kan gætte, hvornår den skal skrive “Hunden jager katten”, og hvornår “Hunden jager sin egen hale” ville passe bedre.

Self-supervised learning

  • Læg dertil at ChatGPT er blevet trænet med enorme mængder tekst fra internettet, indscannede bøger og transkriberede Youtube-videoer. Det betyder, at den kender stort set alle sammehænge, ord indgår i. 
  • ChatGPT er trænet på den måde, at den systematisk blanker et enkelt ord ud ad gangen i alle de sætninger, der bliver født med. Og så indstiller den sine tandhjul, indtil den spytter det rigtige ord ud i den anden ende.
  • ChatGPT kører processen med ud-blankning af ord rigtigt mange gange igennem, og til sidst er alle tandhjulene er indstillet, så ChatGPT rammer mest muligt plet for det maksimale antal ord. Til sidst fastfryses indstillerne og ChatGPT har nu dannet sin sprogmodel, med alle ord og tilhørende aflejringer af skjulte betydningslag registreret og sat i forhold til hinanden.
  • Denne form for træning kaldes ”self-supervised learning”. Det kaldes sådan, fordi der ikke er nogen mennesker, der har fortalt ChatGPT, hvad de enkelte ord betyder.

Parametre, vægte og konstanter

  • Der er selvfølgelig ikke rigtige fysiske tandhjul inde i maven på ChatGPT. For ChatGPT er et computerprogram. I virkeligheden er det jeg kalder tandhjul variable i de formler som ChatGPT indeholder.
  • Disse variable kaldes “parametre”. Når du hører om, at ChatGPT har 175 milliarder parametre, har det derfor ikke noget at gøre med, hvor mange data ChatGPT er fodret med. Det er antallet af variable i ChatGPTs indre.
  • Hvis du vil have endnu et detaljelag på, består parametrene af hhv. vægte og konstanter. Vægte er et tal, som der ganges med i ChatGPTs formler. Konstanten er et tal, der trækkes fra eller lægges til.

Neurale netværk og large language models

  • Alle de formler, ChatGPT indeholder, tager hver deres tal, regner på det, og sender det videre. Formlerne har allesammen samme opbygning og ser sådan ud: f[w . x + b]. x det input, der beregnes på og w og b er hhv. vægten og konstanten.
  • Mange formler kan godt sende deres resultater samme sted hen. De instanser – mellemregninger – i programmet, hvor resultaterne af mange formlers regnerier samles, kaldes “neuroner”.
  • Neuronerne lægger alle de modtagne tal sammen og sender dem videre til andre neuroner, der også regner og lægger sammen og sender videre igen til endnu andre neuroner i et stort kæmpestort netværk af neuroner. Det er derfor, ChatGPT er et computerprogram af den slags, der kaldes er et ”neuralt netværk”.
  • ChatGPT er et neuralt netværk af typen Large Language Models. En Large Language Model er en såkaldt “generativ AI”, fordi de ikke bare beregner sandsynligheder, men også bruger sandsynlighederne til at generere ny tekst.

Tokens, embeddings og vektorer

  • Det er en lille tilsnigelse at sige, at det er ord, ChatGPT gætter. Strengt taget er det ChatGPT gætter såkaldte “tokens”. En token er en enhed af tekst – et helt ord (fx “kat”), en del af et ord (fx “inter-” i “interessant”), eller endda et enkelt tegn (fx “!”)
  • Det er strengt taget heller ikke token’et i sig selv, altså fx. “kat”, ChatGPT bruger. For ChatGPT er en computer, der ikke forstår ord. I stedet har ChatGPT givet alle de 40-50.000 tokens, der er i sproget, hvert deres nummer. “Kat” har nummer 78.862.
  • Den skjulte betydning, som ChatGPT har tilføjet ordet kat, kaldes ordets “embedding”. Det er ikke kun “kat” der har en embedding, men alle ord.
  • Den skjulte betydning – “embeddingen” – består af tusindvis af tal, der er samlet i en såkaldt vektor. En vektor er et matematisk meget veldefineret begreb. Hvert tal i vektoren kan forstås som en placering på hver sin dimension. Når embeddingen har tusindvis af tal, betyder det derfor, at ordet (fx “kat”) er defineret i tusindvis af dimensioner.

Transformer og dot-produkt

  • De alment kendte regnemetoder ChatGPT bruger, når den ganger og plusser alle talværdierne for hvert ords tandhjulsindstillinger med hinanden, er regneregler, der gælder for vektorer. Blandt andet “dot produktet”
  • Når ChatGPT ganger og plusser tandhjulsindstillingerne for de foregående ord i sætningen med hinanden og ender op med et sæt stærkt modificerede tandhjulsindstillinger, siger man, at ChatGPT “transformerer” de oprindelige tandhjulsindstillinger. Det er denne transformation, som det sidste “T” i ChatGPT står for. (G’et står for generativ, altså at den skal generere ord. P’et for Pretrained, altså at den er trænet på meget store tekstmængder, før du begynder at tale med den.)

Self-attention og temperatur

  • Når man ganger to vektorer med hinanden, vil resultatet være større, jo mere ens de to vektorer er. Da det er vektorernes tusindvis af tal, der bestemmer et ords skjulte betydning, betyder det, at jo mere to ord har til fælles betydningsmæssigt, er et højt resultat af gangeriet et tegn på, at de to ord har noget med hinanden at gøre. Det er det, der er den egentlige mening med ChatGPTs gangeri af tandhjulsindstillingerne for de foregående ord i en sætning. Gangeriet udpeger, hvilke ord der i vigtige i sammenhængen. Denne mekanisme kaldes self-attention. Det er derfor, den videnskabelige artikel, der grundlagde ChatGPT-metoden, som ChatGPT bygger på, hed derfor “Attention is all you need”. En artikel, der iøvrigt blev skrevet af et hold software ingeniører hos Google.
  • ChatGPT vælger ikke altid det mest sandsynlige næste ord. Det giver nemlig kedelige tekster, har det vist sig. Derfor vælger den nogen gange lidt mindre sandsynlige næste ord. Graden af sandsynlighed kaldes modellens “temperatur”. Temperaturen 0,8 har vist sig at fungere godt.

Hvis du synes ovenstående er spændende og gerne vil læse mere, vil jeg anbefale den relativt korte bog ”What is ChatGPT doing… and why does it work” af Stephen Wolfram som er gratis tilgængelige fra hans hjemmeside og som blogindlægget her er kraftigt inspireret af.