Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas parandab trafode tähelepanu mehhanism koodide genereerimist


Kuidas parandab trafode tähelepanu mehhanism koodide genereerimist


Transformerite tähelepanu mehhanism parandab koodide genereerimist põhimõtteliselt, võimaldades mudelil selektiivselt keskenduda sisendjärjestuse erinevatele osadele, tootdes samal ajal iga väljundi sümbolit. Selle tulemuseks on rohkem konteksti- ja sidusat koodide genereerimist. Tähelepanu mehhanism aitab jäädvustada lähtekoodis pikamaa sõltuvusi, struktuurimustreid ja semantilisi nüansse, mis on süntaktiliselt korrektsete ja loogiliselt järjepidevate programmide genereerimiseks üliolulised. Selle mitmetahulised võimalused pakuvad olulisi eeliseid traditsiooniliste järjestuste ja järjestuse mudelite suhtes, mis tuginesid fikseeritud pikkusega konteksti esitustele.

Transformerites tähelepanu põhikontseptsioon

Transformerites on tähelepanu tehnika, mis arvutab väljundvektorite komplekti sisendväärtusvektorite kaalutud summadena. Kaalud arvutatakse dünaamiliselt ühilduvuse skooride põhjal päringu (mis tähistab praegust positsiooni, mille jaoks väljund genereeritakse), ja võtmevektorite komplekti (mis tähistab sisendjada kõiki positsioone). See võimaldab mudelil "osaleda" või keskenduda sisendi asjakohastele osadele iga märgi genereerimisel, selle asemel, et kogu jada ühtlaselt töödelda või fikseeritud suurusega vektorisse tihendada.

Skaleeritud punkti-produktide tähelepanu põhivalem on järgmine:

$$
\ tekst {tähelepanu} (q, k, v) = \ tekst {softMax} \ vasakul (\ frac {qk^t} {\ sqrt {d_k> \ paremal) V
$$

Seal, kus $$ Q $$, $$ K $$ ja $$ V $$ on vastavalt päringute, võtmete ja väärtuste maatriksid ning $$ D_K $$ on skaleerimiseks kasutatavate võtmete mõõde. Funktsioon SoftMax muudab DOT -toote skoorid päringute ja võtmete vahel tõenäosusjaotuseks, mida seejärel kasutatakse väärtuste kaalumiseks.

Konteksti ja sõltuvuste jäädvustamine koodis

Programmeerimiskood on oma olemuselt üles ehitatud pikamaa sõltuvustega; Funktsiooni alguses deklareeritud muutujaid võib paljudes kohtades kasutada palju hiljem. Traditsioonilised mudelid nagu RNN-id või CNN-id nägid vaeva, et säilitada nii pikamaa kontekstuaalseid suhteid nende järjestikuse või kohaliku vastuvõtliku olemuse tõttu. Seevastu Transformerites olev enesejälgimismehhanism võib seostada iga teise märgi iga teise sümboliga otse, sõltumata nende vahemaast järjestuses.

Enesejälgimine võimaldab igal sümboolse positsioonil koguda teavet kõigist teistest sisendjärjestuses asuvatest positsioonidest samaaegselt. Näiteks sulgemisklassi genereerimisel võib mudel osaleda oma vastavas avasulgudes, mis võib olla mitu rida varem. See täielik ühenduvus võimaldab mudelil tõhusamalt kodeerida süntaktilist ja semantilist struktuuri, mis on vigadeta koodi genereerimiseks hädavajalik.

mitme pea tähelepanu mitmekesistele kontekstidele

Transformerid kasutavad mitmepeaga tähelepanu, kus sisendmanuste erinevatel lineaarsetel projektsioonidel viiakse läbi mitu paralleelset tähelepanuoperatsiooni (pead). Iga pea õpib keskenduma sisendi erinevatele aspektidele, näiteks muutuvatele nimedele, juhtvoogude konstruktsioonidele või funktsioonipiiridele. See mitme peaga seadistus pakub mitmeid eeliseid:

- See võimaldab mudelil ühiselt osaleda erinevate esindajate alamruumide kohta.
- See ühendab sisendjärjestuse mitu vaatenurka, laiendades selle ulatust, mida mudel saab õppida.
- See parandab vastupidavust, mitte tuginedes ühele tähelepanu esitusele.

Nende mitme pea väljundid ühendatakse ja muudetakse lineaarselt, moodustades väljundmärkide genereerimiseks kasutatud lõpliku esituse.

KOODER-DECODERi tähelepanu allikatele suunatud joondamisel

Koodide genereerimisel kasutavad trafod tavaliselt kodeerija-dekodeerija arhitektuuri, kus kooder töötleb sisend kirjeldust (nt loomuliku keeleprobleemide spetsifikatsioon) kontekstuaalseks esitusse ja dekood genereerib vastava koodijärjestuse. Dekooder kasutab iga dekodeerimisetapis kodeeritud sisendi asjakohastele osadele keskendumiseks kodeerija-dekodeerija tähelepanu (risthaaramist). See sisendi ja väljundi vaheline joondamine aitab mudelil genereerida asjakohaseid ja täpseid koodilõigud, mis vastavad sisendviimis väljendatud kavatsusele.

põhjuslik ja maskeeritud tähelepanu autoregressiivse põlvkonna jaoks

Koodiga sümboolikate kaupa genereerimisel kasutab dekoodrit põhjuslikku (maskeeritud) enesekontrolli tagamaks, et positsiooni prognoosid $ $ i $$ sõltub ainult varasematest žetoonidest $$