Lielo valodu modeļu (LLM) arhitektūra

Transformeru arhitektūra: Mūsdienu LLM pamats

Transformeru arhitektūra ir fundamentāls sasniegums dabiskās valodas apstrādes jomā un veido pamatu visiem mūsdienu lielajiem valodu modeļiem (LLM). Atšķirībā no iepriekšējām pieejām, kas balstītas uz rekurentajiem (RNN) vai konvolucionālajiem (CNN) neironu tīkliem, transformeri izmanto tā saukto uzmanības mehānismu, kas ļauj efektīvi uztvert ilgtermiņa atkarības tekstā bez secīgas apstrādes. Šis arhitektūras pamats ir būtisks efektīvam valodu modeļu apmācības procesam.

Transformeru arhitektūras galvenā iezīme ir tās paralelizējamība – visus ievades secības marķierus var apstrādāt vienlaicīgi, kas ievērojami paātrina gan apmācību, gan secināšanu. Standarta transformeris sastāv no kodētāja (kodēšanas daļas) un dekodētāja (dekodēšanas daļas), turklāt mūsdienu LLM, piemēram, GPT, galvenokārt izmanto tikai dekodētāja arhitektūru, savukārt tādi modeļi kā BERT ir tikai kodētāji. T5 vai BART tipa modeļi izmanto pilnu kodētāja-dekodētāja arhitektūru.

Transformeru modeļu tehniskās specifikācijas

Mūsdienu LLM, piemēram, GPT-4, Claude vai Llama 2, ievieš dziļas transformeru arhitektūras ar desmitiem līdz simtiem slāņu. Katrs slānis (layer) apstrādā informāciju, izmantojot daudzgalvu uzmanības (multi-head attention) mehānismus un uz priekšu padotos neironu tīklus. Modeļa veiktspēju lielā mērā nosaka parametru (svaru) skaits, kas svārstās no dažiem miljardiem mazākos modeļos līdz simtiem miljardu vai pat triljoniem lielākajās sistēmās.

Pašuzmanības mehānismi un to ieviešana

Pašuzmanība (self-attention, dažreiz saukta arī par mērogotu skalāro reizinājumu uzmanību - scaled dot-product attention) ir transformeru arhitektūras galvenā sastāvdaļa. Šis mehānisms ļauj modelim novērtēt attiecības un atkarības starp visiem marķieriem secībā un dinamiski noteikt, kurām teksta daļām pievērst uzmanību, interpretējot konkrētu vārdu vai frāzi.

No tehniskā viedokļa pašuzmanība katru marķieri pārveido trīs dažādos vektoros: vaicājums (query - Q), atslēga (key - K) un vērtība (value - V). Sekojošais uzmanības aprēķins ietver Q un K matricu reizināšanu, rezultāta mērogošanu, softmax funkcijas piemērošanu, lai iegūtu uzmanības svarus, un visbeidzot reizināšanu ar V matricu, lai iegūtu kontekstuāli bagātinātu attēlojumu. Matemātiski šo procesu var izteikt ar vienādojumu:

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

Daudzgalvu uzmanība (Multi-head attention)

Mūsdienu LLM izmanto tā saukto daudzgalvu uzmanību (multi-head attention), kas ļauj modelim vienlaikus sekot dažāda veida attiecībām tekstā. Piemēram, viena uzmanības galva var sekot sintaktiskām attiecībām, kamēr cita koncentrējas uz semantisko līdzību vai koreferences attiecībām. Uzmanības galvu skaits ir svarīgs hiperparametrs, kas parasti svārstās no 12 mazākos modeļos līdz 96 vai vairāk lielākajās sistēmās. Katra galva darbojas zemākā dimensijā nekā sākotnējais iegultnes vektors, kas nodrošina skaitļošanas efektivitāti, saglabājot modeļa izteiksmīgumu.

Iegultnes dimensija un marķieru attēlojums

Iegultnes dimensija ir galvenais hiperparametrs, kas nosaka atsevišķu marķieru vektora attēlojuma lielumu valodu modelī. Mūsdienu LLM šī vērtība parasti svārstās no 768 mazākos modeļos līdz 12288 vai vairāk lielākajās sistēmās. Lielāka iegultnes dimensija ļauj uztvert smalkākas semantiskās nianses un sarežģītākas lingvistiskās attiecības, bet vienlaikus palielina skaitļošanas sarežģītību un modeļa parametru skaitu.

Marķieru pārveidošanas process par iegultnēm ietver uzmeklēšanas tabulu (lookup table), kur katram iespējamam marķierim atbilst unikāls iegultnes vektors. Šīs sākotnējās iegultnes tiek tālāk bagātinātas ar pozicionālo informāciju, izmantojot tā sauktās pozicionālās iegultnes, kuras var ieviest vai nu kā apmācāmus parametrus, vai izmantojot deterministiskas sinusoidālas funkcijas.

Iegultņu kontekstuālā kapacitāte

