Arkitektur för stora språkmodeller (LLM)
- Transformer-arkitektur: Grunden för moderna LLM
- Självuppmärksamhetsmekanismer och deras implementering
- Inbäddningsdimensioner och tokenrepresentation
- Feed-forward neurala nätverk i LLM
- Kvantisering och andra optimeringstekniker
- Modell-sharding och distribuerad bearbetning
- Jämförelse av arkitekturer för moderna språkmodeller
Transformer-arkitektur: Grunden för moderna LLM
Transformer-arkitekturen representerar ett fundamentalt genombrott inom området för naturlig språkbehandling och utgör grunden för alla moderna stora språkmodeller (LLM). Till skillnad från tidigare metoder baserade på rekurrenta (RNN) eller konvolutionella (CNN) neurala nätverk, använder transformatorer en så kallad uppmärksamhetsmekanism (attention mechanism), som gör det möjligt att effektivt fånga långsiktiga beroenden i text utan sekventiell bearbetning. Denna arkitektoniska grund är avgörande för en effektiv träningsprocess för språkmodeller.
En nyckelegenskap hos transformer-arkitekturen är dess parallelliserbarhet - alla tokens i indatasekvensen kan bearbetas samtidigt, vilket dramatiskt påskyndar både träning och inferens. En standardtransformer består av en kodare (encoder) och en avkodare (decoder), där moderna LLM som GPT främst använder en decoder-only-arkitektur, medan modeller som BERT är encoder-only. Modeller av typen T5 eller BART använder en komplett encoder-decoder- arkitektur.
Tekniska specifikationer för transformer-modeller
Moderna LLM som GPT-4, Claude eller Llama 2 implementerar djupa transformer-arkitekturer med tiotals till hundratals lager. Varje lager (layer) bearbetar information genom multi-head attention-mekanismer och feed-forward neurala nätverk. Modellens prestanda bestäms till stor del av antalet parametrar (vikter), som varierar från enstaka miljarder för mindre modeller till hundratals miljarder eller till och med biljoner för de största systemen.
Självuppmärksamhetsmekanismer och deras implementering
Självuppmärksamhet (ibland även kallad scaled dot-product attention) utgör en nyckelkomponent i transformer-arkitekturen. Denna mekanism gör det möjligt för modellen att utvärdera relationer och beroenden mellan alla tokens i en sekvens och dynamiskt bestämma vilka delar av texten som ska fokuseras på vid tolkningen av ett specifikt ord eller en fras.
Ur teknisk synvinkel transformerar självuppmärksamhet varje token till tre olika vektorer: query (Q), key (K) och value (V). Den efterföljande uppmärksamhetsberäkningen inkluderar matrismultiplikation av Q och K, skalning av resultatet, applicering av softmax-funktionen för att erhålla uppmärksamhetsvikter och slutligen multiplikation med V-matrisen för att få en kontextberikad representation. Matematiskt kan denna process uttryckas med ekvationen:
Attention(Q, K, V) = softmax(QKT / √dk)V
Multi-head attention
Moderna LLM använder så kallad multi-head attention, vilket gör att modellen samtidigt kan följa olika typer av relationer i texten. Till exempel kan ett uppmärksamhetshuvud (attention head) följa syntaktiska relationer, medan ett annat fokuserar på semantisk likhet eller koreferensrelationer. Antalet uppmärksamhetshuvuden är en viktig hyperparameter, som vanligtvis varierar från 12 för mindre modeller till 96 eller fler för de största systemen. Varje huvud opererar i en lägre dimension än den ursprungliga inbäddningsvektorn, vilket säkerställer beräkningseffektivitet samtidigt som modellens uttrycksförmåga bibehålls.
Inbäddningsdimensioner och tokenrepresentation
Inbäddningsdimensionen representerar en nyckelhyperparameter som bestämmer storleken på vektorrepresentationen av enskilda tokens i språkmodellen. I moderna LLM ligger detta värde vanligtvis mellan 768 för mindre modeller och 12288 eller mer för de största systemen. En större inbäddningsdimension gör det möjligt att fånga finare semantiska nyanser och mer komplexa lingvistiska relationer, men ökar samtidigt modellens beräkningskrav och antal parametrar.
Processen att konvertera tokens till inbäddningar involverar en uppslagstabell (lookup table), där varje möjlig token motsvarar en unik inbäddningsvektor. Dessa initiala inbäddningar berikas ytterligare med positionsinformation genom så kallade positionsinbäddningar, som kan implementeras antingen som lärbara parametrar eller med hjälp av deterministiska sinusformade funktioner.
Inbäddningarnas kontextuella kapacitet
En viktig aspekt av inbäddningar i LLM är deras kontextuella kapacitet, det vill säga förmågan att lagra information om relationer mellan tokens över långa sekvenser. Moderna modeller som GPT-4 eller Claude 3 Opus uppnår kontextfönster på 32K till 128K tokens, vilket möjliggör bearbetning av långa dokument, komplexa konversationer eller sofistikerade instruktioner. Korrekt implementering av positionsinbäddningar är avgörande för effektiv skalning av kontextfönstret, där avancerade modeller använder tekniker som RoPE (Rotary Position Embedding) eller ALiBi (Attention with Linear Biases) för att förbättra prestandan på långa sekvenser.
Feed-forward neurala nätverk i LLM
Feed-forward neurala nätverk (FFN) utgör den andra huvudkomponenten i varje transformer-lager, efter självuppmärksamhetsmekanismen. Medan uppmärksamhet fångar relationer mellan tokens, bearbetar FFN information för varje token separat och tillämpar icke-linjära transformationer som är avgörande för modellens uttrycksförmåga.
En typisk implementering av FFN i en transformer inkluderar två linjära transformationer med en aktiveringsfunktion (oftast ReLU eller GELU) mellan dem. Matematiskt kan denna process uttryckas som:
FFN(x) = Linear2(Activation(Linear1(x)))
Parametrisering och optimering av FFN
Ur arkitektursynpunkt är den dolda dimensionen (hidden dimension) en nyckelparameter för FFN, som bestämmer storleken på mellanresultatet efter den första linjära transformationen. Detta värde är vanligtvis 4 gånger större än inbäddningsdimensionen, vilket säkerställer tillräcklig kapacitet för att fånga komplexa mönster. I moderna arkitekturer som PaLM eller Chinchilla experimenteras det med alternativa konfigurationer, inklusive SwiGLU- eller GeGLU-aktiveringar och mixtures-of-experts- metoder, som ytterligare ökar effektiviteten hos FFN-komponenterna.
En intressant aspekt av FFN-komponenterna är att de utgör majoriteten av parametrarna i moderna LLM - vanligtvis 60-70% av alla vikter. Detta gör dem till primära kandidater för optimeringstekniker som pruning (borttagning av onödiga vikter), kvantisering eller low-rank-approximation i fall där det finns behov av att minska modellens minneskrav.
Kvantisering och andra optimeringstekniker
Kvantisering representerar en nyckeloptimeringsteknik som gör det möjligt att minska minneskraven för LLM samtidigt som de flesta av deras förmågor bibehålls. Principen är att konvertera modellparametrar från hög precision (vanligtvis 32-bitars flyttalsvärden) till lägre precision (16-bitars, 8-bitars eller till och med 4-bitars representation). Korrekt implementerad kvantisering kan minska modellstorleken upp till 8 gånger med minimal inverkan på svarskvaliteten.
Moderna metoder som GPTQ, AWQ eller QLoRA implementerar sofistikerade kvantiseringsalgoritmer som optimerar processen baserat på vikternas statistiska egenskaper och deras betydelse för modellens noggrannhet. Post-training quantization (PTQ) tillämpar komprimering på en redan tränad modell, medan quantization-aware training (QAT) integrerar kvantiseringsaspekter direkt i träningsprocessen.
Andra optimeringstekniker
Förutom kvantisering använder moderna LLM en rad andra optimeringstekniker:
Model pruning - systematisk borttagning av mindre viktiga vikter eller hela modellkomponenter baserat på deras inverkan på slutprestandan
Knowledge distillation - träning av en mindre "student"-modell så att den efterliknar beteendet hos en större "lärare"-modell
Low-rank adaptation - anpassning av utvalda modellkomponenter med hjälp av lågrangsmatriser, vilket möjliggör effektiv finjustering (fine-tuning) med minimala minneskrav
Sparse attention - implementering av uppmärksamhetsmekanismer som inte behöver utvärdera relationer mellan alla tokens, utan fokuserar endast på potentiellt relevanta par
Modell-sharding och distribuerad bearbetning
Modell-sharding representerar en teknik för att distribuera parametrar och beräkningar för stora språkmodeller över flera beräkningsenheter (GPU/TPU), vilket möjliggör effektiv träning och driftsättning av modeller som är för stora för att rymmas i minnet på en enda accelerator. Det finns fyra huvudsakliga metoder för sharding, var och en med sina egna fördelar och begränsningar.
Tensor Parallelism delar upp enskilda matriser och tensorer i segment som bearbetas samtidigt på olika enheter. Denna metod minimerar kommunikationsöverhead, men kräver höghastighetsanslutningar mellan acceleratorerna.
Pipeline Parallelism distribuerar hela modellager till olika enheter, som bearbetar data sekventiellt som en pipeline. Denna metod utnyttjar minnet effektivt, men kan leda till obalanserad belastning på enheterna.
Avancerade distributionsstrategier
3D Parallelism kombinerar tensor- och pipeline-parallelism med dataparallellism (bearbetning av olika batch-prover på olika enheter), vilket möjliggör maximalt utnyttjande av tillgängliga beräkningsresurser vid träning av extremt stora modeller.
ZeRO (Zero Redundancy Optimizer) eliminerar redundans i lagringen av optimerartillstånd, gradienter och modellparametrar över GPU:er. ZeRO-3, den mest avancerade varianten, delar upp enskilda modellparametrar så att varje GPU endast lagrar en liten del av den totala modellen, vilket möjliggör träning av modeller med flera miljarder parametrar även på relativt begränsade hårdvarusystem.
Implementering av effektiva sharding-strategier kräver specialiserade ramverk som DeepSpeed, Megatron-LM eller Mesh TensorFlow, som automatiserar de komplexa aspekterna av distribution och synkronisering. Dessa ramverk implementerar ofta ytterligare optimeringar som gradient checkpointing, mixed-precision training eller activation recomputation för att ytterligare förbättra effektiviteten och minska minneskraven.
Jämförelse av arkitekturer för moderna språkmodeller
Arkitektoniska skillnader mellan moderna LLM spelar en nyckelroll i deras förmågor, effektivitet och lämplighet för olika tillämpningar. Medan alla använder transformer-grunden, finns det betydande variationer i implementeringen av enskilda komponenter, vilket påverkar deras prestanda och egenskaper.
GPT-arkitektur (Generative Pre-trained Transformer) använder en decoder-only-strategi med autoregressiv textgenerering, vilket gör den idealisk för generativa uppgifter. Nyare versioner som GPT-4 implementerar avancerade tekniker både på arkitekturnivå (större kontextfönster, multimodala indata) och på träningsnivå (RLHF, konstitutionella metoder).
PaLM-arkitektur (Pathways Language Model) från Google introducerade innovationer som SwiGLU-aktiveringar, multi-query attention och skalad RoPE, vilket möjliggjorde effektivare skalning till hundratals miljarder parametrar. Gemini, efterföljaren till PaLM, integrerade vidare multimodala förmågor direkt i modellarkitekturen.
Specialiserade arkitekturer och nya tillvägagångssätt
Mixtures of Experts (MoE) som Mixtral representerar ett hybridtillvägagångssätt, där varje token endast bearbetas av en delmängd av specialiserade "expert"-nätverk. Denna teknik möjliggör en dramatisk ökning av antalet modellparametrar samtidigt som en liknande beräkningskostnad bibehålls under inferens.
State-space-modeller som Mamba representerar ett potentiellt alternativ till transformatorer, som kombinerar fördelarna med rekurrenta och konvolutionella metoder med linjär skalbarhet med avseende på sekvenslängden. Dessa modeller är särskilt lovande för bearbetning av mycket långa kontexter (100K+ tokens).
Vid val av arkitektur för en specifik applikation måste man överväga kompromisser mellan noggrannhet, beräkningseffektivitet, minneskrav och specifika förmågor som långtidsminne eller multimodal bearbetning. Den senaste forskningen fokuserar på hybridmetoder som kombinerar styrkorna hos olika arkitekturer och tekniker som retrieval-augmented generation, som utökar modellernas förmåga med explicit tillgång till extern kunskap.