Arhitektura velikih jezikovnih modelov (LLM)

Arhitektura Transformer: Osnova sodobnih LLM

Arhitektura Transformer predstavlja temeljni preboj na področju obdelave naravnega jezika in tvori osnovo vseh sodobnih velikih jezikovnih modelov (LLM). Za razliko od prejšnjih pristopov, ki temeljijo na rekurenčnih (RNN) ali konvolucijskih (CNN) nevronskih mrežah, transformerji uporabljajo tako imenovani mehanizem pozornosti (attention), ki omogoča učinkovito zajemanje dolgoročnih odvisnosti v besedilu brez sekvenčne obdelave. Ta arhitekturna osnova je ključna za učinkovit proces učenja jezikovnih modelov.

Ključna lastnost arhitekture Transformer je njena paralelizabilnost – vsi žetoni vhodnega zaporedja se lahko obdelajo hkrati, kar dramatično pospeši učenje in sklepanje. Standardni transformer je sestavljen iz kodirnika (encoder) in dekodirnika (decoder), pri čemer sodobni LLM, kot je GPT, uporabljajo predvsem arhitekturo samo z dekodirnikom (decoder-only), medtem ko so modeli, kot je BERT, samo s kodirnikom (encoder-only). Modeli tipa T5 ali BART uporabljajo celotno arhitekturo kodirnik-dekodirnik (encoder-decoder).

Tehnične specifikacije modelov Transformer

Sodobni LLM, kot so GPT-4, Claude ali Llama 2, implementirajo globoke arhitekture Transformer z desetinami do stotinami plasti. Vsaka plast (layer) obdeluje informacije prek mehanizmov večglavne pozornosti (multi-head attention) in naprej usmerjenih nevronskih mrež (feed-forward). Zmogljivost modela je v veliki meri določena s številom parametrov (uteži), ki se giblje od nekaj milijard pri manjših modelih do stotin milijard ali celo bilijonov pri največjih sistemih.

Mehanizmi samopozornosti in njihova implementacija

Samopozornost (včasih imenovana tudi skalirana pozornost skalarnega produkta – scaled dot-product attention) predstavlja ključno komponento arhitekture Transformer. Ta mehanizem omogoča modelu, da oceni odnose in odvisnosti med vsemi žetoni v zaporedju ter dinamično določi, na katere dele besedila se osredotočiti pri interpretaciji določene besede ali fraze.

S tehničnega vidika samopozornost pretvori vsak žeton v tri različne vektorje: poizvedbo (query - Q), ključ (key - K) in vrednost (value - V). Naslednji izračun pozornosti vključuje množenje matrik Q in K, skaliranje rezultata, uporabo funkcije softmax za pridobitev uteži pozornosti in na koncu množenje z matriko V za pridobitev kontekstualno obogatene predstavitve. Matematično lahko ta proces izrazimo z enačbo:

Attention(Q, K, V) = softmax(QKT / √dk)V

Večglavna pozornost

Sodobni LLM uporabljajo tako imenovano večglavno pozornost (multi-head attention), ki modelu omogoča hkratno spremljanje različnih vrst odnosov v besedilu. Na primer, ena glava pozornosti (attention head) lahko spremlja skladenjske odnose, medtem ko se druga osredotoča na semantično podobnost ali koreferenčne odnose. Število glav pozornosti je pomemben hiperparameter, ki se običajno giblje od 12 pri manjših modelih do 96 ali več pri največjih sistemih. Vsaka glava deluje v nižji dimenziji kot prvotni vektor vstavljanja (embedding), kar zagotavlja računsko učinkovitost ob ohranjanju izrazne sposobnosti modela.

Dimenzije vstavljanja in predstavitev žetonov

Dimenzija vstavljanja (embedding dimension) predstavlja ključni hiperparameter, ki določa velikost vektorske predstavitve posameznih žetonov v jezikovnem modelu. V sodobnih LLM se ta vrednost običajno giblje od 768 pri manjših modelih do 12288 ali več pri največjih sistemih. Večja dimenzija vstavljanja omogoča zajemanje finejših semantičnih odtenkov in kompleksnejših jezikovnih odnosov, hkrati pa povečuje računsko zahtevnost in število parametrov modela.

Proces pretvorbe žetonov v vstavljanja (embeddings) vključuje iskalno tabelo (lookup table), kjer vsakemu možnemu žetonu ustreza edinstven vektor vstavljanja. Ta začetna vstavljanja so nato obogatena s položajnimi informacijami prek tako imenovanih položajnih vstavljanj (positional embeddings), ki so lahko implementirana bodisi kot učljivi parametri bodisi s pomočjo determinističnih sinusoidnih funkcij.

Kontekstualna zmogljivost vstavljanj

