Dirbtinis intelektas
Dekoderiu pagrįsti didelių kalbų modeliai: visas vadovas
Dideli kalbų modeliai (LLM) sukėlė revoliuciją natūralios kalbos apdorojimo (NLP) srityje, pademonstruodamos nuostabius gebėjimus generuoti į žmogų panašų tekstą, atsakyti į klausimus ir padėti atlikti įvairias su kalba susijusias užduotis. Šių galingų modelių pagrindas yra Tik dekoderio transformatoriaus architektūra, originalios transformatoriaus architektūros variantas, pasiūlytas pradiniame darbe “Dėmesys yra viskas, ko jums reikia“, Vaswani ir kt.
Šiame išsamiame vadove mes išnagrinėsime vidinį dekoderiais pagrįstų LLM veikimą, gilinsimės į pagrindinius blokus, architektūrines naujoves ir įgyvendinimo detales, dėl kurių šie modeliai tapo NLP tyrimų ir taikomųjų programų priešakyje.
Transformatoriaus architektūra: atnaujinimas
Prieš pasineriant į dekoderiais pagrįstų LLM specifiką, būtina dar kartą peržiūrėti transformatorių architektūrą, pagrindą, ant kurio sukurti šie modeliai. Transformatorius pristatė naują sekos modeliavimo metodą, pasikliaujant vien dėmesio mechanizmais, kad būtų galima užfiksuoti ilgalaikes duomenų priklausomybes, nereikalaujant pasikartojančių ar konvoliucinių sluoksnių.
Originali transformatoriaus architektūra susideda iš dviejų pagrindinių komponentų: kodavimo ir dekoderio. Kodavimo įrenginys apdoroja įvesties seką ir generuoja kontekstualizuotą atvaizdą, kurį vėliau naudoja dekoderis, kad sukurtų išvesties seką. Ši architektūra iš pradžių buvo sukurta mašininio vertimo užduotims, kai kodavimo priemonė apdoroja įvesties sakinį šaltinio kalba, o dekoderis generuoja atitinkamą sakinį tiksline kalba.
Dėmesys sau: raktas į transformatoriaus sėkmę
Širdyje transformatorius slypi dėmesio į save mechanizmas – galinga technika, leidžianti modeliui pasverti ir kaupti informaciją iš skirtingų įvesties sekos pozicijų. Skirtingai nuo tradicinių sekos modelių, kurie nuosekliai apdoroja įvesties žetonus, dėmesys į save leidžia modeliui užfiksuoti priklausomybes tarp bet kurios žetonų poros, nepaisant jų padėties sekoje.
Dėmesio į save operaciją galima suskirstyti į tris pagrindinius etapus:
- Užklausos, rakto ir vertės prognozės: įvesties seka projektuojama į tris atskirus vaizdus: užklausos (Q), raktai (K) ir vertės (V). Šios projekcijos gaunamos padauginus įvestį iš išmoktų svorio matricų.
- Dėmesio balo skaičiavimas: kiekvienoje įvesties sekos pozicijoje dėmesio balai apskaičiuojami imant taškinę sandaugą tarp atitinkamo užklausos vektoriaus ir visų pagrindinių vektorių. Šie balai parodo kiekvienos pozicijos atitikimą dabartinei apdorojamai pozicijai.
- Svertinė verčių suma: dėmesio balai normalizuojami naudojant „softmax“ funkciją, o gauti dėmesio svoriai naudojami svertinei reikšmių vektorių sumai apskaičiuoti, sukuriant dabartinės padėties išvesties vaizdą.
Daugiagalvis dėmesys, dėmesio į save mechanizmo variantas, leidžia modeliui užfiksuoti įvairių tipų santykius, skaičiuojant dėmesio balus keliuose.vadovai“ lygiagrečiai, kiekvienas su savo užklausų, raktų ir vertės prognozių rinkiniu.
Architektūriniai variantai ir konfigūracijos
Nors pagrindiniai dekoderiais pagrįstų LLM principai išlieka nuoseklūs, mokslininkai ištyrė įvairius architektūrinius variantus ir konfigūracijas, kad pagerintų našumą, efektyvumą ir apibendrinimo galimybes. Šiame skyriuje mes pasigilinsime į skirtingus architektūrinius pasirinkimus ir jų pasekmes.
Architektūros tipai
Dekoderiais pagrįstus LLM galima iš esmės suskirstyti į tris pagrindinius tipus: kodavimo dekoderis, priežastinis dekoderis ir prefiksų dekoderis. Kiekvienam architektūros tipui būdingi skirtingi dėmesio modeliai.
Encoder-Decoder architektūra
Remiantis vanilės transformatoriaus modeliu, kodavimo-dekoderio architektūra susideda iš dviejų krūvų: kodavimo ir dekoderio. Kodavimo priemonė naudoja sukrautus kelių galvučių savęs dėmesio sluoksnius, kad užkoduotų įvesties seką ir generuotų latentinius vaizdus. Tada dekoderis atlieka kryžminį dėmesį į šias reprezentacijas, kad sukurtų tikslinę seką. Nors veiksmingos atliekant įvairias NLP užduotis, nedaug LLM, pvz Flan-T5, pritaikyti šią architektūrą.
Priežastinio dekoderio architektūra
Priežastinio dekoderio architektūroje yra vienakryptė dėmesio kaukė, leidžianti kiekvienam įvesties prieigos raktui atsižvelgti tik į ankstesnius prieigos raktus ir save. Tiek įvesties, tiek išvesties prieigos raktai apdorojami tame pačiame dekoderyje. Žymūs modeliai kaip GPT-1, GPT-2 ir GPT-3 yra sukurti remiantis šia architektūra, o GPT-3 demonstruoja puikias mokymosi kontekste galimybes. Daugelis LLM, įskaitant OPT, BLOOM ir Gopher, plačiai naudoja priežastinius dekoderius.
Priešdėlio dekoderio architektūra
Taip pat žinomas kaip nepriežastinis dekoderis, priešdėlių dekoderio architektūra modifikuoja priežastinių dekoderių maskavimo mechanizmą, kad būtų galima nukreipti dvikryptį dėmesį į priešdėlio prieigos raktus ir vienakryptį dėmesį į sugeneruotus prieigos raktus. Kaip ir kodavimo dekoderio architektūra, priešdėlių dekoderiai gali užkoduoti priešdėlių seką dviem kryptimis ir numatyti išvesties prieigos raktus automatiškai, naudodami bendrinamus parametrus. LLM, pagrįsti prefiksų dekoderiais, apima GLM130B ir U-PaLM.
Visi trys architektūros tipai gali būti išplėsti naudojant ekspertų mišinys (EM) mastelio keitimo technika, kuri retai suaktyvina kiekvienos įvesties neuroninio tinklo svorių poaibį. Šis metodas buvo taikomas tokiuose modeliuose kaip „Switch Transformer“ ir „GLaM“, nes didėja ekspertų skaičius arba bendras parametrų dydis rodo reikšmingus našumo patobulinimus.
Tik dekoderiui skirtas transformatorius: įtraukiantis į automatinę gamtą
Nors originali transformatoriaus architektūra buvo sukurta užduotims iš sekos į seką, pvz., mašininį vertimą, daugelis NLP užduočių, tokių kaip kalbos modeliavimas ir teksto generavimas, gali būti suformuluotos kaip autoregresyvios problemos, kai modelis generuoja vieną prieigos raktą vienu metu, atsižvelgiant į anksčiau sugeneruotų žetonų.
Įveskite tik dekoderio transformatorių – supaprastintą transformatoriaus architektūros variantą, kuriame išlaikomas tik dekoderio komponentas. Ši architektūra ypač gerai tinka autoregresinėms užduotims, nes ji generuoja išvesties žetonus po vieną, panaudodama anksčiau sugeneruotus žetonus kaip įvesties kontekstą.
Pagrindinis skirtumas tarp tik dekoderio transformatoriaus ir originalaus transformatoriaus dekoderio yra dėmesio į save mechanizme. Naudojant tik dekoderio nustatymą, dėmesio į save operacija yra modifikuojama, kad modelis negalėtų atsižvelgti į būsimus prieigos raktus, o tai yra savybė, žinoma kaip priežastinis ryšys. Tai pasiekiama naudojant metodą, vadinamą „užmaskuotu savęs dėmesiu“, kai dėmesio balai, atitinkantys būsimas pozicijas, nustatomi iki neigiamos begalybės, veiksmingai užmaskuojant juos atliekant „softmax“ normalizavimo veiksmą.
Dekoderiais pagrįstų LLM architektūriniai komponentai
Nors pagrindiniai dėmesio į save ir užmaskuoto dėmesio principai išlieka tie patys, šiuolaikiniai dekoderiais pagrįsti LLM įdiegė keletą architektūrinių naujovių, kad pagerintų našumą, efektyvumą ir apibendrinimo galimybes. Išnagrinėkime kai kuriuos pagrindinius komponentus ir metodus, naudojamus naujausiuose LLM.
Įvesties vaizdavimas
Prieš apdorodami įvesties seką, dekoderiu pagrįsti LLM taiko atpažinimo ir įterpimo metodus, kad neapdorotą tekstą paverstų modeliui tinkamu skaitiniu vaizdu.
Ženklinimas: Ženklinimo procesas paverčia įvesties tekstą į žetonų seką, kurią gali sudaryti žodžiai, požodžiai ar net atskiri simboliai, atsižvelgiant į naudojamą prieigos rakto strategiją. Populiarūs LLM atpažinimo būdai yra baitų poros kodavimas (BPE), sakinio piešinys ir Wordpiece. Šiais metodais siekiama rasti pusiausvyrą tarp žodyno dydžio ir vaizdavimo detalumo, leidžiant modeliui veiksmingai tvarkyti retus arba iš žodyno nepatenkamus žodžius.
Žetonų įterpimai: Po tokenizacijos kiekvienas atpažinimo ženklas susietas su tankiu vektoriniu vaizdu, vadinamu žetono įterpimu. Šie įterpimai išmokstami mokymo proceso metu ir užfiksuoja semantinius ir sintaksinius ryšius tarp žetonų.
Poziciniai įterpimai: Transformatorių modeliai apdoroja visą įvesties seką vienu metu, o pasikartojančiuose modeliuose nėra būdingos žetonų pozicijų sampratos. Kad būtų įtraukta padėties informacija, prie žetonų įterpimų pridedami padėties įterpimai, leidžiantys modeliui atskirti žetonus pagal jų pozicijas sekoje. Ankstyvieji LLM naudojo fiksuotus padėties įterpimus, pagrįstus sinusoidinėmis funkcijomis, o naujesni modeliai ištyrė išmokstamus padėties įterpimus arba alternatyvius padėties kodavimo būdus, pvz., Sukamąjį padėties įterpimą.
Daugiagalviai dėmesio blokai
Pagrindiniai dekoderių pagrindu veikiančių LLM blokai yra kelių galvų dėmesio sluoksniai, kurie atlieka anksčiau aprašytą užmaskuotą savęs dėmesio operaciją. Šie sluoksniai yra sukrauti kelis kartus, o kiekvienas sluoksnis rūpinasi ankstesnio sluoksnio išvestimi, todėl modelis gali užfiksuoti vis sudėtingesnes priklausomybes ir reprezentacijas.
Dėmesio vadovai: Kiekvienas kelių galvų dėmesio sluoksnis susideda iš kelių „dėmesio galvų“, kurių kiekviena turi savo užklausų, raktų ir vertės prognozių rinkinį. Tai leidžia modeliui vienu metu atsižvelgti į skirtingus įvesties aspektus, užfiksuojant įvairius santykius ir modelius.
Likusios jungtys ir sluoksnių normalizavimas: Siekdami palengvinti giliųjų tinklų mokymą ir sušvelninti nykstančią gradiento problemą, dekoderiais pagrįstos LLM naudoja liekamuosius ryšius ir sluoksnių normalizavimo metodus. Likusios jungtys prideda sluoksnio įvestį prie jo išvesties ir leidžia gradientams lengviau tekėti atgalinio dauginimo metu. Sluoksnio normalizavimas padeda stabilizuoti aktyvacijas ir nuolydžius, toliau gerinant treniruočių stabilumą ir našumą.
Sluoksniai, nukreipiantys pirmyn
Be kelių galvų dėmesio sluoksnių, dekoderio pagrindu veikiantys LLM apima ir pirmyn nukreiptus sluoksnius, kurie kiekvienai sekos vietai taiko paprastą nukreipimo į priekį neuroninį tinklą. Šie sluoksniai įveda netiesiškumą ir leidžia modeliui išmokti sudėtingesnius vaizdus.
Aktyvinimo funkcijos: aktyvinimo funkcijos pasirinkimas nukreipimo į priekį sluoksniuose gali labai paveikti modelio veikimą. Nors ankstesni LLM rėmėsi plačiai naudojamu ReLU aktyvavimu, naujesni modeliai naudojo sudėtingesnes aktyvinimo funkcijas, tokias kaip Gaussian Error Linear Unit (GELU) arba SwiGLU aktyvinimas, kurie parodė geresnį našumą.
Retas dėmesys ir efektyvūs transformatoriai
Nors dėmesio į save mechanizmas yra galingas, jis turi kvadratinį skaičiavimo sudėtingumą sekos ilgio atžvilgiu, todėl ilgų sekų skaičiavimas yra brangus. Siekiant išspręsti šį iššūkį, buvo pasiūlyta keletas metodų, skirtų sumažinti skaičiavimo ir atminties reikalavimus, susijusius su dėmesiu į save, o tai leidžia efektyviai apdoroti ilgesnes sekas.
Retas dėmesys: Reto dėmesio metodai, pvz., naudojami GPT-3 modelyje, selektyviai kreipiasi į pozicijų poaibį įvesties sekoje, o ne skaičiuoja visų pozicijų dėmesio balus. Tai gali žymiai sumažinti skaičiavimo sudėtingumą išlaikant pagrįstą našumą.
Stumdomas langas Dėmesio: Įdiegtas Mistral 7B modelyje, dėmesys slankiojančiam langui (SWA) yra paprastas, bet efektyvus būdas, apribojantis kiekvieno žetono dėmesį iki fiksuoto lango dydžio. Šis metodas išnaudoja transformatoriaus sluoksnių gebėjimą perduoti informaciją keliais sluoksniais, efektyviai padidindamas dėmesio trukmę be kvadratinio sudėtingumo visiško dėmesio sau.
Slenkančio buferio talpykla: Siekiant dar labiau sumažinti atminties poreikį, ypač ilgoms sekoms, Mistral 7B modelyje naudojama nuolatinė buferio talpykla. Ši technika išsaugo ir pakartotinai naudoja apskaičiuotus raktų ir reikšmių vektorius fiksuotam lango dydžiui, išvengiant perteklinių skaičiavimų ir sumažinant atminties naudojimą.
Sugrupuotos užklausos Dėmesio: LLaMA 2 modelyje pristatytas grupinis užklausos dėmesys (GQA) yra kelių užklausų dėmesio mechanizmo variantas, skirstantis dėmesio galvutes į grupes, kurių kiekviena turi bendrą raktų ir verčių matricą. Šiuo metodu pasiekiama pusiausvyra tarp kelių užklausų dėmesio efektyvumo ir standartinio dėmesio sau našumo, užtikrinamas geresnis išvadų laikas, išlaikant aukštos kokybės rezultatus.