Svarīgs LLM iegultņu aspekts ir to kontekstuālā kapacitāte, t.i., spēja saglabāt informāciju par attiecībām starp marķieriem garās secībās. Mūsdienu modeļi, piemēram, GPT-4 vai Claude 3 Opus, sasniedz konteksta logus ar izmēru no 32K līdz 128K marķieriem, kas ļauj apstrādāt garus dokumentus, sarežģītas sarunas vai izsmalcinātas instrukcijas. Pareiza pozicionālo iegultņu ieviešana ir kritiska efektīvai konteksta loga mērogošanai, turklāt progresīvi modeļi izmanto tādas metodes kā RoPE (Rotary Position Embedding) vai ALiBi (Attention with Linear Biases), lai uzlabotu veiktspēju garās secībās.

Uz priekšu padotie neironu tīkli LLM

Uz priekšu padotie neironu tīkli (FFN) veido katra transformera slāņa otru galveno komponenti, kas seko pašuzmanības mehānismam. Kamēr uzmanība uztver attiecības starp marķieriem, FFN apstrādā informāciju katram marķierim atsevišķi un piemēro nelineāras transformācijas, kas ir būtiskas modeļa izteiksmīgumam.

Tipiska FFN ieviešana transformerī ietver divas lineāras transformācijas ar aktivācijas funkciju (visbiežāk ReLU vai GELU) starp tām. Matemātiski šo procesu var izteikt šādi:

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

FFN parametrizācija un optimizācija

No arhitektūras viedokļa galvenais FFN parametrs ir tā sauktā slēptā dimensija (hidden dimension), kas nosaka starprezultāta lielumu pēc pirmās lineārās transformācijas. Šī vērtība parasti ir 4 reizes lielāka nekā iegultnes dimensija, kas nodrošina pietiekamu kapacitāti sarežģītu modeļu uztveršanai. Mūsdienu arhitektūrās, piemēram, PaLM vai Chinchilla, tiek eksperimentēts ar alternatīvām konfigurācijām, ieskaitot SwiGLU vai GeGLU aktivācijas un ekspertu maisījumu (mixtures-of-experts) pieejas, kas vēl vairāk palielina FFN komponentu efektivitāti.

Interesants FFN komponentu aspekts ir tas, ka tās veido lielāko daļu mūsdienu LLM parametru – parasti 60-70% no visiem svariem. Tas padara tos par galvenajiem kandidātiem optimizācijas metodēm, piemēram, retināšanai (pruning - nevajadzīgo svaru noņemšana), kvantizācijai vai zema ranga aproksimācijai gadījumos, kad nepieciešams samazināt modeļa atmiņas prasības.

Modeļa kvantizācija un citas optimizācijas metodes

Kvantizācija ir galvenā optimizācijas metode, kas ļauj samazināt LLM atmiņas prasības, saglabājot lielāko daļu to spēju. Princips ir pārveidot modeļa parametrus no augstas precizitātes (parasti 32 bitu peldošā komata vērtības) uz zemāku precizitāti (16 bitu, 8 bitu vai pat 4 bitu attēlojums). Pareizi ieviesta kvantizācija var samazināt modeļa izmēru līdz pat 8 reizēm ar minimālu ietekmi uz atbilžu kvalitāti.

Mūsdienu pieejas, piemēram, GPTQ, AWQ vai QLoRA, ievieš sarežģītus kvantizācijas algoritmus, kas optimizē procesu, pamatojoties uz svaru statistiskajām īpašībām un to nozīmi modeļa precizitātei. Pēcapmācības kvantizācija (Post-training quantization - PTQ) piemēro kompresiju jau apmācītam modelim, savukārt kvantizāciju ņemoša apmācība (quantization-aware training - QAT) integrē kvantizācijas aspektus tieši apmācības procesā.

Citas optimizācijas metodes

Papildus kvantizācijai mūsdienu LLM izmanto vairākas citas optimizācijas metodes:

Modeļa retināšana (Model pruning) - sistemātiska mazāk svarīgu svaru vai veselu modeļa komponentu noņemšana, pamatojoties uz to ietekmi uz gala veiktspēju

Zināšanu destilācija (Knowledge distillation) - mazāka "skolēna" modeļa apmācība, lai tas atdarinātu lielāka "skolotāja" modeļa uzvedību

Zema ranga adaptācija (Low-rank adaptation) - atlasītu modeļa komponentu pielāgošana, izmantojot zema ranga matricas, kas ļauj efektīvi pielāgot (fine-tuning) modeli ar minimālām atmiņas prasībām

Retināta uzmanība (Sparse attention) - uzmanības mehānismu ieviešana, kuriem nav jānovērtē attiecības starp visiem marķieriem, bet tie koncentrējas tikai uz potenciāli relevantiem pāriem

Modeļa sadalīšana (sharding) un izkliedētā apstrāde

Modeļa sadalīšana (sharding) ir metode lielo valodu modeļu parametru un aprēķinu izplatīšanai vairākās skaitļošanas ierīcēs (GPU/TPU), kas ļauj efektīvi apmācīt un izvietot modeļus, kuri ir pārāk lieli, lai tos ievietotu viena akseleratora atmiņā. Pastāv četras galvenās sadalīšanas pieejas, katrai no tām ir savas priekšrocības un ierobežojumi.