Pomemben vidik vstavljanj v LLM je njihova kontekstualna zmogljivost, torej sposobnost ohranjanja informacij o odnosih med žetoni v dolgih zaporedjih. Sodobni modeli, kot sta GPT-4 ali Claude 3 Opus, dosegajo kontekstualna okna velikosti od 32K do 128K žetonov, kar omogoča obdelavo dolgih dokumentov, kompleksnih pogovorov ali sofisticiranih navodil. Pravilna implementacija položajnih vstavljanj je ključna za učinkovito skaliranje kontekstualnega okna, pri čemer napredni modeli uporabljajo tehnike, kot sta RoPE (Rotary Position Embedding) ali ALiBi (Attention with Linear Biases), za izboljšanje zmogljivosti na dolgih zaporedjih.

Naprej usmerjene nevronske mreže v LLM

Naprej usmerjene nevronske mreže (FFN) tvorijo drugo glavno komponento vsake plasti Transformerja, ki sledi mehanizmu samopozornosti. Medtem ko pozornost (attention) zajema odnose med žetoni, FFN obdeluje informacije za vsak žeton posebej in uporablja nelinearne transformacije, ki so ključne za izrazno sposobnost modela.

Tipična implementacija FFN v Transformerju vključuje dve linearni transformaciji z aktivacijsko funkcijo (najpogosteje ReLU ali GELU) med njima. Matematično lahko ta proces izrazimo kot:

FFN(x) = Linear2(Activation(Linear1(x)))

Parametrizacija in optimizacija FFN

Z vidika arhitekture je ključni parameter FFN tako imenovana skrita dimenzija (hidden dimension), ki določa velikost vmesnega rezultata po prvi linearni transformaciji. Ta vrednost je običajno 4-krat večja od dimenzije vstavljanja, kar zagotavlja zadostno zmogljivost za zajemanje kompleksnih vzorcev. V sodobnih arhitekturah, kot sta PaLM ali Chinchilla, se eksperimentira z alternativnimi konfiguracijami, vključno z aktivacijami SwiGLU ali GeGLU in pristopi mešanic ekspertov (mixtures-of-experts), ki dodatno povečujejo učinkovitost komponent FFN.

Zanimiv vidik komponent FFN je, da predstavljajo večino parametrov sodobnih LLM – običajno 60–70 % vseh uteži. Zaradi tega so glavni kandidati za optimizacijske tehnike, kot so obrezovanje (pruning – odstranjevanje nepotrebnih uteži), kvantizacija ali aproksimacija nizkega ranga (low-rank approximation) v primerih, ko je treba zmanjšati pomnilniške zahteve modela.

Kvantizacija in druge tehnike optimizacije

Kvantizacija predstavlja ključno tehniko optimizacije, ki omogoča zmanjšanje pomnilniških zahtev LLM ob ohranjanju večine njihovih zmožnosti. Načelo temelji na pretvorbi parametrov modela iz visoke natančnosti (običajno 32-bitne vrednosti s plavajočo vejico) v nižjo natančnost (16-bitna, 8-bitna ali celo 4-bitna predstavitev). Pravilno implementirana kvantizacija lahko zmanjša velikost modela do 8-krat z minimalnim vplivom na kakovost odgovorov.

Sodobni pristopi, kot so GPTQ, AWQ ali QLoRA, implementirajo sofisticirane kvantizacijske algoritme, ki optimizirajo proces na podlagi statističnih lastnosti uteži in njihove pomembnosti za natančnost modela. Kvantizacija po učenju (Post-training quantization - PTQ) uporablja stiskanje na že naučenem modelu, medtem ko učenje z zavedanjem kvantizacije (quantization-aware training - QAT) vključuje kvantizacijske vidike neposredno v proces učenja.

Druge tehnike optimizacije

Poleg kvantizacije sodobni LLM uporabljajo številne druge tehnike optimizacije:

Model pruning - sistematično odstranjevanje manj pomembnih uteži ali celotnih komponent modela na podlagi njihovega vpliva na končno zmogljivost

Knowledge distillation - učenje manjšega modela 'učenca' (student), da posnema obnašanje večjega modela 'učitelja' (teacher)

Low-rank adaptace - prilagajanje izbranih komponent modela s pomočjo matrik nizkega ranga, kar omogoča učinkovito fino uravnavanje (fine-tuning) z minimalnimi pomnilniškimi zahtevami

Sparse attention - implementacija mehanizmov pozornosti, ki jim ni treba ocenjevati odnosov med vsemi žetoni, ampak se osredotočajo le na potencialno relevantne pare

Razdeljevanje modela in porazdeljena obdelava

Razdeljevanje modela (Model sharding) predstavlja tehniko porazdelitve parametrov in izračunov velikih jezikovnih modelov na več računskih naprav (GPU/TPU), kar omogoča učinkovito učenje in uvajanje modelov, ki so preveliki, da bi jih lahko namestili v pomnilnik enega pospeševalnika. Obstajajo štirje glavni pristopi k razdeljevanju, vsak s svojimi prednostmi in omejitvami.

