peň Čo sú transformátorové neurónové siete? - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Čo sú transformátorové neurónové siete?

mm
Aktualizované on

Popísané transformátorové neurónové siete

transformátory sú typom modelu strojového učenia, ktorý sa špecializuje na spracovanie a interpretáciu sekvenčných údajov, vďaka čomu sú optimálne pre úlohy spracovania prirodzeného jazyka. Aby sme lepšie pochopili, čo je transformátor strojového učenia a ako funguje, pozrime sa bližšie na modely transformátorov a mechanizmy, ktoré ich poháňajú.

Tento článok bude obsahovať:

  • Sekvenčné modely
  • Architektúra neurónovej siete Transformer
  • Mechanizmus pozornosti
  • Rozdiely medzi transformátormi a RNN/LSTM

Sekvenčné modely

Modely medzi sekvenciami sú typom modelu NLP, ktorý sa používa na konverziu sekvencií jedného typu na sekvenciu iného typu. Existujú rôzne typy sekvenčných modelov, ako napr Rekurentná neurónová sieť modely a Dlhodobá krátkodobá pamäť (LSTM) modely.

Tradičné sekvenčné modely, ako sú RNN a LSTMS, nie sú stredobodom tohto článku, ale ich pochopenie je nevyhnutné, aby sme pochopili, ako fungujú modely transformátorov a prečo sú lepšie ako tradičné sekvenčné modely.

Stručne povedané, modely RNN a modely LSTM pozostávajú zo sietí kódovačov a dekodérov, ktoré analyzujú vstupné údaje v rôznych časových krokoch. Model kódovača je zodpovedný za vytvorenie kódovanej reprezentácie slov vo vstupných dátach. V každom časovom kroku sieť kódovača prevezme vstupnú sekvenciu a skrytý stav z predchádzajúceho časového kroku v sérii. Hodnoty skrytého stavu sa aktualizujú, ako údaje postupujú cez sieť, až do posledného časového kroku, kde sa vygeneruje „kontextový vektor“. Kontextový vektor sa potom odošle do siete dekodéra, ktorá sa použije na vygenerovanie cieľovej sekvencie predikciou najpravdepodobnejšieho slova, ktoré sa spáruje so vstupným slovom pre príslušné časové kroky.

Tieto modely je možné rozšíriť pomocou „mechanizmus pozornosti“. Mechanizmus pozornosti definuje, na ktoré časti vstupného vektora by sa mala sieť zamerať, aby vytvorila správny výstup. Inak povedané, mechanizmus pozornosti umožňuje modelu transformátora spracovať jedno vstupné slovo a zároveň sa venovať relevantným informáciám obsiahnutým v iných vstupných slovách. Mechanizmy pozornosti tiež maskujú slová, ktoré neobsahujú relevantné informácie.

Architektúra neurónovej siete transformátora

Mechanizmu pozornosti sa budeme podrobnejšie venovať neskôr, ale teraz sa na to poďme pozrieť architektúra transformátorovej neurónovej siete na vyššej úrovni.

Vo všeobecnosti vyzerá transformátorová neurónová sieť asi takto:

Aj keď sa táto všeobecná štruktúra môže medzi sieťami meniť, základné časti zostanú rovnaké: pozičné kódovanie, slovné vektory, mechanizmus pozornosti, dopredná neurónová sieť.

Pozičné kódovanie a vektory slov

Funguje transformátorová neurónová sieť prevzatím sekvencie vstupov a konverziou týchto vstupov na dve ďalšie sekvencie. Transformátor vytvára sekvenciu slovných vektorových vložení a pozičných kódovaní.

Vektorové vloženie slov sú len text reprezentovaný v číselnom formáte, ktorý dokáže neurónová sieť spracovať. Medzitým sú pozičné kódovania vektorizované reprezentácie obsahujúce informácie o polohe aktuálneho slova vo vstupnej vete vo vzťahu k iným slovám.

Ďalšie textové modely neurónových sietí, ako sú RNN a LSTM, používajú vektory na reprezentáciu slov vo vstupných údajoch. Tieto vektorové vloženia mapujú slová na konštantné hodnoty, čo je však obmedzujúce, pretože slová možno použiť v rôznych kontextoch. Transformátorová sieť rieši tento problém tým, že robí hodnoty slov flexibilnejšími, pričom používa sínusové funkcie, aby vektory slov nadobudli rôzne hodnoty v závislosti od polohy slova vo vete.

To umožňuje modelu neurónovej siete zachovať informácie týkajúce sa relatívnej polohy vstupných slov, a to aj po pohybe vektorov vrstvami siete transformátorov.

Polohové kódovania a vloženia slovných vektorov sa spočítajú a potom sa prenesú do siete kódovača aj dekodéra. Zatiaľ čo transformátorové neurónové siete používajú schémy kodéra/dekodéra rovnako ako RNN a LSTM, jeden hlavný rozdiel medzi nimi je v tom, že všetky vstupné údaje sa privádzajú do siete v rovnakom čase, zatiaľ čo v RNN/LSTM sa údaje prenášajú postupne.

Siete kódovačov sú zodpovedné za konverziu vstupov na reprezentácie, z ktorých sa môže sieť učiť, zatiaľ čo siete dekodérov robia opak a konvertujú kódovanie na rozdelenie pravdepodobnosti používané na generovanie najpravdepodobnejších slov vo výstupnej vete. Rozhodujúce je, že kódovacie aj dekódovacie siete majú mechanizmus pozornosti.

