výhonek Co jsou transformátorové neuronové sítě? - Spojte se.AI
Spojte se s námi
Mistrovská třída AI:

AI 101

Co jsou transformátorové neuronové sítě?

mm
aktualizováno on

Popsány transformátorové neuronové sítě

transformátory jsou typem modelu strojového učení, který se specializuje na zpracování a interpretaci sekvenčních dat, díky čemuž jsou optimální pro úlohy zpracování přirozeného jazyka. Abychom lépe porozuměli tomu, co je transformátor strojového učení a jak fungují, podívejme se blíže na modely transformátorů a mechanismy, které je řídí.

Tento článek se bude zabývat:

  • Modely sekvencí po sekvencích
  • Architektura neuronové sítě Transformer
  • Mechanismus pozornosti
  • Rozdíly mezi transformátory a RNN/LSTM

Modely sekvencí po sekvencích

Modely sekvence-posloupnosti jsou typem modelu NLP, který se používá k převodu sekvencí jednoho typu na sekvenci jiného typu. Existují různé typy sekvenčních modelů, jako např Rekurentní neuronová síť modely a Dlouhodobá krátkodobá paměť (LSTM) modely.

Tradiční modely sekvencí sekvencí, jako jsou RNN a LSTMS, nejsou středem zájmu tohoto článku, ale jejich pochopení je nezbytné, abychom pochopili, jak fungují modely transformátorů a proč jsou lepší než tradiční modely sekvencí.

Stručně řečeno, modely RNN a LSTM se skládají ze sítí kodérů a dekodérů, které analyzují vstupní data v různých časových krocích. Model kodéru je zodpovědný za vytvoření kódované reprezentace slov ve vstupních datech. V každém časovém kroku síť kodéru převezme vstupní sekvenci a skrytý stav z předchozího časového kroku v sérii. Hodnoty skrytého stavu se aktualizují, jak data procházejí sítí, až do posledního časového kroku, kde je vygenerován „kontextový vektor“. Kontextový vektor je pak předán do sítě dekodéru, která je použita pro generování cílové sekvence předpovídáním nejpravděpodobnějšího slova, které se spáruje se vstupním slovem pro příslušné časové kroky.

Tyto modely lze rozšířit pomocí „mechanismus pozornosti“. Mechanismus pozornosti definuje, na které části vstupního vektoru by se měla síť zaměřit, aby generovala správný výstup. Jinými slovy, mechanismus pozornosti umožňuje modelu transformátoru zpracovat jedno vstupní slovo a zároveň věnovat pozornost relevantní informaci obsažené v ostatních vstupních slovech. Mechanismy pozornosti také maskují slova, která neobsahují relevantní informace.

Architektura neuronové sítě transformátoru

Mechanismu pozornosti se budeme věnovat podrobněji později, ale nyní se na něj pojďme podívat architektura transformátorové neuronové sítě na vyšší úrovni.

Transformátorová neuronová síť obecně vypadá asi takto:

I když se tato obecná struktura může mezi sítěmi měnit, základní části zůstanou stejné: poziční kódování, slovní vektory, mechanismus pozornosti, dopředná neuronová síť.

Poziční kódování a vektory slov

Funguje transformátorová neuronová síť tím, že vezmete sekvenci vstupů a převedete tyto vstupy na dvě další sekvence. Transformátor vytváří sekvenci slovních vektorových vložení a pozičních kódování.

Word vektorové vložení jsou pouze textem reprezentovaným v číselném formátu, který může neuronová síť zpracovat. Mezitím jsou poziční kódování vektorizovaná reprezentace obsahující informace o poloze aktuálního slova ve vstupní větě ve vztahu k jiným slovům.

Jiné modely neuronové sítě založené na textu, jako jsou RNN a LSTM, používají vektory k reprezentaci slov ve vstupních datech. Tato vektorová vložení mapují slova na konstantní hodnoty, ale to je omezující, protože slova lze použít v různých kontextech. Transformátorová síť řeší tento problém tím, že hodnoty slov jsou flexibilnější a používá sinusové funkce, které umožňují vektorům slova nabývat různých hodnot v závislosti na poloze slova ve větě.

To umožňuje modelu neuronové sítě zachovat informace týkající se relativní polohy vstupních slov i poté, co se vektory pohybují vrstvami sítě transformátoru.

Polohová kódování a vložení slovního vektoru se sečtou dohromady a poté se přenesou do sítě kodéru i dekodéru. Zatímco transformátorové neuronové sítě používají schémata kodéru/dekodéru stejně jako RNN a LSTM, jeden hlavní rozdíl mezi nimi je ten, že všechna vstupní data jsou přiváděna do sítě ve stejnou dobu, zatímco v RNN/LSTM jsou data předávána postupně.

Sítě kodérů jsou zodpovědné za převod vstupů na reprezentace, ze kterých se síť může učit, zatímco sítě dekodérů dělají opak a převádějí kódování na rozdělení pravděpodobnosti používané ke generování nejpravděpodobnějších slov ve výstupní větě. Rozhodující je, že jak kodér, tak dekodérová síť mají mechanismus pozornosti.

