mini|Standardna arhitektura transformera, s enkoderom lijevo i dekoderom desno.
Transformer jest arhitektura umjetne neuronske mreže u dubokom učenju zasnovana na mehanizmu višeglave pažnje (multi-head attention). U njoj se ulazni podaci, naročito tekst, pretvaraju u niz tokena, a svaki token zatim u vektorski prikaz preko sloja ugnježđivanja. Na svakom sloju model kontekstualizira tokene unutar kontekstnog prozora pomoću paralelnog mehanizma pažnje, čime se pojačava signal važnih tokena, a umanjuje utjecaj manje važnih.
Transformeri ne koriste rekurentne jedinice, pa se njihova obuka može bolje paralelizirati od ranijih rekurentnih neuronskih mreža kao što je LSTM. Kasnije varijante transformera široko su prihvaćene za obuku velikih jezičkih modela na vrlo velikim skupovima podataka.
Savremena verzija transformera predstavljena je u radu Attention Is All You Need iz 2017. godine, koji su objavili istraživači kompanije Google. Arhitektura je prvobitno razvijena za mašinsko prevođenje, ali je kasnije našla široku primjenu u obradi prirodnog jezika, računarskom vidu, obradi zvuka, multimodalnom učenju, pojačanom učenju i robotici.
Arhitektura transformera dovela je i do razvoja unaprijed istreniranih sistema kao što su GPT i BERT.
Historija
Preteče Dugi niz godina modeliranje i generiranje sekvenci oslanjalo se na obične rekurentne neuronske mreže. Teorijski, informacija iz jednog tokena može se prenositi proizvoljno daleko kroz sekvencu, ali u praksi problem iščezavajućeg gradijenta ostavlja stanje modela na kraju duge rečenice bez preciznih i lako izdvojivih informacija o ranijim tokenima.
Veliki iskorak predstavljao je LSTM, rekurentna mreža koja je raznim tehnikama ublažila problem iščezavajućeg gradijenta i omogućila efikasnije učenje nad dugim sekvencama. Jedna od važnih inovacija u širem razvoju sekvencijskih modela bilo je uvođenje mehanizma pažnje, zasnovanog na neuronima koji množe izlaze drugih neurona, tzv. multiplikativnim jedinicama. Takve mreže kasnije su nazivane sigma-pi mrežama ili višerednim mrežama.
LSTM je i dalje radio sekvencijalno, token po token, te nije mogao paralelno obrađivati cijelu sekvencu. Savremeni transformeri prevazilaze taj problem, ali za uzvrat obično imaju vremensku složenost koja je kvadratna u odnosu na veličinu kontekstnog prozora. U literaturi se među važnim pretečama navode i modeli s tzv. brzim težinama (fast weights), koji su kasnije interpretirani kao linearni transformeri bez normalizacije.
Pažnja i seq2seq modeli Ideja enkodersko-dekoderske transformacije sekvenci razvijena je početkom 2010-ih, a kao polazna tačka za seq2seq obično se navode dva rada iz 2014. godine. Ubrzo je pažnja dodana takvim modelima za mašinsko prevođenje, čime je omogućeno poravnavanje relevantnih dijelova ulazne i izlazne sekvence.
Nastanak transformera Originalni enkodersko-dekoderski transformer od približno 100 miliona parametara predložen je 2017. godine u radu Attention Is All You Need. Cilj je bio unaprijediti seq2seq modele za mašinsko prevođenje tako što će se ukloniti rekurencija, omogućiti obrada svih tokena paralelno i zadržati uspješni mehanizam skalarne pažnje. Time je uveden višeglavi mehanizam pažnje, čije su glave nezavisne i lakše za paralelizaciju, a model je postao znatno pogodniji za obuku na velikim računarskim sistemima.
Obuka
Stabilizacija obuke Originalni transformer koristio je normalizaciju sloja, rezidualne veze i plan promjene stope učenja s početnim zagrijavanjem (warmup) radi stabilnosti konvergencije. U praksi se pokazalo da postavljanje normalizacije sloja prije pažnje i potpunopovezane mreže stabilizira obuku i često uklanja potrebu za zagrijavanjem stope učenja; ta se varijanta naziva pre-LN transformer, za razliku od izvornog post-LN rasporeda.
Prethodno treniranje i fino podešavanje Transformeri se obično najprije prethodno treniraju pomoću samonadziranog učenja na velikom općem korpusu, a zatim fino podešavaju nad manjim skupom podataka specifičnim za zadatak.
Arhitektura
Tokenizacija Pošto se transformerska arhitektura sastoji od operacija nad brojevima, a ne direktno nad tekstom, svaki ulazni tekst mora se najprije pretvoriti u numerički oblik. Uobičajeni pristup uključuje segmentiranje teksta na tokene, a zatim preslikavanje tih tokena na cjelobrojne identifikatore iz konačnog rječnika modela. Često korišteni postupci podriječne tokenizacije uključuju byte pair encoding i modele jednorazinskog jezika.
Ugnježđivanje Svaki token zatim se preslikava na gusti vektorski prikaz pomoću matrice ugnježđivanja. Te vektorske reprezentacije služe kao osnovni ulaz u daljnje slojeve modela. U praksi se ponekad koristi isto vezivanje težina za ulazno i izlazno ugnježđivanje (weight tying) kako bi se smanjio broj parametara i poboljšala stabilnost pri obuci.
Pozicijsko kodiranje Pošto sam mehanizam pažnje nema urođeno znanje o redoslijedu tokena, transformeri koriste pozicijsko kodiranje kako bi modelu pružili informaciju o tome gdje se pojedini token nalazi u sekvenci. U izvornom radu korišteno je sinusno i kosinusno apsolutno pozicijsko kodiranje s baznim parametrom 10000.
Enkoder–dekoder mini|Jedan enkodersko-dekoderski blok transformera.
Izvorni transformer koristi enkodersko-dekodersku arhitekturu s više naslaganih slojeva. Enkoder obrađuje sve ulazne tokene zajedno, sloj po sloj, i stvara njihove kontekstualizirane reprezentacije. Dekoder potom koristi izlaz enkodera i dotad proizvedene izlazne tokene kako bi generirao naredni token.
Svaki enkoderski sloj ima dva glavna dijela: mehanizam samopažnje i potpunopovezanu mrežu unaprijednog prostiranja (feedforward). Svaki dekoderski sloj ima tri dijela: kauzalno maskiranu samopažnju, unakrsnu pažnju prema izlazu enkodera i potpunopovezanu mrežu.
Skalirana skalarna pažnja Osnovna jedinica pažnje u transformeru jest skalirana skalarna pažnja. Za svaki blok pažnje model uči tri matrice težina: upit (Q), ključ (K) i vrijednost (V). Pažnja se izračunava poređenjem upita s ključevima, normalizacijom dobijenih vrijednosti funkcijom softmax i njihovom primjenom na vrijednosti. Takav postupak omogućuje modelu da za svaki token odredi kojim drugim tokenima treba posvetiti veću pažnju.
Višeglava pažnja Umjesto jedne glave, transformer koristi više glava pažnje paralelno. Njihovi se izlazi spajaju i dalje prosljeđuju u naredni dio mreže. Ovakva konstrukcija omogućuje modelu da istovremeno prati više različitih aspekata ulazne sekvence.
Maskirana pažnja U dekoderu se koristi kauzalna maska kako bi svaki token mogao obraćati pažnju samo na sebe i tokene prije sebe, ali ne i na buduće tokene. Time se zadržava autoregresivna priroda generiranja.
Enkoder mini|Jedan enkoderski sloj.
Enkoder se sastoji od ulaznog sloja ugnježđivanja i više enkoderskih slojeva. Svaki sloj najprije primjenjuje samopažnju radi miješanja informacija među ulaznim tokenima, a zatim potpunopovezanu mrežu nad svakim položajem zasebno.
Dekoder mini|Jedan dekoderski sloj.
Dekoder prima već proizvedene izlazne tokene i izlaz enkodera. Njegova maskirana samopažnja osigurava kauzalnost, a unakrsna pažnja omogućuje pristup reprezentacijama ulaza koje je proizveo enkoder.
Kasniji razvoj
Alternativne aktivacijske funkcije Izvorni transformer koristio je ReLU kao aktivacijsku funkciju. Kasnije su razvijene i druge funkcije; modeli iz serija Llama i PaLM koristili su SwiGLU, dok su GPT-1 i BERT koristili GELU.
Alternativne normalizacije Uz LayerNorm razvijene su i druge normalizacije. Jedan poznat primjer jest RMSNorm, koji se koristi u seriji Llama.
Alternativna pozicijska kodiranja Kasniji radovi predložili su više zamjena ili dopuna izvornom apsolutnom sinusnom kodiranju. Među najpoznatijim su RoPE (rotacijsko pozicijsko ugnježđivanje), koje poziciju ugrađuje putem rotacija u parovima koordinata, te ALiBi (Attention with Linear Biases), koji uvodi linearne pristranosti direktno u matricu pažnje.
Efikasna implementacija Transformeri su implementirani u standardnim okvirima za duboko učenje kao što su TensorFlow i PyTorch, a biblioteka Transformers kompanije Hugging Face nudi arhitekture i unaprijed istrenirane modele zasnovane na transformatorima.
FlashAttention FlashAttention jest algoritam za efikasnu implementaciju pažnje na GPU-u, uz blokovske matrikske operacije i smanjeno kopiranje podataka između memorijskih nivoa. Kasnija verzija FlashAttention-2 dodatno je poboljšala paralelizaciju i raspodjelu posla.
Multimodalnost Transformeri se mogu prilagoditi i ulaznim ili izlaznim modalitetima koji nisu tekst, ako postoji način da se i ti podaci predstave kao tokene ili njima srodne diskretne jedinice.
Primjene Transformer je postigao naročit uspjeh u obradi prirodnog jezika, gdje je postao osnovna arhitektura za savremene jezičke modele, sisteme za prevođenje, sažimanje, odgovaranje na pitanja i generiranje teksta. U računarskom vidu razvijeni su vizuelni transformeri, a srodni modeli koriste se i za obradu govora, generiranje slike iz teksta i druge multimodalne zadatke.
Također pogledaj seq2seq Vision transformer Veliki jezički model BERT Generative pre-trained transformer T5 (jezički model)
Reference
Literatura Alexander Rush, The Annotated Transformer , Harvard NLP Group, 3. april 2018.
Kategorija:Duboko učenje Kategorija:Umjetne neuronske mreže Kategorija:Obrada prirodnog jezika Kategorija:Mašinsko učenje