Inuti en LLM: från ord till matematik och tillbaka igen

När du skriver en fråga till en stor språkmodell, en LLM, kan svaret kännas nästan mänskligt. Modellen förstår sammanhang, anpassar tonen och verkar ibland resonera sig fram till en slutsats. Men under huven finns varken en liten person, ett bibliotek med färdigskrivna svar eller ett traditionellt datorprogram som följer tydliga regler.

Där finns framför allt matematik.

En LLM är i grunden ett mycket stort neuralt nätverk som har tränats för en till synes enkel uppgift: att förutsäga vad som sannolikt kommer härnäst i en text. Det låter begränsat, men när uppgiften tränas på enorma mängder språk uppstår förmågor som översättning, sammanfattning, programmering, stilimitation och problemlösning.

Så vad händer egentligen från det att du trycker på Enter tills ett svar visas på skärmen?

Steg ett: texten delas upp i tokens

En språkmodell arbetar inte direkt med ord eller meningar. Det första som händer är att texten delas upp i mindre enheter som kallas tokens.

En token kan vara:

  • ett helt ord
  • en del av ett ord
  • ett skiljetecken
  • ett mellanslag eller annan vanlig teckenkombination

Meningen:

Språkmodeller är fascinerande.

kan exempelvis delas upp ungefär så här:

Språk – modell – er – är – fasciner – ande – .

Den exakta uppdelningen varierar mellan olika modeller. Vanliga ord får ofta egna tokens, medan ovanliga, långa eller sammansatta ord delas upp i flera delar.

Varje token kopplas sedan till ett heltal. Modellen ser alltså inte texten som bokstäver, utan mer som en sekvens av numeriska ID:n:[1842,9317,42,311,7654,228,13]

Siffrorna har ingen språklig betydelse i sig. De fungerar bara som adresser i modellens vokabulär.

Steg två: tokens blir koordinater

Ett token-ID är för enkelt för att modellen ska kunna göra något intressant med det. Därför översätts varje token till en lång lista med tal, en så kallad embedding.

Man kan föreställa sig en embedding som en koordinat i ett rum med tusentals dimensioner. I detta rum tenderar språkligt relaterade begrepp att hamna i liknande områden. Ord och uttryck som används på liknande sätt får ofta representationer som påminner om varandra.

Det betyder inte att det finns en enskild dimension för exempelvis ”djur”, en annan för ”glädje” och en tredje för ”politik”. Informationen är utspridd över många dimensioner samtidigt. Ett begrepp representeras som ett mönster, inte som en etikett i ett register.

Modellen behöver också veta i vilken ordning tokens förekommer. Samma ord kan få olika betydelse beroende på sin position:

Hunden jagade katten.

är inte samma sak som:

Katten jagade hunden.

Därför läggs information om tokenens position in i representationen. Resultatet är en serie matematiska vektorer som innehåller både information om vilka tokens som förekommer och var de befinner sig i texten.

Transformern: motorn i modellen

De flesta moderna LLM:er bygger på en arkitektur som kallas transformer. En transformer består av många lager som bearbetar textens representation steg för steg.

En stor modell kan ha tiotals eller hundratals sådana lager. I varje lager sker framför allt två viktiga saker:

  1. Modellen undersöker relationerna mellan olika delar av texten.
  2. Den omvandlar varje tokens interna representation.

Efter varje lager är informationen lite mer bearbetad. Tidiga lager kan fånga relativt lokala egenskaper, såsom ordformer och meningsstruktur. Djupare lager kan representera mer abstrakta relationer: vilken person ett pronomen syftar på, vilken ton texten har eller vad frågan egentligen efterfrågar.

Detta ska dock inte föreställas som en prydlig trappa där ett lager sköter grammatik och nästa lager sköter logik. Funktionerna är överlappande och distribuerade genom hela nätverket.

Attention: vilka delar av texten är viktiga just nu?

Transformerns mest kända komponent är attention, eller uppmärksamhetsmekanismen.

När modellen bearbetar en token jämför den denna med tidigare tokens i sammanhanget. Den räknar ut vilka delar av texten som är mest relevanta för den aktuella positionen.

Ta meningen:

Anna lade boken på bordet eftersom hon var trött.

För att tolka ordet ”hon” behöver modellen koppla det till ”Anna”, inte till ”boken” eller ”bordet”. Attention hjälper modellen att vikta dessa samband.

Tekniskt skapas tre representationer för varje token:

  • Query: vad söker den aktuella tokenen?
  • Key: vilken typ av information erbjuder en annan token?
  • Value: vilken information ska föras vidare om den är relevant?

Relevansen beräknas genom att jämföra en query med olika keys. Förenklat kan beräkningen skrivas:Attention(Q,K,V)=softmax(QKd)V

