AI 101
Co to są sieci neuronowe Transformer?

Opis sieci neuronowych Transformer
Transformery są rodzajem modelu uczenia maszynowego, który specjalizuje się w przetwarzaniu i interpretowaniu danych sekwencyjnych, co sprawia, że są optymalne dla zadań przetwarzania języka naturalnego. Aby lepiej zrozumieć, co to jest model transformatora i jak działa, przyjrzyjmy się bliżej modelom transformatora i mechanizmom, które je napędzają.
Artykuł ten obejmie:
- Modele sekwencja-do-sekwencji
- Architektura sieci neuronowej Transformer
- Mechanizm uwagi
- Różnice między transformatorami a RNN/LSTM
Modele sekwencja-do-sekwencji
Modele sekwencja-do-sekwencji są rodzajem modelu NLP, który służy do konwersji sekwencji jednego typu na sekwencję innego typu. Istnieją różne rodzaje modeli sekwencja-do-sekwencji, takie jak Recurrent Neural Network i Long Short-Term Memory (LSTM).
Tradycyjne modele sekwencja-do-sekwencji, takie jak RNN i LSTM, nie są celem tego artykułu, ale zrozumienie ich jest niezbędne do docenienia, jak modele transformatora działają i dlaczego są lepsze niż tradycyjne modele sekwencja-do-sekwencji.
W skrócie, modele RNN i LSTM składają się z sieci encoder i decoder, które analizują dane wejściowe w różnych krokach czasowych. Sieć encoder jest odpowiedzialna za tworzenie zakodowanej reprezentacji słów w danych wejściowych. Na każdym kroku czasowym sieć encoder pobiera sekwencję wejściową i stan ukryty z poprzedniego kroku czasowego w serii. Wartości stanu ukrytego są aktualizowane, gdy dane przepływają przez sieć, aż do ostatniego kroku czasowego, gdzie generowany jest „wektor kontekstu”. Wektor kontekstu jest następnie przekazywany do sieci decoder, która służy do generowania sekwencji docelowej przez przewidywanie najbardziej prawdopodobnego słowa, które para się z słowem wejściowym dla odpowiednich kroków czasowych.
Te modele można rozszerzyć za pomocą „mechanizmu uwagi”. Mechanizm uwagi definiuje, które części wektora wejściowego sieć powinna skupić się, aby wygenerować właściwy wynik. Innymi słowy, mechanizm uwagi pozwala modelowi transformatora przetwarzać jednocześnie jeden słowo wejściowe i zwracać uwagę na istotne informacje zawarte w innych słowach wejściowych. Mechanizmy uwagi również maskują słowa, które nie zawierają istotnych informacji.
Architektura sieci neuronowej Transformer
Przejdziemy do mechanizmu uwagi w więcej szczegółów później, ale na razie przyjrzyjmy się architekturze sieci neuronowej Transformer na wyższym poziomie.
Ogólnie sieć neuronowa Transformer wygląda mniej więcej tak:

