Transformer (masinõpe)

Allikas: Vikipeedia

Transformer on süvaõppe mudel, mis kasutab sisemise tähelepanu mehhanismi, et differentsiaalselt kaaluda eraldi kõigi sisendandmete osatähtsust kontekstis kõigi teiste sisendandmetega.

Seda kasutatakse peamiselt keeletehnoloogias[1] ja arvutinägemises[2].

Transformeri arhitektuuri pakkusid välja 2017. aastal Google Brain uurimisrühm artiklis "Attention Is All You Need"[1]. Nende peamine avastus seisnes selles, et lihtne närvivõrk, mis jätab ära rekurrentsuse ja konvulatsioonid ning kasutab nende asemel ainult sisemise tähelepanu mehhanisme, saab masintõlke ülesannetel paremaid tulemusi ning on rohkem paralleliseeritav, mis vähendab treenimisele kuluvat aega.

Arhitektuur[muuda | muuda lähteteksti]

Sisemine tähelepanu[muuda | muuda lähteteksti]

Tähelepanu mehhanism on transformer närvivõrgu kõige tähtsam osa, sest see vastutab selle eest, et võrk keskenduks väljundvektorit genereerides õigele sisendvektori osale[3]. Näiteks lauses "Pall kukkus naabri aeda, sest poiss lõi seda liiga tugevasti." viitab sõna seda sõnale pall ja mitte sõnale aed. Sisemine tähelepanu loob selle seose pall-seda, mis aitab lauset töödeldes konteksti ja loogilist järjepidavust hoida.

Seosed arvutatakse kõigi kodeerija sisendi sõnade jaoks. Seda tehakse arvutades kolm maatriksi: päringukaalud , võtmekaalud ja väärtuskaalud . Iga tokeni jaoks korrutatakse sisendi sõna iga kaalumaatriksiga, et saada päringuvektor , võtmevektor ja väärtusvektor . Seejärel arvutatakse päringu- ja võtmevektorite skalaarkorrutised ehk skoorid; näiteks oleks esimese tokeni esimene skoor ja skalaarkorrutis ning teine skoor ja skalaarkorrutis. Saadud skoorid jagatakse võtmevektori pikkuse ruutjuurega, , ning tulemusel kasutatakse normaliseerimiseks softmax funktsiooni.

Tehte saab kokkuvõtvalt kirjutada ühe softmax funktsiooniga maatriksarvutusena [4].

Mitmepealine tähelepanu[muuda | muuda lähteteksti]

Sisemist tähelepanu on edasi arendatud algses artiklis välja käidud "mitmepealise tähelepanuga" (ingl multi-headed attention), mis laiendab mudeli oskust keskenduda erinevatele positsioonidele ning lisab tähelepanukihile mitu representatsioonialamruumi [4]. Üks kolmik maatrikse on üks pea ning igal kihil on mitu pead.

Kodeerija[muuda | muuda lähteteksti]

Iga kodeerija koosneb sisemise tähelepanu mehhanismist ja edasisöödu närvivõrgust (FFN). Esimese kodeerija sisemise tähelepanu mehhanism võtab sisse sisendjärjendi koos positsioonilise informatsiooniga ning ülejäänud kodeerijad saavad eelnevast kodeerijast sisendkodeeringu, millega tekitavad kaaluseoste alusel väljundkodeeringu. Seejärel töötleb edasisööduvõrk igat väljundkodeeringut eraldi; tulemus läheb edasi järgmisesse kodeerijasse või dekodeerijasse.

Kodeerija on kahesuunaline ehk tähelepanu saab suunata nii praegusest varasematele kui hilisematele tokenitele.

Dekodeerija[muuda | muuda lähteteksti]

Dekodeerija kasutab lisaks sisemisele tähelepanule ja edasisööduvõrgule ka kodeerija-dekodeerija tähelepanu kihti, mis soodustab õigele sisendjärjendi kohale keskendumist.

Dekodeerijas on tähelepanu suunatud vaid varasematele tokenitele.

Kasutusalad[muuda | muuda lähteteksti]

Transformer arhitektuur on teinud suure läbilöögi keeletehnoloogias, asendades rekurrentseid närvivõrke näiteks masintõlkes ja aegridade prognoosis [5]. Laialdast populaarsust on leidnud mitmed eeltreenitud ja avalikusele kättesaadavad keelemudelid, näiteks OpenAI GPT-2, GPT-3 ning ChatGPT või BERT ja RoBERTa. Need mudelid on näidanud lootustandvaid tulemusi mitmetel keeletehnoloogilistel ülesannetel, näiteks valdkondades:

Teegid[muuda | muuda lähteteksti]

Transformer mudel on implementeeritud TensorFlow Tensor2Tensor teegis ja Harvardi keeletehnoloogia uurimisrühma versioonina PyTorchis.

Viited[muuda | muuda lähteteksti]

  1. 1,0 1,1 Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (6. detsember 2017). "Attention Is All You Need". arXiv. Vaadatud 16. detsember 2022.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  2. He, Cheng (8. detsember 2020). "Transformer in CV". towardsdatascience.com. Vaadatud 16. detsember 2022.
  3. Wood, Thomas. "What is a Transformer Neural Network?". deepai.org. Vaadatud 16. detsember 2022.
  4. 4,0 4,1 Alammar, Jay (27. juuni 2018). "The Illustrated Transformer [Blog Post]". Jay Alammar Blog. Vaadatud 18. detsember 2022.
  5. Maxime (4. jaanuar 2019). "What is a Transformer?". Inside Machine learning. Vaadatud 18. detsember 2022.
  6. Jagtap, Rohan (11. juuni 2020). "Abstractive Text Summarization Using Transformers". The Startup. Vaadatud 18. detsember 2022.
  7. Rives, Alexander; Meier, Joshua (15. detsember 2020). "Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences". bioRxiv. Vaadatud 18. detsember 2022.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  8. Wang, H.; Bertasius, G.; Torresani, L (9. veebruar 2021). "Is Space-Time Attention All You Need for Video Understanding?". arXiv. Vaadatud 18. detsember 2022.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)