Uttrycket behöver inte vara så mystiskt som det ser ut. Modellen räknar först ut hur starkt olika tokens hör ihop, omvandlar resultaten till vikter och blandar sedan informationen enligt dessa vikter.

En transformer använder dessutom flera attention-mekanismer parallellt, så kallade attention heads. Olika huvuden kan bli känsliga för olika sorters relationer: grammatiska samband, närhet, upprepningar, namn, kodstruktur eller långväga beroenden.

Ingen programmerare bestämmer exakt vad varje huvud ska göra. Specialiseringen uppstår under träningen.

Modellens inre är ett tillstånd, inte en text

När människor frågar hur det ”ser ut” inuti en LLM föreställer de sig ibland att modellen först skriver ett dolt svar och sedan visar det. Så fungerar den normalt inte.

Inuti modellen finns stora matriser och långa listor av flyttal. Under bearbetningen skapas ett tillfälligt internt tillstånd för varje token. Detta kallas ofta modellens aktiveringar.

Aktiveringarna är inte meningar på något hemligt språk. De är distribuerade numeriska mönster. Information om ämne, grammatik, ton, möjliga fortsättningar och relevanta samband kan vara kodad samtidigt i samma mönster.

Man kan jämföra det med hjärnaktivitet, med den viktiga skillnaden att en LLM inte är en digital kopia av en biologisk hjärna. Likheten ligger främst i att information inte alltid finns på en enda plats. Den uppstår genom aktivitet i ett stort nätverk.

De framåtriktade nätverken

Efter attention-delen passerar varje tokens representation genom ett mindre neuralt nätverk, ofta kallat ett feed-forward-nätverk eller en MLP.

Attention blandar information mellan olika positioner i texten. MLP-delen bearbetar i stället informationen inom varje position. Den kan förstora, dämpa eller kombinera olika egenskaper i representationen.

Det är här en stor del av modellens parametrar finns. Parametrarna är de tal som modellen har lärt sig under träningen. De fungerar ungefär som miljarder justerbara rattar som tillsammans bestämmer hur en viss insignal omvandlas.

Mellan delarna används bland annat residualkopplingar och normalisering. Residualkopplingar låter information passera förbi ett lager samtidigt som ny information läggs till. Normalisering håller de numeriska värdena på rimliga nivåer. Dessa mekanismer gör djupa nätverk stabilare och lättare att träna.

Från intern representation till nästa token

När texten har passerat genom alla transformerlager måste modellen välja nästa token.

Det sista interna tillståndet omvandlas till ett värde för varje möjlig token i vokabulären. Dessa värden kallas logits. Om vokabulären innehåller 100 000 tokens producerar modellen alltså omkring 100 000 värden.

Logits omvandlas därefter till en sannolikhetsfördelning. Modellen kan exempelvis bedöma nästa token så här:

  • ”är”: 31 procent
  • ”kan”: 18 procent
  • ”har”: 11 procent
  • ”verkar”: 7 procent
  • övriga tokens: resterande sannolikhet

Sedan väljs en token. Den kan vara den mest sannolika, men ofta används någon form av slumpmässig sampling. Inställningar som temperaturetop-p och top-k påverkar hur försiktigt eller kreativt valet görs.

Vid låg temperatur koncentreras sannolikheten kring de mest väntade alternativen. Svaret blir stabilare men ofta mer förutsägbart. Vid hög temperatur får mindre sannolika alternativ större chans, vilket kan ge mer variation men också fler fel och märkliga formuleringar.

Den valda tokenen läggs till texten. Därefter kör modellen processen igen för att välja nästa token, sedan nästa och nästa:P(t1,t2,,tn)=i=1nP(tit1,,ti1)

Ett svar genereras alltså stegvis. Modellen känner normalt inte till hela den färdiga formuleringen i förväg.

Hur modellen lär sig

Före träningen består modellen i praktiken av ett enormt antal mer eller mindre slumpmässiga parametrar. Den kan inte språk och producerar bara brus.

Under grundträningen får modellen se mycket stora mängder text. Delar av texten används som indata, och modellen försöker förutsäga nästa token. Dess gissning jämförs med det verkliga svaret, och skillnaden uttrycks som ett felvärde.

Med hjälp av en metod som kallas backpropagation beräknas hur parametrarna bidrog till felet. En optimeringsalgoritm justerar sedan parametrarna en liten aning. Detta upprepas ofattbart många gånger.

Träningsloopen ser förenklat ut så här:

  1. Visa modellen en textsekvens.
  2. Låt den förutsäga nästa token.
  3. Mät hur fel förutsägelsen var.
  4. Justera parametrarna.
  5. Upprepa med mer text.