Chociaż ta ogólna struktura może się zmieniać między sieciami, podstawowe elementy pozostaną takie same: kodowania pozycyjne, wektory słów, mechanizm uwagi, sieć neuronowa feed-forward.
Kodowania pozycyjne i wektory słów
Sieć neuronowa Transformer działa, pobierając sekwencję wejściową i konwertując ją na dwie inne sekwencje. Sieć Transformer wytwarza sekwencję wektorów słów i kodowań pozycyjnych.
Wektory słów są po prostu reprezentacją tekstu w postaci numerycznej, którą sieć neuronowa może przetwarzać. Tymczasem kodowania pozycyjne są wektorami reprezentującymi informacje o pozycji bieżącego słowa w stosunku do innych słów.
Inne modele sieci neuronowych, takie jak RNN i LSTM, używają wektorów do reprezentowania słów w danych wejściowych. Te wektory mapują słowa na stałe wartości, ale jest to ograniczające, ponieważ słowa mogą być używane w różnych kontekstach. Sieć Transformer rozwiązuje ten problem, czyniąc wartości słów bardziej elastycznymi, używając funkcji sinusoidalnych, aby pozwolić wektorom słów przyjmować różne wartości w zależności od pozycji słowa w zdaniu.
To pozwala modelowi sieci neuronowej zachować informacje dotyczące względnej pozycji słów wejściowych, nawet po przejściu wektorów przez warstwy sieci Transformer.
Kodowania pozycyjne i wektory słów są sumowane, a następnie przekazywane do sieci encoder i decoder. Chociaż sieci Transformer używają schematów encoder/decoder, podobnie jak RNN i LSTM, jedna z głównych różnic między nimi polega na tym, że całe dane wejściowe są wprowadzane do sieci w tym samym czasie, podczas gdy w RNN/LSTM dane są wprowadzane sekwencyjnie.
Sieci encoder są odpowiedzialne za konwertowanie danych wejściowych na reprezentacje, które sieć może nauczyć się. Sieci decoder robią odwrotnie, konwertując kodowania na rozkład prawdopodobieństwa używany do generowania najbardziej prawdopodobnych słów w zdaniu wyjściowym. Kluczowo, zarówno sieci encoder, jak i decoder mają mechanizm uwagi.
Ponieważ GPU są w stanie przetwarzać dane równolegle, wiele mechanizmów uwagi jest używanych równolegle, obliczając istotne informacje dla wszystkich słów wejściowych. Ta zdolność do zwracania uwagi na wiele słów, określana jako „wielogłowy” mechanizm uwagi, pomaga sieci neuronowej nauczyć się kontekstu słowa w zdaniu, i jest to jedna z głównych zalet, które sieci Transformer mają nad RNN i LSTM.
Mechanizm uwagi
Mechanizm uwagi jest najważniejszą częścią sieci Transformer. Mechanizm uwagi pozwala modelom Transformer wykraczać poza ograniczenia uwagi typowych modeli RNN lub LSTM. Tradycyjne modele sekwencja-do-sekwencji odrzucają wszystkie pośrednie stany i używają tylko stanu końcowego/wektora kontekstu podczas inicjowania sieci decoder do generowania przewidywań o sekwencji wejściowej.
Odrzucanie wszystkiego poza wektorem kontekstu końcowego działa dobrze, gdy sekwencje wejściowe są dość krótkie. Jednak w miarę wzrostu długości sekwencji wejściowej wydajność modelu będzie się pogarszać przy użyciu tego sposobu. Jest to spowodowane tym, że staje się dość trudno podsumować długą sekwencję wejściową jako jeden wektor. Rozwiązaniem jest zwiększenie „uwagi” modelu i wykorzystanie pośrednich stanów encoder do konstruowania wektorów kontekstu dla sieci decoder.
Mechanizm uwagi definiuje, jak istotne są inne tokeny wejściowe dla modelu podczas tworzenia kodowań dla danego tokenu. Na przykład „to” jest ogólnym zaimekiem, często używanym do odniesienia się do zwierząt, gdy ich płeć nie jest znana. Mechanizm uwagi pozwoliłby modelowi Transformer określić, że w bieżącym kontekście „to” odnosi się do wiewiórki, ponieważ może on zbadać wszystkie istotne słowa w zdaniu wejściowym.
Mechanizm uwagi można użyć na trzy różne sposoby: encoder-do-decoder, encoder-only, decoder-only.
Uwaga encoder-decoder pozwala decoderowi brać pod uwagę sekwencje wejściowe podczas generowania wyjścia, podczas gdy mechanizmy uwagi encoder-only i decoder-only pozwalają sieciom brać pod uwagę wszystkie części poprzednich i bieżących sekwencji.
Konstrukcja mechanizmu uwagi można podzielić na pięć kroków:
- Obliczanie wyniku dla wszystkich stanów encoder.
- Obliczanie wag uwagi
- Obliczanie wektorów kontekstu
- Aktualizacja wektora kontekstu z poprzednim wyjściem kroku czasowego
- Generowanie wyjścia z decoderem
Pierwszym krokiem jest obliczenie przez decoder wyniku dla wszystkich stanów encoder. Jest to robione przez trenowanie sieci decoder, która jest podstawową siecią neuronową feed-forward. Gdy decoder jest trenowany na pierwszym słowie w sekwencji wejściowej, nie utworzono jeszcze żadnego stanu wewnętrznego/ukrytego, więc zwykle używa się ostatniego stanu encoder jako poprzedniego stanu decoder.
Aby obliczyć wagi uwagi, używa się funkcji softmax w celu wygenerowania rozkładu prawdopodobieństwa dla wag uwagi.
Po obliczeniu wag uwagi należy obliczyć wektor kontekstu. Jest to robione przez mnożenie wag uwagi i stanu ukrytego razem dla każdego kroku czasowego.
Po obliczeniu wektora kontekstu jest on używany wraz z wygenerowanym słowem w poprzednim kroku czasowym do generowania następnego słowa w sekwencji wyjściowej. Ponieważ decoder nie ma poprzedniego wyjścia, do odniesienia w pierwszym kroku czasowym, często używa się specjalnego tokenu „start”.
Różnice między transformatorami a RNN/LSTM
Przejdziemy szybko przez niektóre z różnic między RNN a LSTM.
RNN przetwarzają dane wejściowe sekwencyjnie, podczas gdy utrzymywany jest i modyfikowany wektor stanu ukrytego przez słowa wejściowe, gdy przepływają przez sieć. Stany ukryte RNN zwykle zawierają bardzo mało istotnych informacji dotyczących wcześniejszych danych wejściowych. Nowe dane wejściowe często nadpisują bieżący stan, co powoduje utratę informacji i pogorszenie wydajności w czasie.
W przeciwieństwie do tego, modele Transformer przetwarzają całą sekwencję wejściową na raz. Mechanizm uwagi pozwala każdemu słowu wyjściowemu być poinformowanym przez każde słowo wejściowe i stan ukryty, co sprawia, że sieć jest bardziej niezawodna dla długich fragmentów tekstu.
LSTM są zmodyfikowaną wersją RNN, dostosowaną do obsługi dłuższych sekwencji wejściowych. Architektura LSTM używa struktury zwanej „bramkami”, z „bramkami wejściowymi”, „bramkami wyjściowymi” i „bramkami zapomnienia”. Projekt z bramkami rozwiązuje problem utraty informacji typowy dla modeli RNN. Dane są nadal przetwarzane sekwencyjnie, a projekt o charakterze rekurencyjnym sprawia, że modele LSTM są trudne do trenowania przy użyciu obliczeń równoległych, co sprawia, że czas trenowania jest dłuższy.
Inżynierowie LSTM często dodawali mechanizmy uwagi do sieci, co znano, że poprawia wydajność modelu. Jednak ostatecznie odkryto, że sam mechanizm uwagi poprawił dokładność. To odkrycie doprowadziło do stworzenia sieci Transformer, które używały mechanizmów uwagi i obliczeń równoległych dzięki GPU.












