Didžiųjų kalbos modelių (LLM) architektūra
- Transformerio architektūra: šiuolaikinių LLM pagrindas
- Savęs dėmesio mechanizmai ir jų įgyvendinimas
- Įterpimo dimensijos ir žetonų reprezentacija
- Tiesioginio perdavimo neuroniniai tinklai LLM
- Kvantavimas ir kitos optimizavimo technikos
- Modelio dalijimas ir paskirstytas apdorojimas
- Šiuolaikinių kalbos modelių architektūrų palyginimas
Transformerio architektūra: šiuolaikinių LLM pagrindas
Transformerio architektūra yra esminis proveržis natūralios kalbos apdorojimo srityje ir sudaro visų šiuolaikinių didžiųjų kalbos modelių (LLM) pagrindą. Skirtingai nuo ankstesnių metodų, pagrįstų rekurentiniais (RNN) arba konvoliuciniais (CNN) neuroniniais tinklais, transformeriai naudoja vadinamąjį dėmesio mechanizmą, kuris leidžia efektyviai užfiksuoti ilgalaikes priklausomybes tekste be sekvencinio apdorojimo. Šis architektūrinis pagrindas yra labai svarbus efektyviam kalbos modelių mokymo procesui.
Pagrindinė transformerio architektūros savybė yra jos paralelizavimas – visi įvesties sekos žetonai gali būti apdorojami vienu metu, o tai žymiai pagreitina mokymą ir išvadų darymą. Standartinis transformeris susideda iš koduotuvo (kodavimo dalies) ir dekoderio (dekodavimo dalies), o šiuolaikiniai LLM, tokie kaip GPT, pirmiausia naudoja tik dekoderio architektūrą, tuo tarpu modeliai, tokie kaip BERT, yra tik koduotuvo. Modelių tipai T5 arba BART naudoja visą koduotuvo-dekoderio architektūrą.
Transformerio modelių techninės specifikacijos
Šiuolaikiniai LLM, tokie kaip GPT-4, Claude ar Llama 2, įgyvendina gilias transformerio architektūras su dešimtimis ar net šimtais sluoksnių. Kiekvienas sluoksnis (layer) apdoroja informaciją naudodamas kelių galvučių dėmesio (multi-head attention) mechanizmus ir tiesioginio perdavimo neuroninius tinklus. Modelio našumas didžiąja dalimi priklauso nuo parametrų (svorių) skaičiaus, kuris svyruoja nuo vienetų milijardų mažesniuose modeliuose iki šimtų milijardų ar net trilijonų didžiausiose sistemose.
Savęs dėmesio mechanizmai ir jų įgyvendinimas
Savęs dėmesys (kartais vadinamas scaled dot-product attention) yra pagrindinė transformerio architektūros sudedamoji dalis. Šis mechanizmas leidžia modeliui įvertinti ryšius ir priklausomybes tarp visų sekos žetonų ir dinamiškai nustatyti, į kurias teksto dalis sutelkti dėmesį interpretuojant konkretų žodį ar frazę.
Techniniu požiūriu savęs dėmesys kiekvieną žetoną transformuoja į tris skirtingus vektorius: užklausą (Q), raktą (K) ir reikšmę (V). Vėlesnis dėmesio skaičiavimas apima Q ir K matricų daugybą, rezultato mastelio keitimą, softmax funkcijos taikymą dėmesio svoriams gauti ir galiausiai daugybą su V matrica, kad būtų gauta kontekstu praturtinta reprezentacija. Matematiškai šį procesą galima išreikšti lygtimi:
Attention(Q, K, V) = softmax(QKT / √dk)V
Kelių galvučių dėmesys (Multi-head attention)
Šiuolaikiniai LLM naudoja vadinamąjį kelių galvučių dėmesį (multi-head attention), kuris leidžia modeliui vienu metu stebėti įvairių tipų ryšius tekste. Pavyzdžiui, viena dėmesio galvutė gali stebėti sintaksinius ryšius, o kita sutelkti dėmesį į semantinį panašumą ar koreferencinius ryšius. Dėmesio galvučių skaičius yra svarbus hiperparametras, kuris paprastai svyruoja nuo 12 mažesniuose modeliuose iki 96 ar daugiau didžiausiose sistemose. Kiekviena galvutė veikia mažesnėje dimensijoje nei pradinis įterpimo vektorius, o tai užtikrina skaičiavimo efektyvumą išlaikant modelio išraiškingumą.
Įterpimo dimensijos ir žetonų reprezentacija
Įterpimo dimensija yra pagrindinis hiperparametras, nustatantis atskirų žetonų vektorinės reprezentacijos dydį kalbos modelyje. Šiuolaikiniuose LLM se ši reikšmė paprastai svyruoja nuo 768 mažesniuose modeliuose iki 12288 ar daugiau didžiausiose sistemose. Didesnė įterpimo dimensija leidžia užfiksuoti subtilesnius semantinius niuansus ir sudėtingesnius lingvistinius ryšius, tačiau tuo pačiu padidina skaičiavimo sudėtingumą ir modelio parametrų skaičių.
Žetonų konvertavimo į įterpimus procesas apima paieškos lentelę (lookup table), kurioje kiekvienam galimam žetonui priskiriamas unikalus įterpimo vektorius. Šie pradiniai įterpimai toliau praturtinami pozicine informacija naudojant vadinamuosius pozicinius įterpimus, kurie gali būti įgyvendinti kaip mokomi parametrai arba naudojant deterministines sinusoidines funkcijas.
Įterpimų kontekstinė talpa
Svarbus LLM įterpimų aspektas yra jų kontekstinė talpa, t. y. gebėjimas išsaugoti informaciją apie ryšius tarp žetonų ilgose sekose. Šiuolaikiniai modeliai, tokie kaip GPT-4 ar Claude 3 Opus, pasiekia konteksto langus nuo 32K iki 128K žetonų, o tai leidžia apdoroti ilgus dokumentus, sudėtingus pokalbius ar sudėtingas instrukcijas. Teisingas pozicinių įterpimų įgyvendinimas yra labai svarbus efektyviam konteksto lango mastelio keitimui, o pažangūs modeliai naudoja tokias technikas kaip RoPE (Rotary Position Embedding) ar ALiBi (Attention with Linear Biases), siekiant pagerinti našumą ilgose sekose.
Tiesioginio perdavimo neuroniniai tinklai LLM
Tiesioginio perdavimo neuroniniai tinklai (FFN) sudaro antrąją pagrindinę kiekvieno transformerio sluoksnio dalį, einančią po savęs dėmesio mechanizmo. Kol dėmesys fiksuoja ryšius tarp žetonų, FFN apdoroja informaciją kiekvienam žetonui atskirai ir taiko netiesines transformacijas, kurios yra labai svarbios modelio išraiškingumui.
Tipinis FFN įgyvendinimas transformeryje apima dvi tiesines transformacijas su aktyvacijos funkcija (dažniausiai ReLU arba GELU) tarp jų. Matematiškai šį procesą galima išreikšti taip:
FFN(x) = Linear2(Activation(Linear1(x)))
FFN parametrizavimas ir optimizavimas
Architektūros požiūriu pagrindinis FFN parametras yra vadinamoji paslėptoji dimensija (hidden dimension), kuri nustato tarpinio rezultato dydį po pirmosios tiesinės transformacijos. Ši reikšmė paprastai yra 4 kartus didesnė už įterpimo dimensiją, o tai užtikrina pakankamą talpą sudėtingiems šablonams užfiksuoti. Šiuolaikinėse architektūrose, tokiose kaip PaLM ar Chinchilla, eksperimentuojama su alternatyviomis konfigūracijomis, įskaitant SwiGLU ar GeGLU aktyvacijas ir ekspertų mišinio (mixtures-of-experts) metodus, kurie dar labiau padidina FFN komponentų efektyvumą.
Įdomus FFN komponentų aspektas yra tai, kad jie sudaro didžiąją dalį šiuolaikinių LLM parametrų – paprastai 60–70 % visų svorių. Dėl to jie tampa pagrindiniais kandidatais optimizavimo technikoms, tokioms kaip genėjimas (pruning, nereikalingų svorių pašalinimas), kvantavimas ar žemo rango aproksimacija (low-rank approximation), kai reikia sumažinti modelio atminties poreikius.
Kvantavimas ir kitos optimizavimo technikos
Kvantavimas yra pagrindinė optimizavimo technika, leidžianti sumažinti LLM atminties poreikius išlaikant daugumą jų galimybių. Principas pagrįstas modelio parametrų konvertavimu iš didelio tikslumo (paprastai 32 bitų slankiojo kablelio reikšmių) į mažesnį tikslumą (16 bitų, 8 bitų ar net 4 bitų reprezentaciją). Tinkamai įgyvendintas kvantavimas gali sumažinti modelio dydį iki 8 kartų su minimaliu poveikiu atsakymų kokybei.
Šiuolaikiniai metodai, tokie kaip GPTQ, AWQ ar QLoRA, įgyvendina sudėtingus kvantavimo algoritmus, kurie optimizuoja procesą remiantis statistinėmis savybėmis svorių ir jų svarba modelio tikslumui. Kvantavimas po mokymo (Post-training quantization, PTQ) taiko kompresiją jau apmokytam modeliui, o kvantavimą palaikantis mokymas (quantization-aware training, QAT) integruoja kvantavimo aspektus tiesiai į mokymo procesą.
Kitos optimizavimo technikos
Be kvantavimo, šiuolaikiniai LLM naudoja daugybę kitų optimizavimo technikų:
Modelio genėjimas (Model pruning) – sistemingas mažiau svarbių svorių ar ištisų modelio komponentų šalinimas, atsižvelgiant į jų įtaką galutiniam našumui
Žinių distiliavimas (Knowledge distillation) – mažesnio „studento“ modelio mokymas taip, kad jis imituotų didesnio „mokytojo“ modelio elgseną
Žemo rango adaptacija (Low-rank adaptation) – pasirinktų modelio komponentų modifikavimas naudojant žemo rango matricas, kas leidžia efektyviai derinti (fine-tuning) su minimaliais atminties poreikiais
Retas dėmesys (Sparse attention) – dėmesio mechanizmų įgyvendinimas, kuriems nereikia vertinti ryšių tarp visų žetonų, o sutelkiamas dėmesys tik į potencialiai svarbias poras
Modelio dalijimas ir paskirstytas apdorojimas
Modelio dalijimas (Model sharding) yra didžiųjų kalbos modelių parametrų ir skaičiavimų paskirstymo keliems skaičiavimo įrenginiams (GPU/TPU) technika, leidžianti efektyviai mokyti ir diegti modelius, kurie yra per dideli, kad tilptų vieno greitintuvo atmintyje. Yra keturi pagrindiniai dalijimo metodai, kiekvienas turintis savų privalumų ir apribojimų.
Tensorinis paralelizmas (Tensor Parallelism) padalija atskiras matricas ir tenzorius į segmentus, kurie apdorojami vienu metu skirtinguose įrenginiuose. Šis metodas sumažina komunikacijos pridėtines išlaidas, tačiau reikalauja didelės spartos ryšio tarp greitintuvų.
Konvejerinis paralelizmas (Pipeline Parallelism) paskirsto ištisus modelio sluoksnius skirtingiems įrenginiams, kurie apdoroja duomenis nuosekliai kaip konvejerį. Šis metodas efektyviai naudoja atmintį, tačiau gali lemti netolygų įrenginių apkrovimą.
Pažangios paskirstymo strategijos
3D paralelizmas (3D Parallelism) sujungia tensorinį ir konvejerinį paralelizmus su duomenų paralelizmu (skirtingų paketų pavyzdžių apdorojimas skirtinguose įrenginiuose), o tai leidžia maksimaliai išnaudoti turimus skaičiavimo išteklius mokant itin didelius modelius.
ZeRO (Zero Redundancy Optimizer) pašalina perteklių saugant optimizatoriaus būsenas, gradientus ir modelio parametrus visuose GPU. ZeRO-3, pažangiausia versija, padalija atskirus modelio parametrus taip, kad kiekvienas GPU saugo tik nedidelę viso modelio dalį, o tai leidžia mokyti kelių milijardų parametrų modelius net ir santykinai ribotose aparatinės įrangos sistemose.
Efektyvių dalijimo strategijų įgyvendinimas reikalauja specializuotų sistemų, tokių kaip DeepSpeed, Megatron-LM ar Mesh TensorFlow, kurios automatizuoja sudėtingus paskirstymo ir sinchronizavimo aspektus. Šios sistemos dažnai įgyvendina papildomas optimizacijas, tokias kaip gradientų kontroliniai taškai (gradient checkpointing), mišraus tikslumo mokymas (mixed-precision training) ar aktyvacijų perskaičiavimas (activation recomputation), siekiant dar labiau pagerinti efektyvumą ir sumažinti atminties poreikius.
Šiuolaikinių kalbos modelių architektūrų palyginimas
Architektūriniai skirtumai tarp šiuolaikinių LLM vaidina pagrindinį vaidmenį jų galimybėse, efektyvume ir tinkamume įvairioms programoms. Nors visi jie naudoja transformerio pagrindą, yra reikšmingų atskirų komponentų įgyvendinimo variantų, kurie daro įtaką jų našumui ir charakteristikoms.
GPT architektūra (Generative Pre-trained Transformer) naudoja tik dekoderio metodą su autoregresiniu teksto generavimu, todėl ji idealiai tinka generatyvinėms užduotims. Naujesnės versijos, tokios kaip GPT-4, įgyvendina pažangias technikas tiek architektūros lygmeniu (didesnis konteksto langas, multimodalinės įvestys), tiek mokymo lygmeniu (RLHF, konstituciniai metodai).
PaLM architektūra (Pathways Language Model) iš Google pristatė naujoves, tokias kaip SwiGLU aktyvacijos, kelių užklausų dėmesys (multi-query attention) ir mastelio keičiamas RoPE, o tai leido efektyviau keisti mastelį iki šimtų milijardų parametrų. Gemini, PaLM įpėdinis, toliau integravo multimodelines galimybes tiesiai į modelio architektūrą.
Specializuotos architektūros ir nauji metodai
Ekspertų mišiniai (MoE) tokie kaip Mixtral, yra hibridinis metodas, kai kiekvienas žetonas apdorojamas tik specializuotų „ekspertų“ tinklų poaibiu. Ši technika leidžia žymiai padidinti modelio parametrų skaičių išlaikant panašų skaičiavimo sudėtingumą išvadų darymo metu.
Būsenos erdvės modeliai (State-space models) tokie kaip Mamba, yra potenciali alternatyva transformeriams, sujungianti rekurentinių ir konvoliucinių metodų privalumus su tiesiniu mastelio keitimu atsižvelgiant į sekos ilgį. Šie modeliai yra ypač perspektyvūs apdorojant labai ilgus kontekstus (100K+ žetonų).
Renkantis architektūrą konkrečiai programai, reikia atsižvelgti į kompromisus tarp tikslumo, skaičiavimo efektyvumo, atminties poreikių ir specifinių galimybių, tokių kaip ilgalaikė atmintis ar multimodalinės apdorojimas. Naujausi tyrimai sutelkti į hibridinius metodus, jungiančius skirtingų architektūrų stipriąsias puses, ir technikas, tokias kaip paieška papildytas generavimas (retrieval-augmented generation), kurios praplečia modelių galimybes suteikiant aiškią prieigą prie išorinių žinių.