Tensoru paralēlisms (Tensor Parallelism) sadala atsevišķas matricas un tensorus segmentos, kas tiek apstrādāti vienlaicīgi dažādās ierīcēs. Šī pieeja samazina komunikācijas pieskaitāmās izmaksas, bet prasa ātrdarbīgu savienojumu starp akseleratoriem.

Konveijera paralēlisms (Pipeline Parallelism) izplata veselus modeļa slāņus dažādās ierīcēs, kas apstrādā datus secīgi kā konveijerā. Šī pieeja efektīvi izmanto atmiņu, bet var izraisīt nevienmērīgu ierīču noslodzi.

Progresīvas izplatīšanas stratēģijas

3D paralēlisms (3D Parallelism) apvieno tensoru un konveijera paralēlismu ar datu paralēlismu (dažādu pakešu paraugu apstrāde dažādās ierīcēs), kas ļauj maksimāli izmantot pieejamos skaitļošanas resursus, apmācot ārkārtīgi lielus modeļus.

ZeRO (Zero Redundancy Optimizer) novērš redundanci optimizētāja stāvokļu, gradientu un modeļa parametru glabāšanā starp GPU. ZeRO-3, visprogresīvākais variants, sadala atsevišķus modeļa parametrus tā, ka katrs GPU glabā tikai nelielu daļu no kopējā modeļa, kas ļauj apmācīt vairāku miljardu parametru modeļus pat uz relatīvi ierobežotām aparatūras sistēmām.

Efektīvu sadalīšanas stratēģiju ieviešanai nepieciešami specializēti ietvari, piemēram, DeepSpeed, Megatron-LM vai Mesh TensorFlow, kas automatizē sarežģītus izplatīšanas un sinhronizācijas aspektus. Šie ietvari bieži ievieš papildu optimizācijas, piemēram, gradientu kontrolpunktus (gradient checkpointing), jauktas precizitātes apmācību (mixed-precision training) vai aktivācijas pārrēķināšanu (activation recomputation), lai vēl vairāk uzlabotu efektivitāti un samazinātu atmiņas prasības.

Mūsdienu valodu modeļu arhitektūru salīdzinājums

Arhitektūras atšķirības starp mūsdienu LLM spēlē galveno lomu to spējās, efektivitātē un piemērotībā dažādām lietojumprogrammām. Lai gan visi izmanto transformeru pamatu, pastāv būtiskas atšķirības atsevišķu komponentu ieviešanā, kas ietekmē to veiktspēju un īpašības.

GPT arhitektūra (Generative Pre-trained Transformer) izmanto tikai dekodētāja pieeju ar autoregresīvu teksta ģenerēšanu, kas padara to ideāli piemērotu ģeneratīviem uzdevumiem. Jaunākās versijas, piemēram, GPT-4, ievieš progresīvas metodes gan arhitektūras līmenī (lielāks konteksta logs, multimodālas ievades), gan apmācības līmenī (RLHF, konstitucionālās pieejas).

PaLM arhitektūra (Pathways Language Model) no Google ieviesa inovācijas, piemēram, SwiGLU aktivācijas, daudzvaicājumu uzmanību (multi-query attention) un mērogotu RoPE, kas ļāva efektīvāk mērogot līdz simtiem miljardu parametru. Gemini, PaLM pēctecis, turpināja integrēt multimodālās spējas tieši modeļa arhitektūrā.

Specializētās arhitektūras un jaunas pieejas

Ekspertu maisījumi (MoE), piemēram, Mixtral, pārstāv hibrīda pieeju, kur katru marķieri apstrādā tikai specializētu "ekspertu" tīklu apakškopa. Šī metode ļauj dramatiski palielināt modeļa parametru skaitu, saglabājot līdzīgu skaitļošanas sarežģītību secināšanas laikā.

Stāvokļa telpas modeļi (State-space models), piemēram, Mamba, ir potenciāla alternatīva transformeriem, kas apvieno rekurento un konvolucionālo pieeju priekšrocības ar lineāru mērogojamību attiecībā pret secības garumu. Šie modeļi ir īpaši daudzsološi ļoti garu kontekstu (100K+ marķieru) apstrādei.

Izvēloties arhitektūru konkrētai lietojumprogrammai, jāapsver kompromisi starp precizitāti, skaitļošanas efektivitāti, atmiņas prasībām un specifiskām spējām, piemēram, ilgtermiņa atmiņu vai multimodālu apstrādi. Jaunākie pētījumi koncentrējas uz hibrīda pieejām, kas apvieno dažādu arhitektūru stiprās puses, un metodēm, piemēram, izguves papildinātu ģenerēšanu (retrieval-augmented generation), kas paplašina modeļu spējas ar skaidru piekļuvi ārējām zināšanām.

Explicaire komanda
Explicaire programmatūras ekspertu komanda

Šo rakstu sagatavoja uzņēmuma Explicaire pētniecības un attīstības komanda, kas specializējas progresīvu tehnoloģisko programmatūras risinājumu, tostarp mākslīgā intelekta, ieviešanā un integrācijā uzņēmumu procesos. Vairāk par mūsu uzņēmumu.