För att bli bättre på dialog följs grundträningen ofta av ytterligare träning på instruktioner, frågor och önskvärda svar. Mänsklig eller syntetisk återkoppling kan också användas för att lära modellen vilka svar som är tydliga, relevanta och användbara.

Var finns kunskapen?

En LLM innehåller normalt inte ett uppslagsverk där varje fakta ligger sparad som en separat post. Kunskapen är i stället utspridd över modellens parametrar.

Om modellen har sett många texter om Stockholm justeras nätverket gradvis så att vissa språkliga fortsättningar blir mer sannolika. Den lär sig relationer mellan Stockholm, Sverige, huvudstäder, geografi och andra begrepp.

Detta gör modellen flexibel. Den kan formulera samma kunskap på nya sätt och kombinera mönster från olika områden. Men lagringsformen har en baksida: modellen kan blanda ihop uppgifter eller skapa ett svar som låter rätt utan att faktiskt vara sant.

En LLM är därför inte en databas. Den är snarare en komprimerad statistisk modell av de mönster som fanns i träningsmaterialet.

Kontextfönstret: modellens arbetsyta

Texten som modellen för tillfället kan ta hänsyn till ligger i dess kontextfönster. Där kan ingå:

  • systeminstruktioner
  • användarens fråga
  • tidigare meddelanden
  • uppladdade eller infogade dokument
  • modellens eget pågående svar

Kontextfönstret fungerar ungefär som ett arbetsminne. Om en uppgift finns i kontexten kan modellen använda den även om uppgiften inte ingick i träningen.

Men kontexten är begränsad. När en konversation blir för lång kan äldre delar behöva tas bort, förkortas eller sammanfattas. Modellen har inte automatiskt ett permanent minne av allt som sagts i tidigare samtal.

Under genereringen används ofta en teknisk optimering som kallas KV-cache. Modellen sparar vissa mellanresultat från tidigare tokens så att den inte måste räkna om hela texten varje gång en ny token ska skapas. Det gör svarsgenereringen betydligt snabbare, men cachen växer också när kontexten blir längre.

Tänker en LLM?

Det beror på vad man menar med att tänka.

En LLM kan genomföra processer som funktionellt liknar delar av mänskligt tänkande: jämföra alternativ, följa logiska steg, dra slutsatser och korrigera sig själv. Samtidigt sker detta genom numeriska transformationer och sannolikhetsbaserad generering.

Modellen har inte nödvändigtvis en mänsklig inre upplevelse av orden den producerar. Den vet inte saker på samma sätt som en människa vet dem, och ett självsäkert svar innebär inte att modellen har verifierat innehållet.

Det vore dock också missvisande att säga att den ”bara väljer nästa ord”, som om processen vore en enkel autokomplettering. För att kunna förutsäga nästa token väl måste modellen bygga interna representationer av grammatik, sammanhang, stil, fakta och ibland även flerstegsproblem. Den enkla träningsuppgiften leder till ett mycket komplext system.

Varför hallucinerar modellen?

En LLM är tränad för att producera sannolik och sammanhängande text, inte för att garantera sanning.

Om modellen saknar säker information försöker den ändå hitta en språkligt rimlig fortsättning. Resultatet kan bli ett påhittat namn, en falsk källa eller ett felaktigt årtal som presenteras med övertygande ton.

Hallucinationer uppstår bland annat när:

  • frågan gäller ovanlig eller oklar information
  • träningsmaterialet innehåller motstridiga uppgifter
  • modellen måste återge exakta detaljer
  • kontexten är otillräcklig
  • sannolik text förväxlas med verifierad kunskap

Detta är inte lögn i mänsklig mening. Modellen behöver inte ha en avsikt att vilseleda. Felet kommer ur själva konstruktionen: den genererar en trovärdig fortsättning, även när underlaget är svagt.

En maskin byggd av matriser och mönster

Under huven är en LLM ett massivt system av matrisoperationer. Tokens omvandlas till vektorer, vektorer passerar genom transformerlager och det sista tillståndet används för att beräkna sannolikheten för nästa token.

Men det är bara den mekaniska beskrivningen.

På en högre nivå är en LLM en maskin som har pressat samman oerhörda mängder språkliga mönster till miljarder parametrar. När vi skriver till den aktiveras delar av dessa mönster och kombineras på nytt, i realtid, för att skapa en fortsättning som passar sammanhanget.

Inuti finns inga små böcker, färdiga svar eller tydligt avgränsade tankar. Där finns ett landskap av tal — så stort och finmaskigt att grammatik, fakta, stil och resonemang kan framträda ur det.

Det är kanske det mest anmärkningsvärda med en LLM: varje enskild beräkning är relativt enkel, men när miljarder parametrar samverkar uppstår något som från utsidan liknar förståelse.