Tensor Parallelism razdeli posamezne matrike in tenzorje na segmente, ki se obdelujejo hkrati na različnih napravah. Ta pristop zmanjšuje komunikacijske stroške, vendar zahteva visokohitrostne povezave med pospeševalniki.

Pipeline Parallelism porazdeli celotne plasti modela na različne naprave, ki obdelujejo podatke zaporedno kot cevovod (pipeline). Ta pristop učinkovito izkorišča pomnilnik, vendar lahko povzroči neuravnoteženo obremenitev naprav.

Napredne strategije porazdelitve

3D Parallelism združuje tenzorsko in cevovodno vzporednost (tensor and pipeline parallelism) s podatkovno vzporednostjo (data parallelism – obdelava različnih paketnih vzorcev na različnih napravah), kar omogoča maksimalno izkoriščenost razpoložljivih računskih virov pri učenju izjemno velikih modelov.

ZeRO (Zero Redundancy Optimizer) odpravlja redundanco pri shranjevanju stanj optimizatorja, gradientov in parametrov modela med grafičnimi procesorji (GPU). ZeRO-3, najnaprednejša različica, razdeli posamezne parametre modela tako, da vsak GPU shranjuje le majhen del celotnega modela, kar omogoča učenje modelov z več milijardami parametrov tudi na relativno omejenih strojnih sistemih.

Implementacija učinkovitih strategij razdeljevanja zahteva specializirana ogrodja, kot so DeepSpeed, Megatron-LM ali Mesh TensorFlow, ki avtomatizirajo kompleksne vidike porazdelitve in sinhronizacije. Ta ogrodja pogosto implementirajo dodatne optimizacije, kot so kontrolne točke gradientov (gradient checkpointing), učenje z mešano natančnostjo (mixed-precision training) ali ponovni izračun aktivacij (activation recomputation), za nadaljnje izboljšanje učinkovitosti in zmanjšanje pomnilniških zahtev.

Primerjava arhitektur sodobnih jezikovnih modelov

Arhitekturne razlike med sodobnimi LLM igrajo ključno vlogo pri njihovih zmožnostih, učinkovitosti in primernosti za različne aplikacije. Čeprav vsi uporabljajo osnovo Transformerja, obstajajo pomembne razlike v implementaciji posameznih komponent, ki vplivajo na njihovo zmogljivost in značilnosti.

GPT architektura (Generative Pre-trained Transformer) uporablja pristop samo z dekodirnikom (decoder-only) z avtoregresivnim generiranjem besedila, zaradi česar je idealna za generativne naloge. Novejše različice, kot je GPT-4, implementirajo napredne tehnike tako na ravni arhitekture (večje kontekstualno okno, večmodalni vhodi) kot na ravni učenja (RLHF, konstitucionalni pristopi).

PaLM architektura (Pathways Language Model) podjetja Google je uvedla inovacije, kot so aktivacija SwiGLU, pozornost z več poizvedbami (multi-query attention) in skalirani RoPE, kar je omogočilo učinkovitejše skaliranje na stotine milijard parametrov. Gemini, naslednik PaLM, je nadalje integriral večmodalne zmožnosti neposredno v arhitekturo modela.

Specializirane arhitekture in novi pristopi

Mešanice ekspertov (MoE), kot je Mixtral, predstavljajo hibridni pristop, kjer vsak žeton obdela le podmnožica specializiranih 'ekspertnih' mrež. Ta tehnika omogoča dramatično povečanje števila parametrov modela ob ohranjanju podobne računske zahtevnosti med sklepanjem.

State-space modely kot je Mamba, predstavljajo potencialno alternativo Transformerjem, ki združuje prednosti rekurenčnih in konvolucijskih pristopov z linearno skalabilnostjo glede na dolžino zaporedja. Ti modeli so še posebej obetavni za obdelavo zelo dolgih kontekstov (100K+ žetonov).

Pri izbiri arhitekture za določeno aplikacijo je treba upoštevati kompromise med natančnostjo, računsko učinkovitostjo, pomnilniškimi zahtevami in specifičnimi zmožnostmi, kot sta dolgoročni spomin ali večmodalna obdelava. Najnovejše raziskave se osredotočajo na hibridne pristope, ki združujejo prednosti različnih arhitektur, in tehnike, kot je generiranje, obogateno s pridobivanjem (retrieval-augmented generation), ki širijo zmožnosti modelov z eksplicitnim dostopom do zunanjega znanja.

Ekipa Explicaire
Ekipa programskih strokovnjakov Explicaire

Ta članek je pripravila raziskovalno-razvojna ekipa podjetja Explicaire, ki je specializirano za implementacijo in integracijo naprednih tehnoloških programskih rešitev, vključno z umetno inteligenco, v poslovne procese. Več o našem podjetju.