Mākslīgais intelekts
Lielo valodu modeļi, kuru pamatā ir dekodētājs: pilnīga rokasgrāmata
Lieli valodu modeļi (LLM) ir mainījuši dabiskās valodas apstrādes (NLP) jomu, demonstrējot ievērojamas spējas ģenerēt cilvēkiem līdzīgu tekstu, atbildēt uz jautājumiem un palīdzēt veikt plašu ar valodu saistītu uzdevumu klāstu. Šo jaudīgo modeļu pamatā ir Tikai dekodera transformatora arhitektūra, sākotnējās transformatora arhitektūras variants, kas piedāvāts pamatrakstā "Uzmanība ir viss, kas jums nepieciešams” autors: Vaswani et al.
Šajā visaptverošajā rokasgrāmatā mēs izpētīsim uz dekodētāju balstītu LLM iekšējo darbību, iedziļinoties pamatelementos, arhitektūras jauninājumos un ieviešanas detaļās, kas ir izvirzījušas šos modeļus NLP izpētes un lietojumu priekšplānā.
Transformatora arhitektūra: atsvaidzinājums
Pirms iedziļināties dekoderu LLM specifikā, ir svarīgi vēlreiz pārskatīt transformatora arhitektūru, kas ir pamats, uz kura šie modeļi ir veidoti. Transformators ieviesa jaunu pieeju secību modelēšanai, paļaujoties tikai uz uzmanības mehānismiem, lai attēlotu liela attāluma atkarības datos, bez nepieciešamības pēc atkārtotiem vai konvolucionāliem slāņiem.
Sākotnējā transformatora arhitektūra sastāv no diviem galvenajiem komponentiem: kodētāja un dekodētāja. Kodētājs apstrādā ievades secību un ģenerē kontekstualizētu attēlojumu, ko pēc tam patērē dekodētājs, lai izveidotu izvades secību. Šī arhitektūra sākotnēji tika izstrādāta mašīntulkošanas uzdevumiem, kur kodētājs apstrādā ievades teikumu avota valodā, bet dekodētājs ģenerē atbilstošo teikumu mērķa valodā.
Pašuzmanība: Transformatora panākumu atslēga
Centrā transformators slēpjas pašapziņas mehānisms — jaudīgs paņēmiens, kas ļauj modelim nosvērt un apkopot informāciju no dažādām ievades secības pozīcijām. Atšķirībā no tradicionālajiem secību modeļiem, kas apstrādā ievades marķierus secīgi, pašapziņa ļauj modelim uztvert atkarības starp jebkuru marķieru pāri neatkarīgi no to atrašanās vietas secībā.
Pašuzmanības darbību var iedalīt trīs galvenajos posmos:
- Vaicājumu, atslēgu un vērtību prognozes: ievades secība tiek projicēta trīs atsevišķos attēlojumos: vaicājumi (Q), atslēgas (K) un vērtības (V). Šīs projekcijas iegūst, reizinot ievadi ar apgūtajām svara matricām.
- Uzmanības rādītāja aprēķināšana: katrai pozīcijai ievades secībā uzmanības rādītāji tiek aprēķināti, ņemot punktu reizinājumu starp atbilstošo vaicājuma vektoru un visiem atslēgas vektoriem. Šie rādītāji atspoguļo katras pozīcijas atbilstību pašreizējai pozīcijai, kas tiek apstrādāta.
- Vērtību svērtā summa: Uzmanības rādītāji tiek normalizēti, izmantojot softmax funkciju, un iegūtie uzmanības svērumi tiek izmantoti, lai aprēķinātu vērtību vektoru svērto summu, veidojot pašreizējās pozīcijas izvades attēlojumu.
Vairāku galvu uzmanība, sevis uzmanības mehānisma variants, ļauj modelim fiksēt dažāda veida attiecības, aprēķinot uzmanības rādītājus vairākos "galvas” paralēli, katrs ar savu vaicājumu, atslēgu un vērtību prognožu kopu.
Arhitektūras varianti un konfigurācijas
Lai gan uz dekodētāju balstītu LLM pamatprincipi joprojām ir konsekventi, pētnieki ir izpētījuši dažādus arhitektūras variantus un konfigurācijas, lai uzlabotu veiktspēju, efektivitāti un vispārināšanas iespējas. Šajā sadaļā mēs iedziļināsimies dažādās arhitektūras izvēlē un to sekās.
Arhitektūras veidi
Uz dekodētāju balstītus LLM var plaši iedalīt trīs galvenajos veidos: kodētājs-dekodētājs, cēloņsakarības dekodētājs un prefiksu dekodētājs. Katram arhitektūras veidam ir atšķirīgi uzmanības modeļi.
Kodētāja-dekodētāja arhitektūra
Pamatojoties uz vaniļas transformatora modeli, kodētāja-dekodētāja arhitektūra sastāv no diviem skursteņiem: kodētāja un dekodētāja. Kodētājs izmanto vairāku galviņu pašatvēršanas slāņus, lai kodētu ievades secību un ģenerētu latentus attēlus. Pēc tam dekodētājs veic savstarpēju uzmanību šiem attēlojumiem, lai ģenerētu mērķa secību. Lai gan tas ir efektīvs dažādos NLP uzdevumos, daži LLM, piemēram, Flan-T5, pieņem šo arhitektūru.
Cēloņa dekodētāja arhitektūra
Cēloņsakarības dekodētāja arhitektūrā ir iekļauta vienvirziena uzmanības maska, kas ļauj katram ievades marķierim aplūkot tikai iepriekšējos marķierus un sevi. Gan ievades, gan izvades marķieri tiek apstrādāti vienā dekodētājā. Ievērojami modeļi, piemēram GPT-1, GPT-2 un GPT-3 ir veidoti uz šīs arhitektūras, un GPT-3 demonstrē ievērojamas konteksta mācīšanās iespējas. Daudzi LLM, tostarp OPT, BLOOM un Gopher, ir plaši pieņēmuši cēloņsakarības dekodētājus.
Prefiksu dekodētāja arhitektūra
Prefiksu dekodētāja arhitektūra, kas pazīstama arī kā bezcēloņa dekodētājs, maina cēloņsakarību dekodētāju maskēšanas mehānismu, lai nodrošinātu divvirzienu uzmanību pār prefiksu marķieriem un vienvirziena uzmanību ģenerētajiem marķieriem. Tāpat kā kodētāja-dekodētāja arhitektūra, prefiksu dekodētāji var kodēt prefiksu secību divvirzienu veidā un automātiski prognozēt izvades marķierus, izmantojot koplietotus parametrus. LLM, kuru pamatā ir prefiksu dekoderi, ietver GLM130B un U-PaLM.
Visus trīs arhitektūras veidus var paplašināt, izmantojot ekspertu maisījums (EM) mērogošanas paņēmiens, kas reti aktivizē neironu tīkla svaru apakškopu katrai ievadei. Šī pieeja ir izmantota tādos modeļos kā Switch Transformer un GLaM, palielinot ekspertu skaitu vai kopējo parametru lielumu, kas liecina par ievērojamiem veiktspējas uzlabojumiem.
Transformators tikai dekodētājam: autoregresīvās dabas uztvere
Lai gan sākotnējā transformatora arhitektūra tika izstrādāta uzdevumiem no secības uz secību, piemēram, mašīntulkošanai, daudzus NLP uzdevumus, piemēram, valodas modelēšanu un teksta ģenerēšanu, var formulēt kā autoregresīvas problēmas, kur modelis vienlaikus ģenerē vienu marķieri, kas ir atkarīgs no iepriekš ģenerētie marķieri.
Ievadiet tikai dekodētāja transformatoru, kas ir vienkāršots transformatora arhitektūras variants, kurā tiek saglabāts tikai dekodētāja komponents. Šī arhitektūra ir īpaši piemērota autoregresīviem uzdevumiem, jo tā ģenerē izvades marķierus pa vienam, izmantojot iepriekš ģenerētos marķierus kā ievades kontekstu.
Galvenā atšķirība starp tikai dekodera transformatoru un oriģinālo transformatora dekodētāju ir pašapziņas mehānismā. Tikai dekodētājam paredzētajā iestatījumā pašatvēršanas darbība tiek modificēta, lai neļautu modelim ņemt vērā turpmākos marķierus — šo īpašību sauc par cēloņsakarību. Tas tiek panākts, izmantojot paņēmienu, ko sauc par "maskētu sevis uzmanību", kur uzmanības rādītāji, kas atbilst nākotnes pozīcijām, tiek iestatīti uz negatīvu bezgalību, efektīvi maskējot tos softmax normalizācijas soļa laikā.
Uz dekodētāju balstītu LLM arhitektūras komponenti
Lai gan uzmanības uz sevi un maskētas pašapziņas pamatprincipi paliek nemainīgi, mūsdienīgi uz dekodētājiem balstīti LLM ir ieviesuši vairākus arhitektūras jauninājumus, lai uzlabotu veiktspēju, efektivitāti un vispārināšanas iespējas. Izpētīsim dažus galvenos komponentus un paņēmienus, ko izmanto vismodernākajās LLM.
Ievades attēlojums
Pirms ievades secības apstrādes uz dekodētāju balstītie LLM izmanto marķieru un iegulšanas paņēmienus, lai pārveidotu neapstrādātu tekstu modelim piemērotā skaitliskā attēlojumā.
Tokenizācija: marķieru veidošanas process pārvērš ievades tekstu marķieru secībā, kas var būt vārdi, apakšvārdi vai pat atsevišķas rakstzīmes atkarībā no izmantotās marķiera stratēģijas. Populāras LLM marķieru metodes ietver baitu pāru kodējumu (BPE), SentencePiece un WordPiece. Šo metožu mērķis ir panākt līdzsvaru starp vārdu krājuma lielumu un attēlojuma precizitāti, ļaujot modelim efektīvi apstrādāt retus vai vārdu krājumā neietilpstošus vārdus.
Tokenu iegulšana: pēc marķiera katra marķiera tiek kartēta uz blīvu vektora attēlojumu, ko sauc par marķiera iegulšanu. Šīs iegulšanas tiek apgūtas apmācības procesā un uztver semantiskās un sintaktiskās attiecības starp marķieriem.
Pozicionālās iegulšanas: Transformatoru modeļi vienlaikus apstrādā visu ievades secību, un tiem trūkst raksturīgā jēdziena par marķiera pozīcijām, kas atrodas atkārtotos modeļos. Lai iekļautu pozīcijas informāciju, marķiera iegulumiem tiek pievienoti pozicionālie ieguljumi, ļaujot modelim atšķirt marķierus, pamatojoties uz to pozīcijām secībā. Agrīnās LLM izmantoja fiksētas pozicionālas iegulšanas, kuru pamatā ir sinusoidālās funkcijas, savukārt jaunākajos modeļos ir pētītas apgūstamas pozicionālās iegulšanas vai alternatīvas pozicionālās kodēšanas metodes, piemēram, rotācijas pozicionālās iegulšanas.
Vairāku galvu uzmanības bloki
Uz dekodētāju balstītu LLM galvenie elementi ir vairāku galviņu uzmanības slāņi, kas veic iepriekš aprakstīto maskēto pašapziņas darbību. Šie slāņi tiek sakrauti vairākas reizes, un katrs slānis izmanto iepriekšējā slāņa izvadi, ļaujot modelim uztvert arvien sarežģītākas atkarības un attēlojumus.
Uzmanības vadītāji: katrs vairāku galviņu uzmanības slānis sastāv no vairākām “uzmanības galvām”, katrai no tām ir sava vaicājumu, atslēgu un vērtību projekciju kopa. Tas ļauj modelim vienlaikus aplūkot dažādus ievades aspektus, tverot dažādas attiecības un modeļus.
Atlikušie savienojumi un slāņu normalizācija: Lai atvieglotu dziļo tīklu apmācību un mazinātu izzūdošo gradienta problēmu, uz dekoderu balstītie LLM izmanto atlikušos savienojumus un slāņu normalizācijas metodes. Atlikušie savienojumi pievieno slāņa ievadi tā izvadei, ļaujot gradientiem vieglāk plūst atpakaļpavairošanas laikā. Slāņu normalizēšana palīdz stabilizēt aktivizācijas un gradientus, vēl vairāk uzlabojot treniņa stabilitāti un veiktspēju.
Padeves slāņi
Papildus vairāku galviņu uzmanības slāņiem, uz dekoderu balstītajos LLM ir iekļauti uz priekšu vērsti slāņi, kas katrai secības pozīcijai izmanto vienkāršu pārsūtīšanas neironu tīklu. Šie slāņi ievieš nelinearitāti un ļauj modelim apgūt sarežģītākus attēlojumus.
Aktivizācijas funkcijas: Aktivizācijas funkcijas izvēle padeves uz priekšu slāņos var būtiski ietekmēt modeļa veiktspēju. Kamēr agrāk LLM paļāvās uz plaši izmantoto ReLU aktivizēšanu, jaunākie modeļi ir pieņēmuši sarežģītākas aktivizēšanas funkcijas, piemēram, Gausa kļūdu lineāro vienību (GELU) vai SwiGLU aktivizēšanu, kas ir uzrādījušas uzlabotu veiktspēju.
Reta uzmanība un efektīvi transformatori
Lai gan pašapziņas mehānisms ir spēcīgs, tam ir kvadrātiskā skaitļošanas sarežģītība attiecībā uz secības garumu, padarot to skaitļošanas ziņā dārgu garām sekvencēm. Lai risinātu šo problēmu, ir ierosināti vairāki paņēmieni, lai samazinātu skaitļošanas un atmiņas prasības, kas saistītas ar pašapziņu, ļaujot efektīvi apstrādāt garākas sekvences.
Reta uzmanība: mazas uzmanības metodes, piemēram, GPT-3 modelī izmantotās metodes, selektīvi izmanto pozīciju apakškopu ievades secībā, nevis aprēķina uzmanības rādītājus visām pozīcijām. Tas var ievērojami samazināt skaitļošanas sarežģītību, vienlaikus saglabājot saprātīgu veiktspēju.
Bīdāms logs Uzmanību: Ieviests Mistral 7B modelī, bīdāmā loga uzmanība (SWA) ir vienkāršs, bet efektīvs paņēmiens, kas ierobežo katra marķiera uzmanības ilgumu līdz noteiktam loga izmēram. Šī pieeja izmanto transformatora slāņu spēju pārraidīt informāciju vairākos slāņos, efektīvi palielinot uzmanības noturību bez kvadrātiskās sarežģītības, kas saistīta ar pilnīgu pašapziņu.
Ritošā bufera kešatmiņa: Lai vēl vairāk samazinātu atmiņas prasības, īpaši garām sekvencēm, Mistral 7B modelī tiek izmantota mainīga bufera kešatmiņa. Šis paņēmiens saglabā un atkārtoti izmanto aprēķinātos atslēgu un vērtību vektorus fiksētam loga izmēram, izvairoties no liekiem aprēķiniem un samazinot atmiņas izmantošanu.
Grupēts vaicājums Uzmanību: LLaMA 2 modelī ieviestā grupētā vaicājuma uzmanība (GQA) ir vairāku vaicājumu uzmanības mehānisma variants, kas sadala uzmanības galviņas grupās, katrai grupai ir kopīga atslēgas un vērtību matrica. Šī pieeja nodrošina līdzsvaru starp vairāku vaicājumu uzmanības efektivitāti un standarta pašapziņas veiktspēju, nodrošinot uzlabotus secinājumu veikšanas laikus, vienlaikus saglabājot augstas kvalitātes rezultātus.