Umjetna inteligencija
Veliki jezični modeli temeljeni na dekoderu: Potpuni vodič
Veliki jezični modeli (LLM) napravili su revoluciju u području obrade prirodnog jezika (NLP) pokazujući izvanredne sposobnosti u generiranju teksta nalik ljudskom, odgovaranju na pitanja i pomaganju u širokom rasponu zadataka povezanih s jezikom. U srži ovih snažnih modela leži arhitektura transformatora samo za dekoder, varijanta izvorne arhitekture transformatora predložena u temeljnom radu "Pažnja je sve što trebate” autora Vaswani et al.
U ovom sveobuhvatnom vodiču istražit ćemo unutarnje funkcioniranje LLM-ova temeljenih na dekoderu, zalazeći u temeljne građevne blokove, arhitektonske inovacije i detalje implementacije koji su ove modele doveli do čela NLP istraživanja i aplikacija.
Arhitektura transformatora: Osvježenje
Prije nego što zaronite u specifičnosti LLM-ova temeljenih na dekoderu, bitno je ponovno razmotriti arhitekturu transformatora, temelj na kojem su ti modeli izgrađeni. Transformator je uveo novi pristup modeliranju sekvenci, oslanjajući se isključivo na mehanizme pažnje za hvatanje dugotrajnih ovisnosti u podacima, bez potrebe za ponavljajućim ili konvolucijskim slojevima.
Izvorna arhitektura transformatora sastoji se od dvije glavne komponente: kodera i dekodera. Koder obrađuje ulaznu sekvencu i generira kontekstualiziranu reprezentaciju, koju dekoder zatim koristi za proizvodnju izlazne sekvence. Ova je arhitektura prvobitno dizajnirana za zadatke strojnog prevođenja, gdje koder obrađuje ulaznu rečenicu u izvornom jeziku, a dekoder generira odgovarajuću rečenicu u ciljnom jeziku.
Pažnja na sebe: ključ uspjeha Transformera
U srcu transformator leži mehanizam samopažnje, moćna tehnika koja modelu omogućuje vaganje i agregiranje informacija s različitih pozicija u ulaznom nizu. Za razliku od tradicionalnih modela slijeda, koji ulazne tokene obrađuju sekvencijalno, samopažnja omogućuje modelu da uhvati ovisnosti između bilo kojeg para tokena, bez obzira na njihov položaj u nizu.
Operacija samopažnje može se podijeliti u tri glavna koraka:
- Projekcije upita, ključa i vrijednosti: Ulazna sekvenca se projicira u tri odvojena prikaza: upita (Q), Tipke (K), i vrijednosti (V). Te se projekcije dobivaju množenjem ulaza s naučenim matricama težine.
- Izračunavanje ocjene pažnje: Za svaku poziciju u ulaznom nizu, rezultati pozornosti izračunavaju se uzimanjem točkastog produkta između odgovarajućeg vektora upita i svih ključnih vektora. Ovi rezultati predstavljaju relevantnost svake pozicije za trenutnu poziciju koja se obrađuje.
- Ponderirani zbroj vrijednosti: Rezultati pozornosti normalizirani su pomoću funkcije softmax, a rezultirajuće težine pozornosti koriste se za izračunavanje ponderiranog zbroja vektora vrijednosti, proizvodeći izlazni prikaz za trenutnu poziciju.
Višestruka pažnja, varijanta mehanizma samopažnje, omogućuje modelu da zabilježi različite vrste odnosa izračunavanjem rezultata pažnje kroz višestruke "glave” paralelno, svaki sa svojim skupom projekcija upita, ključa i vrijednosti.
Arhitektonske varijante i konfiguracije
Dok temeljni principi LLM-ova koji se temelje na dekoderu ostaju dosljedni, istraživači su istraživali različite arhitektonske varijante i konfiguracije za poboljšanje performansi, učinkovitosti i mogućnosti generalizacije. U ovom ćemo odjeljku proniknuti u različite arhitektonske izbore i njihove implikacije.
Tipovi arhitekture
LLM-ovi temeljeni na dekoderu mogu se općenito klasificirati u tri glavne vrste: koder-dekoder, kauzalni dekoder i prefiks dekoder. Svaki tip arhitekture pokazuje različite obrasce pažnje.
Arhitektura kodera-dekodera
Utemeljena na vanilla Transformer modelu, arhitektura enkoder-dekodera sastoji se od dva skupa: enkodera i dekodera. Koder koristi naslagane slojeve samopažnje s više glava za kodiranje ulazne sekvence i generiranje latentnih prikaza. Dekoder zatim izvodi unakrsnu pozornost na tim reprezentacijama kako bi generirao ciljnu sekvencu. Iako je učinkovit u raznim NLP zadacima, nekoliko LLM-a, kao što je Flan-T5, usvojiti ovu arhitekturu.
Arhitektura kauzalnog dekodera
Arhitektura kauzalnog dekodera uključuje jednosmjernu masku pažnje, dopuštajući svakom ulaznom tokenu da se posveti samo prošlim tokenima i sebi. I ulazni i izlazni tokeni obrađuju se unutar istog dekodera. Značajni modeli poput GPT-1, GPT-2 i GPT-3 izgrađeni su na ovoj arhitekturi, pri čemu GPT-3 prikazuje izvanredne mogućnosti učenja u kontekstu. Mnogi LLM-ovi, uključujući OPT, BLOOM i Gopher, široko su usvojili kauzalne dekodere.
Arhitektura dekodera prefiksa
Poznata i kao nekauzalni dekoder, arhitektura prefiksnog dekodera modificira mehanizam maskiranja uzročnih dekodera kako bi se omogućila dvosmjerna pažnja preko prefiks tokena i jednosmjerna pažnja na generiranim tokenima. Kao koder-dekoder arhitektura, prefiks dekoderi mogu kodirati prefiks sekvencu dvosmjerno i predvidjeti izlazne tokene autoregresivno korištenjem zajedničkih parametara. LLM-ovi temeljeni na prefiksnim dekoderima uključuju GLM130B i U-PaLM.
Sve tri vrste arhitekture mogu se proširiti korištenjem mješavina stručnjaka (MoE) tehnika skaliranja, koja rijetko aktivira podskup težina neuronske mreže za svaki ulaz. Ovaj pristup je korišten u modelima kao što su Switch Transformer i GLaM, s povećanjem broja stručnjaka ili ukupne veličine parametra koji pokazuju značajna poboljšanja performansi.
Transformator samo za dekoder: prihvaćanje autoregresivne prirode
Dok je izvorna transformatorska arhitektura bila dizajnirana za zadatke od sekvence do sekvence kao što je strojno prevođenje, mnogi NLP zadaci, kao što je modeliranje jezika i generiranje teksta, mogu se uokviriti kao autoregresivni problemi, gdje model generira jedan po jedan token, ovisno o prethodno generirani tokeni.
Unesite transformator samo za dekoder, pojednostavljenu varijantu arhitekture transformatora koja zadržava samo komponentu dekodera. Ova je arhitektura posebno prikladna za autoregresivne zadatke, budući da generira izlazne tokene jedan po jedan, koristeći prethodno generirane tokene kao ulazni kontekst.
Ključna razlika između transformatora samo za dekoder i izvornog dekodera transformatora leži u mehanizmu samopažnje. U postavci samo za dekoder, operacija samopažnje je modificirana kako bi se spriječilo da model prati buduće tokene, svojstvo poznato kao kauzalnost. To se postiže tehnikom koja se zove "maskirana pozornost na sebe", gdje se rezultati pažnje koji odgovaraju budućim pozicijama postavljaju na negativnu beskonačnost, učinkovito ih maskirajući tijekom koraka softmax normalizacije.
Arhitektonske komponente LLM-ova temeljenih na dekoderu
Dok temeljni principi samopažnje i maskirane samopažnje ostaju isti, moderni LLM-ovi temeljeni na dekoderima uveli su nekoliko arhitektonskih inovacija za poboljšanje performansi, učinkovitosti i mogućnosti generalizacije. Istražimo neke od ključnih komponenti i tehnika koje se koriste u najsuvremenijim LLM-ovima.
Reprezentacija ulaza
Prije obrade ulazne sekvence, LLM-ovi koji se temelje na dekoderu koriste tehnike tokenizacije i ugradnje za pretvaranje neobrađenog teksta u numerički prikaz prikladan za model.
Tokenization: Proces tokenizacije pretvara ulazni tekst u slijed tokena, koji mogu biti riječi, podriječi ili čak pojedinačni znakovi, ovisno o korištenoj strategiji tokenizacije. Popularne tehnike tokenizacije za LLM uključuju Byte-Pair Encoding (BPE), SentencePiece i WordPiece. Ove metode imaju za cilj postići ravnotežu između veličine vokabulara i granularnosti reprezentacije, omogućujući modelu učinkovito rukovanje rijetkim riječima ili riječima izvan rječnika.
Ugradnje tokena: Nakon tokenizacije, svaki se token preslikava u gustu vektorsku reprezentaciju koja se naziva ugradnja tokena. Ta se ugrađivanja uče tijekom procesa obuke i hvataju semantičke i sintaktičke odnose između tokena.
Pozicijska ugrađivanja: Transformatorski modeli obrađuju cijelu ulaznu sekvencu istovremeno, bez inherentnog pojma položaja tokena prisutnih u rekurentnim modelima. Kako bi se uključile informacije o položaju, ugradnje tokena se dodaju ugrađivanja položaja, omogućujući modelu da razlikuje tokene na temelju njihovih pozicija u nizu. Rani LLM-ovi koristili su fiksne pozicijske ugradnje temeljene na sinusoidnim funkcijama, dok su noviji modeli istraživali naučne pozicijske ugradnje ili alternativne tehnike pozicijskog kodiranja poput rotacijskih pozicijskih umetanja.
Blokovi pozornosti s više glava
Temeljni građevni blokovi LLM-ova temeljenih na dekoderu su slojevi pažnje s više glava, koji izvode operaciju maskirane samo-pažnje opisanu ranije. Ti su slojevi složeni više puta, pri čemu svaki sloj prati izlaz prethodnog sloja, dopuštajući modelu da uhvati sve složenije ovisnosti i prikaze.
Pozor glave: Svaki sloj pažnje s više glava sastoji se od višestrukih "glava pažnje", svaka sa svojim vlastitim skupom upita, ključa i projekcija vrijednosti. To omogućuje modelu da istovremeno prati različite aspekte unosa, hvatajući različite odnose i obrasce.
Zaostale veze i normalizacija slojeva: Kako bi se olakšalo uvježbavanje dubokih mreža i ublažio problem nestajanja gradijenta, LLM-ovi temeljeni na dekoderu koriste zaostale veze i tehnike normalizacije slojeva. Preostale veze dodaju ulaz sloja njegovom izlazu, omogućujući gradijentima lakši protok tijekom širenja unazad. Normalizacija slojeva pomaže stabilizirati aktivacije i gradijente, dodatno poboljšavajući stabilnost i izvedbu treninga.
Feed-Forward slojevi
Uz slojeve pažnje s više glava, LLM-ovi koji se temelje na dekoderu uključuju slojeve za praćenje, koji primjenjuju jednostavnu neuronsku mrežu za praćenje na svaku poziciju u nizu. Ovi slojevi uvode nelinearnosti i omogućuju modelu da nauči složenije prikaze.
Funkcije aktivacije: Izbor funkcije aktivacije u slojevima za prijenos podataka može značajno utjecati na performanse modela. Dok su se raniji LLM-ovi oslanjali na naširoko korištenu ReLU aktivaciju, noviji modeli usvojili su sofisticiranije funkcije aktivacije poput Gaussove linearne jedinice pogreške (GELU) ili SwiGLU aktivacije, koje su pokazale poboljšane performanse.
Oskudna pažnja i učinkoviti transformatori
Iako je mehanizam samopažnje moćan, dolazi s kvadratnom računskom složenošću s obzirom na duljinu niza, što ga čini računalno skupim za duge nizove. Kako bi se riješio ovaj izazov, predloženo je nekoliko tehnika za smanjenje računalnih i memorijskih zahtjeva samopažnje, omogućujući učinkovitu obradu dužih nizova.
Rijetka pozornost: Tehnike oskudne pozornosti, poput one koja se koristi u GPT-3 modelu, selektivno obraćaju pažnju na podskup pozicija u ulaznom nizu, umjesto da računaju rezultate pažnje za sve pozicije. To može značajno smanjiti računsku složenost uz održavanje razumne izvedbe.
Klizni prozor Pažnja: Predstavljena u modelu Mistral 7B, klizna pozornost kroz prozor (SWA) je jednostavna, ali učinkovita tehnika koja ograničava raspon pozornosti svakog tokena na fiksnu veličinu prozora. Ovaj pristup iskorištava sposobnost transformatorskih slojeva za prijenos informacija preko više slojeva, učinkovito povećavajući raspon pažnje bez kvadratne složenosti potpune samopažnje.
Rolling Buffer Cache: Kako bi se dodatno smanjila potreba za memorijom, posebno za duge sekvence, model Mistral 7B koristi rolling međuspremnik. Ova tehnika pohranjuje i ponovno koristi izračunate vektore ključa i vrijednosti za fiksnu veličinu prozora, izbjegavajući suvišna izračunavanja i minimizirajući korištenje memorije.
Grupirani upit Pažnja: Predstavljeno u modelu LLaMA 2, pažnja grupiranog upita (GQA) je varijanta mehanizma pažnje više upita koji dijeli pažnju u grupe, a svaka grupa dijeli zajednički ključ i matricu vrijednosti. Ovaj pristup uspostavlja ravnotežu između učinkovitosti pažnje na više upita i izvedbe standardne samopažnje, pružajući poboljšana vremena zaključivanja uz održavanje visokokvalitetnih rezultata.