Transformer (model mašinskog učenja)

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.[1] 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.[2] Kasnije varijante transformera široko su prihvaćene za obuku velikih jezičkih modela na vrlo velikim skupovima podataka.[3]
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.[4][5][6][7][8]
Arhitektura transformera dovela je i do razvoja unaprijed istreniranih sistema kao što su GPT i BERT.[9][10]
Historija
[uredi | uredi izvor]Preteče
[uredi | uredi izvor]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.[2]
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.[2] 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.[11] Takve mreže kasnije su nazivane sigma-pi mrežama ili višerednim mrežama.[12][13]
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.[14][15]
Pažnja i seq2seq modeli
[uredi | uredi izvor]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.[16][17] Ubrzo je pažnja dodana takvim modelima za mašinsko prevođenje, čime je omogućeno poravnavanje relevantnih dijelova ulazne i izlazne sekvence.[4][5]
Nastanak transformera
[uredi | uredi izvor]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.[18]
Obuka
[uredi | uredi izvor]Stabilizacija obuke
[uredi | uredi izvor]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.[19]
Prethodno treniranje i fino podešavanje
[uredi | uredi izvor]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.[20]
Arhitektura
[uredi | uredi izvor]Tokenizacija
[uredi | uredi izvor]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.[21]
Ugnježđivanje
[uredi | uredi izvor]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.[22]
Pozicijsko kodiranje
[uredi | uredi izvor]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
[uredi | uredi izvor]
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
[uredi | uredi izvor]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
[uredi | uredi izvor]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
[uredi | uredi izvor]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
[uredi | uredi izvor]
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
[uredi | uredi izvor]
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
[uredi | uredi izvor]Alternativne aktivacijske funkcije
[uredi | uredi izvor]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.[23][24]
Alternativne normalizacije
[uredi | uredi izvor]Uz LayerNorm razvijene su i druge normalizacije. Jedan poznat primjer jest RMSNorm, koji se koristi u seriji Llama.[25]
Alternativna pozicijska kodiranja
[uredi | uredi izvor]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,[26] te ALiBi (Attention with Linear Biases), koji uvodi linearne pristranosti direktno u matricu pažnje.[27]
Efikasna implementacija
[uredi | uredi izvor]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.[28]
FlashAttention
[uredi | uredi izvor]FlashAttention jest algoritam za efikasnu implementaciju pažnje na GPU-u, uz blokovske matrikske operacije i smanjeno kopiranje podataka između memorijskih nivoa.[29] Kasnija verzija FlashAttention-2 dodatno je poboljšala paralelizaciju i raspodjelu posla.[30]
Multimodalnost
[uredi | uredi izvor]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.[31]
Primjene
[uredi | uredi izvor]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.[20] 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.[32]
Također pogledaj
[uredi | uredi izvor]Reference
[uredi | uredi izvor]- ↑ Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Łukasz; Polosukhin, Illia (2017). "Attention Is All You Need" (PDF). Advances in Neural Information Processing Systems. Curran Associates, Inc. 30.
- 1 2 3 Hochreiter, Sepp; Schmidhuber, Jürgen (1. 11. 1997). "Long Short-Term Memory". Neural Computation. 9 (8): 1735–1780. doi:10.1162/neco.1997.9.8.1735. ISSN 0899-7667. PMID 9377276. S2CID 1915014.
- ↑ "Better Language Models and Their Implications". OpenAI. 14. 2. 2019. Arhivirano s originala, 19. 12. 2020. Pristupljeno 11. 3. 2026.
- 1 2 Bahdanau, Dzmitry; Cho, Kyunghyun; Bengio, Yoshua (1. 9. 2014). "Neural Machine Translation by Jointly Learning to Align and Translate". arXiv:1409.0473 [cs.CL].
- 1 2 Luong, Minh-Thang; Pham, Hieu; Manning, Christopher D. (17. 8. 2015). "Effective Approaches to Attention-based Neural Machine Translation". arXiv:1508.04025 [cs.CL].
- ↑ Parisotto, Emilio; Song, Francis; Rae, Jack; Pascanu, Razvan; Gulcehre, Caglar; Jayakumar, Siddhant; Jaderberg, Max; Kaufman, Raphaël Lopez; Clark, Aidan; Noury, Seb; Botvinick, Matthew; Heess, Nicolas; Hadsell, Raia (21. 11. 2020). "Stabilizing Transformers for Reinforcement Learning". Proceedings of the 37th International Conference on Machine Learning. 119: 7487–7498.
- ↑ Radford, Alec; Kim, Jong Wook; Xu, Tao; Brockman, Greg; McLeavey, Christine; Sutskever, Ilya (2022). "Robust Speech Recognition via Large-Scale Weak Supervision". arXiv:2212.04356 [eess.AS].
- ↑ Monastirsky, Maxim; Azulay, Osher; Sintov, Avishai (2023). "Learning to Throw With a Handful of Samples Using Decision Transformers". IEEE Robotics and Automation Letters. 8 (2): 576–583. Bibcode:2023IRAL....8..576M. doi:10.1109/LRA.2022.3229266.
- ↑ Wolf, Thomas; Debut, Lysandre; Sanh, Victor; Chaumond, Julien; Delangue, Clement; Moi, Anthony; Cistac, Pierric; Rault, Tim; Louf, Remi; Funtowicz, Morgan; Davison, Joe; Shleifer, Sam; von Platen, Patrick; Ma, Clara; Jernite, Yacine; Plu, Julien; Xu, Canwen; Le Scao, Teven; Gugger, Sylvain; Drame, Mariama; Lhoest, Quentin; Rush, Alexander (2020). "Transformers: State-of-the-Art Natural Language Processing". Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. str. 38–45. doi:10.18653/v1/2020.emnlp-demos.6. S2CID 208117506.
- ↑ "Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing". Google AI Blog. 2. 11. 2018. Arhivirano s originala, 13. 1. 2021. Pristupljeno 11. 3. 2026.
- ↑ Feldman, J. A.; Ballard, D. H. (1. 7. 1982). "Connectionist Models and Their Properties". Cognitive Science. 6 (3): 205–254. doi:10.1016/S0364-0213(82)80001-3.
- ↑ Rumelhart, David E.; McClelland, James L.; Hinton, Geoffrey E. (29. 7. 1987). "Foundations". Parallel Distributed Processing, Volume 1 (PDF). Bradford Books. ISBN 978-0-262-68053-0.
- ↑ Giles, C. Lee; Maxwell, Tom (1. 12. 1987). "Learning, invariance, and generalization in high-order neural networks". Applied Optics. 26 (23): 4972–4978. doi:10.1364/AO.26.004972. PMID 20523475.
- ↑ Schmidhuber, Jürgen (1992). "Learning to control fast-weight memories: an alternative to recurrent nets" (PDF). Neural Computation. 4 (1): 131–139. doi:10.1162/neco.1992.4.1.131. S2CID 16683347.
- ↑ Katharopoulos, Angelos; Vyas, Apoorv; Pappas, Nikolaos; Fleuret, François (2020). "Transformers are RNNs: Fast autoregressive Transformers with linear attention". ICML 2020. PMLR. str. 5156–5165.
- ↑ Cho, Kyunghyun; van Merriënboer, Bart; Gulcehre, Caglar; Bahdanau, Dzmitry; Bougares, Fethi; Schwenk, Holger; Bengio, Yoshua (2014). "Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation". Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). Doha, Qatar: Association for Computational Linguistics. str. 1724–1734. arXiv:1406.1078. doi:10.3115/v1/D14-1179.
- ↑ Sutskever, Ilya; Vinyals, Oriol; Le, Quoc Viet (14. 12. 2014). "Sequence to Sequence Learning with Neural Networks". arXiv:1409.3215 [cs.CL].
- ↑ Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N; Kaiser, Łukasz; Polosukhin, Illia (2017). "Attention is All you Need" (PDF). Advances in Neural Information Processing Systems. Curran Associates, Inc. 30.
- ↑ Xiong, Ruibin; Yang, Yunchang; He, Di; Zheng, Kai; Zheng, Shuxin; Xing, Chen; Zhang, Huishuai; Lan, Yanyan; Wang, Liwei; Liu, Tie-Yan (29. 6. 2020). "On Layer Normalization in the Transformer Architecture". arXiv:2002.04745 [cs.LG].
- 1 2 Raffel, Colin; Shazeer, Noam; Roberts, Adam; Lee, Katherine; Narang, Sharan; Matena, Michael; Zhou, Yanqi; Li, Wei; Liu, Peter J. (1. 1. 2020). "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer". The Journal of Machine Learning Research. 21 (1): 5485–5551. arXiv:1910.10683.
- ↑ Kudo, Taku; Richardson, John (2018). "SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing". Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. Association for Computational Linguistics. str. 66–71. doi:10.18653/v1/D18-2012.
- ↑ Press, Ofir; Wolf, Lior (21. 2. 2017). "Using the Output Embedding to Improve Language Models". arXiv:1608.05859.
- ↑ Shazeer, Noam (1. 2. 2020). "GLU Variants Improve Transformer". arXiv:2002.05202 [cs.LG].
- ↑ Hendrycks, Dan; Gimpel, Kevin (27. 6. 2016). "Gaussian Error Linear Units (GELUs)". arXiv:1606.08415 [cs.LG].
- ↑ Zhang, Biao; Sennrich, Rico (2019). "Root Mean Square Layer Normalization". Advances in Neural Information Processing Systems. 32. arXiv:1910.07467.
- ↑ Su, Jianlin; Lu, Yu; Pan, Shengfeng; Murtadha, Ahmed; Wen, Bo; Liu, Yunfeng (1. 4. 2021). "RoFormer: Enhanced Transformer with Rotary Position Embedding". arXiv:2104.09864 [cs.CL].
- ↑ Press, Ofir; Smith, Noah A.; Lewis, Mike (1. 8. 2021). "Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation". arXiv:2108.12409 [cs.CL].
- ↑ "Transformers documentation". Hugging Face. Pristupljeno 11. 3. 2026.
- ↑ Dao, Tri; Fu, Daniel Y.; Ermon, Stefano; Rudra, Atri; Ré, Christopher (28. 6. 2022). "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness". arXiv:2205.14135 [cs.LG].
- ↑ Dao, Tri (17. 7. 2023). "FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning". arXiv:2307.08691 [cs.LG].
- ↑ Lu, Kevin; Grover, Aditya; Abbeel, Pieter; Mordatch, Igor (28. 6. 2022). "Frozen Pretrained Transformers as Universal Computation Engines". Proceedings of the AAAI Conference on Artificial Intelligence. 36 (7): 7628–7636. doi:10.1609/aaai.v36i7.20729.
- ↑ Dosovitskiy, Alexey; Beyer, Lucas; Kolesnikov, Alexander; Weissenborn, Dirk; Zhai, Xiaohua; Unterthiner, Thomas; Dehghani, Mostafa; Minderer, Matthias; Heigold, Georg; Gelly, Sylvain; Uszkoreit, Jakob; Houlsby, Neil (2021). "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale". International Conference on Learning Representations.
Literatura
[uredi | uredi izvor]- Alexander Rush, The Annotated Transformer Arhivirano 22. 9. 2021. na Wayback Machine, Harvard NLP Group, 3. april 2018.
- Phuong, Mary; Hutter, Marcus (2022). "Formal Algorithms for Transformers". arXiv:2207.09238 [cs.LG].
- Ferrando, Javier; Sarti, Gabriele; Bisazza, Arianna; Costa-jussà, Marta R. (1. 5. 2024). "A Primer on the Inner Workings of Transformer-based Language Models". arXiv:2405.00208 [cs.CL].