Connect with us

Co jsou Transformer Neural Networks?

AI 101

Co jsou Transformer Neural Networks?

mm

Popis Transformer Neural Networks

Transformery jsou typem modelu strojového učení, který se specializuje na zpracování a interpretaci sekvencí dat, což je optimální pro úkoly zpracování přirozeného jazyka. Abychom lépe pochopili, co je strojové učení transformátor a jak funguje, podívejme se blíže na modely transformátorů a mechanismy, které je pohání.

Tento článek bude pokrývat:

  • Modely sekvenční-sekvenční
  • Architektura Transformer Neural Network
  • Mechanizmus pozornosti
  • Rozdíly mezi transformery a RNN/LSTM

Modely sekvenční-sekvenční

Modely sekvenční-sekvenční jsou typem modelu NLP, který se používá k převodu sekvencí jednoho typu na sekvenci jiného typu. Existuje několik typů modelů sekvenční-sekvenční, jako jsou Recurrent Neural Network modely a Long Short-Term Memory (LSTM) modely.

Tradiční modely sekvenční-sekvenční, jako jsou RNN a LSTM, nejsou zaměřeny na tento článek, ale porozumění jim je nezbytné pro ocenění toho, jak fungují modely transformátorů a proč jsou lepší než tradiční modely sekvenční-sekvenční.

Stručně řečeno, RNN modely a LSTM modely se skládají z encoder a decoder sítí, které analyzují vstupní data v různých časových krocích. Encoder model je zodpovědný za vytvoření zakódované reprezentace slov ve vstupních datech. V každém časovém kroku encoder síť bere vstupní sekvenci a skrytý stav z předchozího časového kroku v řadě. Skryté stavové hodnoty jsou aktualizovány, 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 decoder síti, která se používá k vygenerování cílové sekvence předpovězením nejpravděpodobnějšího slova, které pairuje s vstupním slovem pro příslušné časové kroky.

Tyto modely lze rozšířit pomocí “mechanizmu pozornosti”. Mechanizmus pozornosti definuje, které části vstupního vektoru by se síť měla zaměřit na vygenerování správné výstupu. Jinými slovy, mechanismus pozornosti umožňuje transformátorovému modelu zpracovat jedno vstupní slovo, zatímco také přihlíží k relevantním informacím obsaženým v ostatních vstupních slovech. Mechanizmy pozornosti také maskují slova, která neobsahují relevantní informace.

Architektura Transformer Neural Network

Podrobněji se budeme zabývat mechanismem pozornosti později, ale zatím se podívejme na architekturu transformer neural network na vyšší úrovni.

Obecně vypadá transformer neural network nějak takto:

Zatímco tato obecná struktura se může lišit mezi sítěmi, základní části zůstanou stejné: pozicionální kódování, slovní vektory, mechanismus pozornosti, feed-forward neuronová síť.

Pozicionální kódování a slovní vektory

Transformer neural networks fungují tak, že bere sekvenci vstupů a převádí je na dvě jiné sekvence. Transformer produkuje sekvenci slovních vektorových vložených reprezentací a pozicionálních kódování.

Slovní vektorová vložená reprezentace je pouze text reprezentovaný v numerickém formátu, který neuronová síť může zpracovat. Zatímco pozicionální kódování jsou vektorizované reprezentace obsahující informace o pozici aktuálního slova ve vstupní větě, vzhledem k ostatním slovům.

Ostatní textově založené neuronové sítě, jako jsou RNN a LSTM, používají vektory k reprezentaci slov ve vstupních datech. Tyto vektorové vložené reprezentace mapují slova na konstantní hodnoty, ale to je omezené, protože slova lze použít v různých kontextech. Transformer síť řeší tento problém tím, že dělá slovní hodnoty flexibilnější, pomocí sinusoidálních funkcí, aby slovní vektory mohly nabývat různých hodnot v závislosti na pozici slova ve větě.

To umožňuje neuronové síti zachovat informace o relativní pozici vstupních slov, i poté, co vektory projdou vrstvami transformer sítě.

Pozicionální kódování a slovní vektorová vložená reprezentace jsou sečteny a poté předány do obou encoder a decoder sítí. Zatímco transformer neuronové sítě používají encoder/decoder schéma stejně jako RNN a LSTM, jeden z hlavních rozdílů mezi nimi je, že všechny vstupní údaje jsou předány do sítě současně, zatímco u RNN/LSTM jsou data předávána sekvenčně.

Encoder sítě jsou zodpovědné za převod vstupů na reprezentace, které síť může naučit, zatímco decoder sítě dělají opak a převádějí kódování na pravděpodobnostní distribuci, která se používá k vygenerování nejpravděpodobnějších slov ve výstupní větě. Důležité je, že obě encoder a decoder sítě mají mechanismus pozornosti.