Pretože GPU sú schopné paralelného spracovania, paralelne sa používa viacero mechanizmov pozornosti, ktoré počítajú relevantné informácie pre všetky vstupné slová. Táto schopnosť venovať pozornosť viacerým slovám, nazývaná „viachlavá“ pozornosť, pomáha neurónovej sieti naučiť sa kontext slova vo vete a je to jedna z hlavných výhod, ktoré majú transformátorové siete oproti RNN a LSTM.

Mechanizmus pozornosti

Mechanizmus pozornosti je najdôležitejšou súčasťou siete transformátorov. Mechanizmus pozornosti je to, čo umožňuje modelom transformátora ísť za hranicu pozornosti typického modelu RNN alebo LSTM. Tradičné modely Sequence-to-Sequence zahadzujú všetky prechodné stavy a používajú iba vektor konečného stavu/kontextu pri inicializácii siete dekodéra na generovanie predpovedí o vstupnej sekvencii.

Zahodenie všetkého okrem konečného kontextového vektora funguje dobre, keď sú vstupné sekvencie pomerne malé. Keď sa však dĺžka vstupnej sekvencie zvyšuje, výkon modelu sa pri použití tejto metódy zníži. Je to preto, že je dosť ťažké zhrnúť dlhú vstupnú sekvenciu ako jeden vektor. Riešením je zvýšiť „pozornosť“ modelu a využiť prechodné stavy kódovača na vytvorenie kontextových vektorov pre dekodér.

Mechanizmus pozornosti definuje, aké dôležité sú pre model ďalšie vstupné tokeny pri vytváraní kódovania pre daný token. Napríklad „to“ je všeobecné zámeno, ktoré sa často používa na označenie zvierat, keď ich pohlavie nie je známe. Mechanizmus pozornosti by umožnil modelu transformátora určiť, že v aktuálnom kontexte sa „to“ vzťahuje na veveričku, pretože dokáže preskúmať všetky relevantné slová vo vstupnej vete.

Mechanizmus pozornosti možno použiť tromi rôznymi spôsobmi: kódovač-dekodér, iba kódovač, iba dekodér.

Pozornosť kódovača a dekodéra umožňuje dekodéru zvážiť vstupné sekvencie pri generovaní výstupu, zatiaľ čo mechanizmus pozornosti iba kódovača a iba dekodéra umožňuje sieťam zvážiť všetky časti predchádzajúcej a aktuálnej sekvencie.

Konštrukciu mechanizmu pozornosti možno rozdeliť do piatich krokov:

  1. Výpočet skóre pre všetky stavy kódovača.
  2. Výpočet váhy pozornosti
  3. Výpočet kontextových vektorov
  4. Aktualizuje sa kontextový vektor s predchádzajúcim výstupom časového kroku
  5. Generovanie výstupu s dekodérom

Prvým krokom je nechať dekodér vypočítať skóre pre všetky stavy kodéra. To sa vykonáva trénovaním siete dekodéra, čo je základná dopredná neurónová sieť. Keď je dekodér trénovaný na prvé slovo vo vstupnej sekvencii, ešte nebol vytvorený žiadny interný/skrytý stav, takže posledný stav kódovača sa zvyčajne používa ako predchádzajúci stav dekodéra.

Na výpočet váh pozornosti sa používa funkcia softmax na generovanie pravdepodobnostného rozdelenia váh pozornosti.

Po vypočítaní váh pozornosti je potrebné vypočítať kontextový vektor. To sa dosiahne vynásobením váh pozornosti a skrytého stavu pre každý časový krok.

Keď je kontextový vektor vypočítaný, použije sa spolu so slovom vygenerovaným v predchádzajúcom časovom kroku na vygenerovanie ďalšieho slova vo výstupnej sekvencii. Pretože dekodér nemá žiadny predchádzajúci výstup, na ktorý by sa mohol odkazovať v prvom časovom kroku, často sa namiesto neho používa špeciálny „štartovací“ token.

Rozdiely medzi transformátormi a RNN/LSTM

Poďme rýchlo pokryť niektoré rozdiely medzi RNN a LSTM.

RNN spracovávajú vstupy sekvenčne, zatiaľ čo skrytý stavový vektor sa udržiava a mení vstupnými slovami, keď sa pohybujú v sieti. Skryté stavy RNN zvyčajne obsahujú veľmi málo relevantných informácií týkajúcich sa skorších vstupov. Nové vstupy často prepisujú aktuálny stav, čo spôsobuje stratu informácií a časom znižuje výkon.

Naproti tomu modely transformátorov spracovávajú celú vstupnú sekvenciu naraz. Mechanizmus pozornosti umožňuje, aby každé výstupné slovo bolo informované každým vstupom a skrytým stavom, vďaka čomu je sieť spoľahlivejšia pre dlhé časti textu.

LSTM sú upravenou verziou RNN, upravenou tak, aby zvládla dlhšie vstupné sekvencie. Architektúra LSTM používa štruktúru nazývanú „brány“ so „vstupnými bránami“, „výstupnými bránami“ a „zabudnutými bránami“. Gated design sa zaoberá stratou informácií bežnými pre modely RNN. Údaje sa stále spracovávajú sekvenčne a opakujúci sa dizajn architektúry sťažuje trénovanie modelov LSTM pomocou paralelných výpočtov, čím sa celkovo predlžuje čas školenia.

Inžinieri LSTM často pridávali do siete mechanizmy pozornosti, o ktorých bolo známe, že zlepšujú výkon modelu. Nakoniec sa však zistilo, že samotný mechanizmus pozornosti zlepšil presnosť. Tento objav viedol k vytvoreniu transformátorových sietí, ktoré využívali mechanizmy pozornosti a paralelné výpočty vďaka GPU.