Podstawy AI

Co to są sieci neuronowe Transformer?

mm
Dodaj Unite.AI do preferowanych źródeł w Google

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 do zadań przetwarzania języka naturalnego. Aby lepiej zrozumieć, co to jest model transformera i jak działa, przyjrzyjmy się bliżej modelom transformera i mechanizmom, które je napędzają.

Ten artykuł obejmie:

  • Modele sekwencyjne
  • Architektura sieci neuronowej Transformer
  • Mechanizm uwagi
  • Różnice między transformerami a RNN/LSTM

Modele sekwencyjne

Modele sekwencyjne są rodzajem modelu NLP, których używa się do konwersji sekwencji jednego typu na sekwencję innego typu. Istnieją różne rodzaje modeli sekwencyjnych, takie jak sieci neuronowe recurrentne i pamięć krótkotrwała i długotrwała (LSTM).

Tradycyjne modele sekwencyjne, takie jak RNN i LSTM, nie są głównym tematem tego artykułu, ale zrozumienie ich jest konieczne, aby docenić, jak modele transformera działają i dlaczego są lepsze od tradycyjnych modeli sekwencyjnych.

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 utworzenie zakodowanej reprezentacji słów w danych wejściowych. W każdym kroku czasowym sieć encoder pobiera dane wejściowe i stan ukryty z poprzedniego kroku czasowego. Wartości stanu ukrytego są aktualizowane, gdy dane przepływają przez sieć, aż do ostatniego kroku czasowego, gdzie generowany jest „wektor kontekstowy”. Wektor kontekstowy jest następnie przekazywany do sieci decoder, która jest używana do generowania sekwencji docelowej przez przewidywanie najbardziej prawdopodobnego słowa, które pasuje do słowa wejściowego dla odpowiednich kroków czasowych.

Te modele mogą być rozszerzone za pomocą „mechanizmu uwagi”. Mechanizm uwagi określa, które części wektora wejściowego sieć powinna uwzględnić, aby wygenerować właściwy wynik. Innymi słowy, mechanizm uwagi pozwala modelowi transformera 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ększych szczegółach później, ale na razie przyjrzyjmy się architekturze sieci neuronowej Transformer na wyższym poziomie.

W ogóle, sieć neuronowa Transformer wygląda mniej więcej tak:

Chociaż ta ogólna struktura może się zmieniać między sieciami, podstawowe elementy pozostają 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ę danych wejściowych i konwertując je na dwie inne sekwencje. Sieć Transformer wytwarza sekwencję wektorów słów i kodowań pozycyjnych.

Wektory słów to po prostu tekst reprezentowany w postaci numerycznej, którą sieć neuronowa może przetwarzać. Tymczasem kodowania pozycyjne to wektorowe reprezentacje zawierające informacje o położeniu bieżącego słowa w stosunku do innych słów.

Inne modele sieci neuronowych opartych na tekście, 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 położenia słowa w zdaniu.

To pozwala modelowi sieci neuronowej zachować informacje dotyczące względnego położenia słów wejściowych, nawet po tym, jak wektory przechodzą 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, jedną z głównych różnic między nimi jest to, że wszystkie 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 zakodowania na rozkład prawdopodobieństwa używany do generowania najbardziej prawdopodobnych słów w zdaniu wyjściowym. Kluczowe jest to, że zarówno sieci encoder, jak i decoder mają mechanizm uwagi.

Ponieważ GPU są w stanie przetwarzać dane równolegle, używa się wielu mechanizmów uwagi jednocześnie, obliczając istotne informacje dla wszystkich słów wejściowych. Ta zdolność do zwracania uwagi na wiele słów, określana jako „uwaga wielogłowa”, 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 sekwencyjne odrzucają wszystkie pośrednie stany i używają tylko stanu końcowego/wektora kontekstowego podczas inicjowania sieci decoder do generowania predykcji o sekwencji wejściowej.

Odrzucanie wszystkiego poza wektorem kontekstowym działa dobrze, gdy sekwencje wejściowe są dość krótkie. Jednak gdy długość sekwencji wejściowej wzrasta, wydajność modelu pogarsza się, ponieważ staje się bardzo trudno podsumować długą sekwencję wejściową jako jeden wektor. Rozwiązaniem jest zwiększenie „uwagi” modelu i użycie pośrednich stanów encoder do konstruowania wektorów kontekstowych dla sieci decoder.

Mechanizm uwagi określa, jak ważne są inne tokeny wejściowe dla modelu podczas tworzenia zakodowań dla danego tokenu. Na przykład, „ono” to ogólne zaimek, często używany do odniesienia się do zwierząt, gdy ich płeć nie jest znana. Mechanizm uwagi pozwala modelowi Transformer określić, że w bieżącym kontekście „ono” odnosi się do wiewiórki, ponieważ może on zbadać wszystkie istotne słowa w zdaniu wejściowym.

Mechanizm uwagi może być użyty na trzy różne sposoby: encoder-decoder, encoder-only, decoder-only.

Uwaga encoder-decoder pozwala sieci decoder uwzględniać sekwencje wejściowe podczas generowania wyniku, podczas gdy mechanizmy uwagi encoder-only i decoder-only pozwalają sieciom uwzględniać wszystkie części poprzednich i bieżących sekwencji.

Konstrukcja mechanizmu uwagi można podzielić na pięć kroków:

  1. Obliczanie wyniku dla wszystkich stanów encoder.
  2. Obliczanie wag uwagi
  3. Obliczanie wektorów kontekstowych
  4. Aktualizacja wektora kontekstowego z poprzednim wynikiem
  5. Generowanie wyniku z siecią decoder

Pierwszym krokiem jest obliczenie wyniku dla wszystkich stanów encoder przez sieć decoder. Jest to realizowane przez przeszkolenie sieci decoder, która jest podstawową siecią neuronową feed-forward. Gdy sieć decoder jest przeszkolona na pierwszym słowie sekwencji wejściowej, nie utworzono jeszcze żadnego stanu wewnętrznego/ukrytego, więc zwykle używa się ostatniego stanu encoder jako poprzedniego stanu sieci decoder.

Aby obliczyć wagi uwagi, używa się funkcji softmax w celu wygenerowania rozkładu prawdopodobieństwa dla wag uwagi.

Gdy wagi uwagi są obliczone, należy obliczyć wektor kontekstowy. Jest to realizowane przez mnożenie wag uwagi i stanu ukrytego razem dla każdego kroku czasowego.

Po obliczeniu wektora kontekstowego jest on używany wraz z wygenerowanym słowem w poprzednim kroku czasowym do generowania następnego słowa w sekwencji wynikowej. Ponieważ sieć decoder nie ma poprzedniego wyniku, na który mógłby się powołać w pierwszym kroku czasowym, często używa się specjalnego tokenu „start” zamiast.

Różnice między transformerami a RNN/LSTM

Przejdźmy 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 przechodzą przez sieć. Stany ukryte RNN zwykle zawierają bardzo niewiele 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 wynikowemu 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 to zmodyfikowana wersja RNN, dostosowana 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 zajmuje się utratą informacji typową dla modeli RNN. Dane są nadal przetwarzane sekwencyjnie, a rekurencyjny projekt architektury sprawia, że modele LSTM są trudne do przeszkolenia przy użyciu obliczeń równoległych, co sprawia, że czas treningu 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 poprawia 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.

Blogger i programista ze specjalnościami w Machine Learning i Deep Learning tematy. Daniel liczy, że pomoże innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.