Protože GPU jsou schopny paralelního zpracování, používá se paralelně více mechanismů pozornosti, které vypočítávají relevantní informace pro všechna vstupní slova. Tato schopnost věnovat pozornost více slovům, nazývaná „multi-head“ pozornost, pomáhá neuronové síti naučit se kontext slova ve větě a je to jedna z hlavních výhod, které mají transformátorové sítě oproti RNN a LSTM.

Mechanismus pozornosti

Mechanismus pozornosti je nejdůležitější součástí transformátorové sítě. Mechanismus pozornosti je to, co umožňuje modelům transformátorů překročit limit pozornosti typického modelu RNN nebo LSTM. Tradiční modely sekvencí od sekvencí vyřazují všechny přechodné stavy a používají pouze konečný stav/kontextový vektor při inicializaci sítě dekodéru pro generování předpovědí o vstupní sekvenci.

Zahození všeho kromě konečného kontextového vektoru funguje dobře, když jsou vstupní sekvence poměrně malé. S rostoucí délkou vstupní sekvence se však výkon modelu při použití této metody zhorší. Je to proto, že je poměrně obtížné shrnout dlouhou vstupní sekvenci jako jeden vektor. Řešením je zvýšit „pozornost“ modelu a využít mezilehlé stavy kodéru ke konstrukci kontextových vektorů pro dekodér.

Mechanismus pozornosti definuje, jak důležité jsou pro model další vstupní tokeny při vytváření kódování pro jakýkoli daný token. Například „to“ je obecné zájmeno, které se často používá k označení zvířat, jejichž pohlaví není známo. Mechanismus pozornosti by umožnil modelu transformátoru určit, že v aktuálním kontextu „to“ odkazuje na veverku, protože může zkoumat všechna relevantní slova ve vstupní větě.

Mechanismus pozornosti lze použít třemi různými způsoby: od kodéru k dekodéru, pouze kodéru, pouze dekodéru.

Pozornost kodéru a dekodéru umožňuje dekodéru zvážit vstupní sekvence při generování výstupu, zatímco mechanismy pozornosti pouze kodéru a pouze dekodéru umožňují sítím zvážit všechny části předchozí a aktuální sekvence.

Sestavení mechanismu pozornosti lze rozdělit do pěti kroků:

  1. Výpočet skóre pro všechny stavy kodéru.
  2. Výpočet vah pozornosti
  3. Výpočet kontextových vektorů
  4. Aktualizace kontextového vektoru s předchozím výstupem časového kroku
  5. Generování výstupu s dekodérem

Prvním krokem je nechat dekodér vypočítat skóre pro všechny stavy kodéru. To se provádí trénováním sítě dekodéru, což je základní dopředná neuronová síť. Když je dekodér trénován na prvním slově ve vstupní sekvenci, ještě nebyl vytvořen žádný vnitřní/skrytý stav, takže poslední stav kodéru se obvykle používá jako předchozí stav dekodéru.

Aby bylo možné vypočítat váhy pozornosti, používá se funkce softmax pro generování pravděpodobnostního rozložení pro váhy pozornosti.

Jakmile byly vypočítány váhy pozornosti, je třeba vypočítat kontextový vektor. To se provádí vynásobením vah pozornosti a skrytého stavu dohromady pro každý časový krok.

Poté, co je vypočítán kontextový vektor, je použit vedle slova vygenerovaného v předchozím časovém kroku k vygenerování dalšího slova ve výstupní sekvenci. Protože dekodér nemá žádný předchozí výstup, na který by se mohl odkazovat v prvním časovém kroku, často se místo něj používá speciální „startovací“ token.

Rozdíly mezi transformátory a RNN/LSTM

Pojďme rychle pokrýt některé rozdíly mezi RNN a LSTM.

RNN zpracovávají vstupy sekvenčně, zatímco skrytý stavový vektor je udržován a měněn vstupními slovy, jak se pohybují sítí. Skryté stavy RNN obvykle obsahují velmi málo relevantních informací týkajících se dřívějších vstupů. Nové vstupy často přepisují aktuální stav, což způsobuje ztrátu informací a časem snižuje výkon.

Naproti tomu modely transformátorů zpracovávají celou vstupní sekvenci najednou. Mechanismus pozornosti umožňuje, aby každé výstupní slovo bylo informováno každým vstupem a skrytým stavem, čímž je síť spolehlivější pro dlouhé kusy textu.

LSTM jsou upravenou verzí RNN, upravenou tak, aby zvládla delší vstupní sekvence. Architektura LSTM používá strukturu zvanou „brány“ se „vstupními hradly“, „výstupními hradly“ a „zapomenutými hradly“. Gated design se zabývá ztrátou informací běžnou u modelů RNN. Data se stále zpracovávají sekvenčně a opakující se návrh architektury ztěžuje trénování modelů LSTM pomocí paralelních výpočtů, což celkově prodlužuje dobu školení.

Inženýři LSTM často přidávali mechanismy pozornosti do sítě, o kterých bylo známo, že zlepšují výkon modelu. Nakonec se však zjistilo, že samotný mechanismus pozornosti zlepšil přesnost. Tento objev vedl k vytvoření transformátorových sítí, které využívaly mechanismy pozornosti a paralelní výpočty díky GPU.