Protože GPU jsou schopny paralelního zpracování, jsou používány multiple mechanismy pozornosti paralelně, které počítají relevantní informace pro všechna vstupní slova. Tato schopnost současně přihlížet k několika 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í transformer sítě oproti RNN a LSTM.

Mechanizmus pozornosti

Mechanizmus pozornosti je nejvýznamnější částí transformer sítě. Mechanizmus pozornosti je tím, co umožňuje transformer modelům překročit limit pozornosti typického RNN nebo LSTM modelu. Tradiční modely sekvenční-sekvenční zahazují všechny mezilehlé stavy a používají pouze finální stav/kontextový vektor, když inicializují decoder síť k vygenerování předpovědí o vstupní sekvenci.

Zahazování všeho kromě finálního kontextového vektoru funguje dobře, když jsou vstupní sekvence poměrně krátké. Nicméně, když délka vstupní sekvence vzroste, výkon modelu se zhorší, když se používá tato metoda. To je 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é encoder stavy k vytvoření kontextových vektorů pro decoder.

Mechanizmus pozornosti definuje, jak důležité jsou ostatní vstupní tokeny pro model, když se vytvářejí kódování pro daný token. Například, “it” je obecné zájmeno, často používané k odkazu na zvířata, když jejich pohlaví není známo. Mechanizmus pozornosti by umožnil transformer modelu určit, že v aktuálním kontextu “it” odkazuje na veverku, protože může prozkoumat všechna relevantní slova ve vstupní větě.

Mechanizmus pozornosti lze použít třemi různými způsoby: encoder-decoder, encoder-only, decoder-only.

Encoder-decoder pozornost umožňuje decoderu zvažovat vstupní sekvence, když generuje výstup, zatímco encoder-only a decoder-only mechanismy pozornosti umožňují sítím zvažovat všechny části předchozích a aktuálních sekvencí.

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

  1. Výpočet skóre pro všechny encoder stavy.
  2. Výpočet pozornostních váh
  3. Výpočet kontextových vektorů
  4. Aktualizace kontextového vektoru s předchozím výstupem
  5. Generování výstupu s decoderem

Prvním krokem je, aby decoder vypočítal skóre pro všechny encoder stavy. To se provádí pomocí trénovaného decoder sítě, která je základní feed-forward neuronovou sítí. Když je decoder trénován na prvním slově ve vstupní sekvenci, nebyla dosud vytvořena žádná vnitřní/skrytá stav, takže se obvykle používá poslední stav encoderu jako předchozí stav decoderu.

Pro výpočet pozornostních váh se používá softmax funkce, která generuje pravděpodobnostní distribuci pro pozornostní váhy.

Jakmile jsou pozornostní váhy vypočteny, je třeba vypočítat kontextový vektor. To se provádí pomocí násobení pozornostních váh a skrytého stavu pro každý časový krok.

Po výpočtu kontextového vektoru se používá spolu s generovaným slovem v předchozím časovém kroku k vygenerování dalšího slova ve výstupní sekvenci. Protože decoder nemá žádné předchozí výstup, aby se na něj odkázal v prvním časovém kroku, často se používá speciální “start” token.

Rozdíly mezi transformery a RNN/LSTM

Podívejme se rychle na některé rozdíly mezi RNN a LSTM.

RNN zpracovávají vstupní data sekvenčně, zatímco se udržuje a mění skrytý stavový vektor vstupními slovy, jak procházejí sítí. Skryté stavy RNN obvykle obsahují velmi málo relevantních informací o předchozích vstupních datech. Nová vstupní data často přepíší aktuální stav, což způsobuje ztrátu informací a degradaci výkonu v čase.

Naopak, transformer modely zpracovávají celou vstupní sekvenci najednou. Mechanizmus pozornosti umožňuje každému výstupnímu slovu být informován všemi vstupními a skrytými stavy, což činí síť více spolehlivou pro dlouhé texty.

LSTM jsou modifikované verze RNN, upravené pro zpracování delších vstupních sekvencí. Architektura LSTM používá strukturu nazývanou “brány”, se “vstupními bránami”, “výstupními bránami” a “zapomínacími bránami”. Bránová konstrukce řeší ztrátu informací společnou pro RNN modely. Data jsou stále zpracovávána sekvenčně a architektura sítě činí LSTM modely obtížně trénovatelné pomocí paralelního zpracování, což prodlužuje celkovou dobu trénování.

Inženýři LSTM často přidávali mechanismy pozornosti do sítě, což bylo známo, že zlepšuje výkon modelu. Nicméně, bylo později zjištěno, že mechanismus pozornosti sám o sobě zlepšuje přesnost. Toto zjištění vedlo k vytvoření transformer sítí, které používají mechanismy pozornosti a paralelní zpracování díky GPU.

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.