Transformer (masinõpe)

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

Seda kasutatakse peamiselt keeletehnoloogias ja arvutinägemises.

Transformeri arhitektuuri pakkus välja 2017. aastal Google Braini uurimisrühm artiklis "Attention Is All You Need". 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 lühendab treenimisele kuluvat aega.

## Arhitektuur

### Sisemine tähelepanu
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. 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 maatriksit: päringukaalud W_Q, võtmekaalud W_K  ja väärtuskaalud W_V . Iga tokeni i jaoks korrutatakse sisendi sõna x_i iga kaalumaatriksiga, et saada päringuvektor q_i = x_iW_Q, võtmevektor k_i = x_iW_K  ja väärtusvektor v_i = x_iW_V . Seejärel arvutatakse päringu- ja võtmevektorite skalaarkorrutised ehk skoorid; näiteks oleks esimese tokeni esimene skoor q_1  ja k_1  skalaarkorrutis ning teine skoor q_1  ja k_2  skalaarkorrutis. Saadud skoorid jagatakse võtmevektori pikkuse ruutjuurega, \sqrt{d_k} , ning tulemusel kasutatakse normaliseerimiseks *softmax* funktsiooni.

Tehte saab kokkuvõtvalt kirjutada ühe *softmax* funktsiooniga maatriksarvutusena A(Q, K, V) = softmax(\frac{Q K^T}{\sqrt{d_k}})V
 .

### Mitmepealine tähelepanu
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.  Üks kolmik maatrikseid (W_Q, W_K, W_V)  on üks pea ning igal kihil on mitu pead.

### Kodeerija
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
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
Transformer arhitektuur on teinud suure läbilöögi keeletehnoloogias, asendades rekurrentseid närvivõrke näiteks masintõlkes ja aegridade prognoosis . 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:

* masintõlge
* juturobotid
* automaatsed kokkuvõtted
* DNA ja valkude järjestuste analüüs
* videoklassifitseerimine

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

= Viited =