Large language model (SV)
Stor språkmodell (large language model, LLM) — är en typ av maskininlärningsmodell implementerad med hjälp av ett djupt neuralt nätverk med ett stort antal parametrar (vanligtvis miljarder eller fler) och tränad på stora mängder textdata. "Stor" syftar i detta sammanhang samtidigt på parameterskalans storlek och på träningskorpusens volym, som i moderna system uppgår till flera petabyte och biljoner token. LLM-modeller tränas huvudsakligen med själv- eller semi-självövervakad (self-/semi-supervised) metod, genom att förutsäga nästa token i en sekvens och därigenom tillägna sig statistiska språkmönster. Ökade parametrar, datamängder och beräkningssteg leder till förutsägbara kvalitetsförbättringar, vilket bekräftas av scaling laws.
Efter framväxten av BERT (2017) och framför allt GPT-3 (2020) kom LLM-metoden att dominera inom naturlig språkbehandling. Moderna modeller (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3 m.fl.) kan utan specialanpassning skriva texter och programkod, översätta, sammanfatta, besvara frågor och bygga resonemangkedjor; multimodala versioner analyserar bilder, ljud och video. Anpassning till specifika tillämpningar görs genom fine-tuning eller prompt engineering (in-context learning). Tillsammans med sina framsteg ärver LLM-modeller snedvridningar och felaktigheter från källdata, är benägna att "hallucination" och kräver stora beräkningsresurser, varför forskningen idag fokuserar på beteendejustering, korpusfiltrering och energieffektiva arkitekturer.
Arkitektur
I moderna LLM används nästan alltid arkitekturen Transformer (transformator) – ett nätverk med en self-attention-mekanism. Transformatormodellen föreslogs för första gången i artikeln Attention is All You Need av Googles utvecklare år 2017.
Arkitekturen Transformer är ett grundläggande neuralt nätverksschema för att arbeta med sekvenser och innehåller två logiska moduler — encoder (kodar indata) och decoder (genererar utdata). En sekvens tas emot som indata, en vektorrepresentation (embedding) skapas, en vektor för positionskodning adderas, varefter uppsättningen element utan hänsyn till ordningen i sekvensen skickas till kodningskomponenten (parallell bearbetning), och sedan tar avkodningskomponenten emot en del av denna sekvens samt utdata från kodningskomponenten. Resultatet är en ny utsekvens.
Transformatorns kodningskomponent består av flera identiska kodningslager; avkodningskomponenten är uppbyggd på samma sätt. Transformatorn i sig är en sekvens av uppmärksamhetsmodeller som omvandlar den ursprungliga vektorsekvensen till en ny sekvens där varje element tar hänsyn till de övrigas kontext. Encodern bildar dolda representationer av indata och bevarar information om relationerna mellan elementen. Decodern skapar utifrån de dolda representationerna en ny sekvens av embeddings för utdatatokens. Därefter genereras de slutliga utdataelementen från dessa embeddings med hjälp av en språkmodell.
Eftersom transformatorer ursprungligen utvecklades för uppgifter som maskinöversättning innehåller deras arkitektur en encoder (som bearbetar inmatningstexten, exempelvis källmeningen) och en decoder (som genererar utdata, exempelvis översättningen). I många språkmodeller används dock enbart decoder-delen, som arbetar i ett autoregressivt läge.
Transformatorer används i tre huvudsakliga konfigurationer, där var och en utnyttjar encoder och decoder på olika sätt och är inriktad på sin egen uppsättning uppgifter:
- Encoder-transformatorer (dubbelriktade) lär sig att återställa avsiktligt dolda textfragment och lämpar sig därför väl för uppgifter som handlar om "förståelse" — klassificering, faktaextraktion, semantisk sökning.
- Decoder-transformatorer (autoregressiva) optimeras för att förutsäga nästa token och används där strömmande utdata behövs: konversationsagenter, kodkomplettering, kreativ generering.
- Fullständiga encoder + decoder-scheman kombinerar båda metoderna: encodern bygger en representation av hela inmatningstexten, medan decodern, med stöd av denna, stegvis formar resultatet. Denna konfiguration är mest effektiv för maskinöversättning, sammanfattning och fråge- och svarssystem.
Tokenisering
Tokenisering är det avgörande inledande steget vid textbearbetning i stora språkmodeller. I detta steg delas en kontinuerlig teckensträng upp i separata enheter — token. Tokenisering utför uppgiften att omvandla en teckensekvens till en sekvens av strukturerade element som möjliggör effektiv drift av det neurala nätverket.
Ur ett lingvistiskt perspektiv skulle tokenisering i viss mån kunna motsvara processen att identifiera minimala språkliga enheter med självständig betydelse eller funktionell belastning, såsom ord, morfem eller delar av dem. Samtidigt är en token ofta helt enkelt en statistiskt vanligt förekommande teckensekvens, varför det är viktigt att inte överskatta den lingvistiska meningsfullheten hos alla token. Beroende på valt schema kan en token vara: ett helt ord, ett delord, ett enskilt tecken eller en tjänsteetikett (exempelvis markörer för sekvensens början och slut).
Tokenisering möjliggör:
- att begränsa ordförrådets storlek till hanterbara proportioner;
- att korrekt hantera sällsynta och nya ord;
- att säkerställa en entydig avbildning av text till en sekvens av numeriska identifierare.
För textuppdelning används delords-algoritmer, varav de vanligaste är Byte Pair Encoding (BPE), WordPiece och UnigramLM. Var och en av dessa bygger upp ett ordförråd från de vanligaste fragmenten i korpusen och använder det för att sekventiellt segmentera all inmatningstext.
Efter tokeniseringssteget omvandlas varje textenhet — token — till en numerisk representation som det neurala nätverket kan förstå. Denna process innefattar flera successiva steg:
- Omvandling av token till identifierare: Varje token matchas mot ett unikt numeriskt index baserat på ett i förväg konstruerat tokenordförråd. Textuella token ersätts med sina unika numeriska identifierare (ID). Varje ID är tokenets nummer i det i förväg konstruerade ordförrådet, vilket gör att det neurala nätverket kan arbeta med siffror i stället för ord.
- Omvandling av identifierare till embeddings: För varje tokenidentifierare extraheras eller beräknas en motsvarande vektor med fast dimensionalitet — en embedding. Denna flerdimensionella numeriska representation ersätter ID och innehåller redan information om tokenets betydelse och kontextuella egenskaper. Alla embeddings har samma längd för enkel bearbetning.
- Tillägg av positionskodningar: Eftersom Transformer-arkitekturen i sig inte tar hänsyn till elementens ordning adderas positionskodningar (positional encodings) till embeddingarna, vilka tillhandahåller information om tokenets position i sekvensen. Med andra ord "vet" modellen tack vare detta vilket token som kommer först, andra, tredje och så vidare i meningen.
- Bildande av inmatningsmatriser: Utdata är en matris med dimensionaliteten
[длина последовательности × размерность эмбеддинга], som tjänar som den inledande representationen av texten och skickas som indata till det neurala nätverket, i synnerhet till self-attention-blocken i Transformer. Varje rad i denna matris motsvarar ett token, och vektorn den innehåller bär både dess semantiska betydelse (embedding) och information om dess position i texten (positionskodning).
Текст → Токены → Идентификаторы → Эмбеддинги + Позиционные кодировки → Вход в модель
Uppmärksamhetsmekanism
Uppmärksamhetsmekanismen (attention mechanism) är en nyckelkomponent i Transformer-arkitekturen som möjliggör att beroenden mellan token kan beaktas oberoende av avståndet mellan dem i sekvensen. När inmatningstexten har omvandlats till en vektorsekvens skickas denna sekvens till transformatorns centrala element — uppmärksamhetsblocket (attention block).
Uppmärksamhetsmekanismen är ett sätt för det neurala nätverket att avgöra vilka delar av indata som bör ges mer uppmärksamhet vid bearbetning av varje element i sekvensen. Tack vare den kan vektorer för enskilda textfragment interagera med varandra, berika sig med information och uppdatera sina värden med hänsyn till det omgivande sammanhanget. Därigenom får modellen möjlighet att effektivt fånga såväl lokala som långväga beroenden mellan token, vilket väsentligt förbättrar dess förmåga att tolka komplexa textstrukturer.
I naturligt språk bestäms ett ords eller uttrycks betydelse inte isolerat — den beror på sammanhanget, det vill säga på de övriga orden och strukturerna i omgivningen. I neurala nätverk kodas text via vektorrepresentationer — embeddings — som numeriskt återspeglar tokenens lexikala och syntaktiska egenskaper. Utan en direkt uppmärksamhetsmekanism (som i Transformer) skulle kontextinformation antingen gå förlorad på långa avstånd (som i enkla modeller) eller överföras sekventiellt, vilket är mindre effektivt för att fånga långväga samband. I naturligt språk är emellertid betydelsen hos ett ord eller en syntaktisk konstruktion dynamisk, och dess tolkning måste anpassas beroende på sammanhanget. Uppmärksamhetsmekanismen utför kontextualisering av vektorrepresentationer, vilket innebär (eller helt enkelt :):
- Varje token "bedömer" sin relevans i förhållande till övriga token i meningen.
- Under uppdateringsprocessen berikas vektorrepresentationerna med ömsesidig information som återspeglar syntaktiska beroenden, semantiska roller och pragmatisk kontext.
Till följd av detta informationsutbyte börjar de uppdaterade vektorerna koda inte bara tokenets egna betydelse, utan också dess grammatiska samband (syntax), roll i den beskrivna situationen (semantik) och övergripande mening i sammanhanget (pragmatik).
Входные векторы токенов (с позициями) → Механизм Внимания (Взаимодействие векторов) → Контекстуализированные векторы токенов (Векторы обогащенные информацией о связях с другими токенами)
Teknisk implementering av uppmärksamhetsmekanismen
Uppmärksamhetsmekanismens inre uppbyggnad innefattar flera viktiga beräkningssteg och komponenter. För varje inmatningsvektor genereras tre vektorer: Förfrågan (Query), Nyckel (Key) och Värde (Value). Utifrån deras interaktion beräknas uppmärksamhetsvikter, som sedan används för att erhålla uppdaterade, kontextualiserade vektorrepresentationer. En vanlig metod är att använda en multi-head-arkitektur (Multi-Head Attention) för parallell informationsbearbetning.
Förfrågan (Query), Nyckel (Key), Värde (Value)
Grunden för beräkningen av uppmärksamhetsmekanismen är omvandlingen av varje inmatningsvektor (som är summan av tokenets embedding och dess positionskodning) till tre olika vektorrepresentationer: Förfrågan (Query, Q), Nyckel (Key, K) och Värde (Value, V).
Konceptuellt fyller dessa tre vektorer följande roller i uppmärksamhetsmekanismen:
- Förfrågan (Query): Representerar den aktuella tokenets vektor, som initierar sökprocessen efter relevant information i sekvensen. Den kan ses som en "fråga" eller ett "prob" som används för att bedöma vikten av övriga token i förhållande till det aktuella.
- Nyckel (Key): Fungerar som en identifierare eller "etikett" som beskriver en aspekt av varje tokens innehåll. Den aktuella tokenets förfrågningsvektor (Q) jämförs med alla nyckeltvektorer (K) i sekvensen (inklusive sin egen) för att fastställa graden av deras överensstämmelse eller relevans.
- Värde (Value): Innehåller den faktiska informationen eller representationen kopplad till varje token, som ska föras vidare. När uppmärksamhetsvikterna har beräknats utifrån interaktionen mellan Förfrågningar och Nycklar tillämpas dessa vikter på Värdevektorerna för att bilda den slutliga viktade representationen, som utgör uppmärksamhetsmekanismens utdata för det aktuella tokenet.
Träning av stora språkmodeller
Träning av LLM sker huvudsakligen i två steg:
- Förträning (Pretraining) I detta steg tränas modellen på stora omärkta textkorpusar med hjälp av självövervakad inlärning (self-supervised learning). Uppgiften består i att förutsäga nästa token i en sekvens (autoregression) eller att återställa dolda fragment (maskerad inlärning). Förträning gör det möjligt för modellen att tillägna sig omfattande statistiska språkmönster, grammatik, fakta om världen och grundläggande former av resonemang.
- Finjustering (Fine-tuning) Efter förträning vidareutbildas modellen på specialiserade data för att utföra specifika uppgifter, exempelvis generering av svar, textklassificering eller instruktionsföljning. Moderna metoder inkluderar:
- Finjustering på märkta dataset (supervised fine-tuning).
- Förstärkningsinlärning med mänsklig feedback (RLHF, reinforcement learning from human feedback) för att justera modellens beteende i enlighet med målmätten för kvalitet, säkerhet och användbarhet.
Problem och begränsningar
Trots imponerande framsteg har moderna stora språkmodeller (LLM) ett antal problem och begränsningar:
I. Beräkningsmässiga och arkitekturella begränsningar
- Höga beräkningskostnader: Träning och drift av LLM kräver betydande beräkningskapacitet, tid och energi, vilket medför höga ekonomiska och miljömässiga kostnader. Därtill begränsar den autoregressiva karaktären hos generering (sekventiellt skapande av token) paralleliseringen och saktar ner inferenshastigheten jämfört med icke-autoregressiva metoder.
- Kontextlängdsbegränsning: Transformer-arkitekturen har ett kvadratiskt beroende av beräkningskostnader och minneskrav i förhållande till sekvensens längd. Detta tvingar fram en fast gräns (kontextfönster) för den textmängd modellen kan bearbeta samtidigt, vilket leder till att långa dokument trunkeras och information utanför fönstret förloras.
II. Problem med tillförlitlighet och noggrannhet i generering
- Hallucinationer: Generering av faktiskt felaktig men trovärdigt klingande information. Detta beror på att modellen saknar verklig förståelse av världen, förlitar sig på statistiska mönster i data och inte kan verifiera de påståenden den genererar.
- Felackumulering (Error Propagation): En process där fel som begåtts i tidiga genereringssteg förstärks och leder till ökande felaktigheter i efterföljande steg, vilket sänker den övergripande kvaliteten och koherensen i texten.
- Begränsad kompositionellitet: Svårigheter med uppgifter som kräver flerstegslogiskt resonemang eller exakta beräkningar (exempelvis multiplikation av flersiffriga tal, lösning av pussel). Modellernas noggrannhet i sådana uppgifter sjunker kraftigt med ökad komplexitet på grund av genereringens autoregressiva karaktär.
- Upprepningar: Benägenhet att överflödigt upprepa ord eller fraser, vilket minskar textens informationsvärde och läsbarhet. Hänger samman med egenskaperna hos träning och avkodningsalgoritmer (val av nästa token).
- Reversibilitetsförbannelsen (Reversal Curse): Modellens oförmåga att automatiskt generalisera kunskap i omvänd riktning: efter att ha tränats på påståendet "A är B" kan modellen ofta inte härleda "B är A".
- Avvägningen kreativitet–noggrannhet: Behovet av att balansera mellan generering av varierade, originella svar och upprätthållande av faktamässig noggrannhet. Att öka den ena aspekten påverkar ofta den andra negativt — hög kreativitet kan exempelvis korrelera med fler hallucinationer.
III. Problem med interaktion och styrning:
- Låg styrbarhet: Svårigheten att exakt kontrollera stil, ton, innehåll i den genererade texten eller följandet av komplexa instruktioner. Styrbarheten beror starkt på kvaliteten hos de inmatade instruktionerna ("prompts") och metoderna för fine-tuning.
- Känslighet för formuleringar: Obetydliga förändringar i inmatningsfrågan (prompt) kan leda till väsentligt olika svar, även om frågans semantik bevaras. Detta försvårar erhållandet av stabila och förutsägbara resultat.
IV. Etiska och sociala aspekter:
- Problem med snedvridning och rättvisa: Modeller kan reproducera och förstärka sociala stereotyper, snedvridningar eller toxicitet som finns i träningsdata. Att säkerställa modellernas rättvisa och säkerhet är en komplex uppgift.
- Justeringsproblemet (LLM Alignment): Ett mer övergripande problem som inbegriper föregående punkt. Det är uppgiften att säkerställa att modellens beteende överensstämmer med mänskliga värderingar, avsikter och etiska normer. Det innefattar bekämpning av snedvridning, hallucinationer, generering av skadligt innehåll och förbättring av styrbarheten.
- Risker för skadlig användning: Möjligheten att använda LLM för att skapa och masssprida desinformation, nätfiske, skräppost, skadlig kod eller generera övertygande falska texter, vilket utgör hot mot informations- och personlig säkerhet samt underminerar förtroendet i samhället.
Källor:
- "Stor språkmodell" // Wikipedia (Rysk version)
- Large Language Model // Wikipedia (English version)
- Grand Modèle de Langage // Wikipédia (Version française)
- Sprachmodell // Wikipedia (Deutsche version)
- Naveed H. et al. // A Comprehensive Overview of Large Language Models // arXiv:2307.06435, 2023
Litteratur
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
- Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
- Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
- Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
- OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
- Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.