Kontakt z nami
Kurs mistrzowski AI:

AI 101

Czym są transformatorowe sieci neuronowe?

mm
Zaktualizowano on

Opisane sieci neuronowe transformatorów

Transformatory to rodzaj modelu uczenia maszynowego, który specjalizuje się w przetwarzaniu i interpretacji danych sekwencyjnych, dzięki czemu są optymalne do zadań związanych z przetwarzaniem języka naturalnego. Aby lepiej zrozumieć, czym jest transformator uczenia maszynowego i jak działa, przyjrzyjmy się bliżej modelom transformatorów i mechanizmom, które je napędzają.

Ten artykuł obejmie:

  • Modele sekwencji do sekwencji
  • Architektura sieci neuronowej transformatora
  • Mechanizm uwagi
  • Różnice między transformatorami a RNN/LSTM

Modele sekwencji do sekwencji

Modele sekwencja do sekwencji to rodzaj modelu NLP używanego do przekształcania sekwencji jednego typu na sekwencję innego typu. Istnieją różne typy modeli sekwencyjnych, np Nawracająca sieć neuronowa modele i Długotrwała pamięć (LSTM) modele.

Tradycyjne modele sekwencyjne, takie jak RNN ​​i LSTMS, nie są tematem tego artykułu, ale ich zrozumienie jest konieczne, aby docenić sposób działania modeli transformatorów i ich przewagę nad tradycyjnymi modelami sekwencyjnymi.

W skrócie modele RNN i modele LSTM składają się z sieci koderów i dekoderów, które analizują dane wejściowe w różnych krokach czasowych. Model kodera jest odpowiedzialny za utworzenie zakodowanej reprezentacji słów w danych wejściowych. W każdym kroku sieć kodera przyjmuje sekwencję wejściową i stan ukryty z poprzedniego kroku czasowego w serii. Wartości stanu ukrytego są aktualizowane w miarę przesyłania danych przez sieć, aż do ostatniego kroku czasowego, w którym generowany jest „wektor kontekstu”. Wektor kontekstu jest następnie przekazywany do sieci dekodera, która służy do generowania sekwencji docelowej poprzez przewidywanie najbardziej prawdopodobnego słowa, które łączy się ze słowem wejściowym w odpowiednich krokach czasowych.

Modele te można rozszerzyć poprzez zastosowanie „mechanizm uwagi”. Mechanizm uwagi określa, na których częściach wektora wejściowego sieć powinna się skupić, aby wygenerować odpowiedni wynik. Inaczej mówiąc, mechanizm uwagi pozwala modelowi transformatora przetwarzać jedno słowo wejściowe, jednocześnie uwzględniając odpowiednie informacje zawarte w innych słowach wejściowych. Mechanizmy uwagi maskują również słowa, które nie zawierają istotnych informacji.

Architektura sieci neuronowej transformatora

Później zajmiemy się mechanizmem uwagi bardziej szczegółowo, ale na razie przyjrzyjmy się mu architektura transformatorowej sieci neuronowej na wyższym poziomie.

Ogólnie rzecz biorąc, transformatorowa sieć neuronowa wygląda mniej więcej tak:

Chociaż ta ogólna struktura może zmieniać się w zależności od sieci, podstawowe elementy pozostaną takie same: kodowanie pozycyjne, wektory słów, mechanizm uwagi, sieć neuronowa ze sprzężeniem zwrotnym.

Kodowanie pozycyjne i wektory słów

Działa transformatorowa sieć neuronowa poprzez wzięcie sekwencji danych wejściowych i konwersję tych danych wejściowych na dwie inne sekwencje. Transformator wytwarza sekwencję osadzania wektorów słów i kodowania pozycyjnego.

Osadzanie wektorów słów to po prostu tekst przedstawiony w formacie liczbowym, który może przetworzyć sieć neuronowa. Tymczasem kodowania pozycyjne to wektoryzowane reprezentacje zawierające informację o pozycji bieżącego słowa w zdaniu wejściowym w stosunku do innych słów.

Inne tekstowe modele sieci neuronowych, takie jak RNN ​​i LSTM, wykorzystują wektory do reprezentowania słów w danych wejściowych. Te osadzania wektorów odwzorowują słowa na wartości stałe, ale jest to ograniczające, ponieważ słów można używać w różnych kontekstach. Sieć transformatorowa rozwiązuje ten problem, uelastyczniając wartości słów, wykorzystując funkcje sinusoidalne, dzięki którym wektory słów przyjmują różne wartości w zależności od pozycji słowa w zdaniu.

Dzięki temu model sieci neuronowej zachowuje informację dotyczącą względnego położenia słów wejściowych, nawet po przejściu wektorów przez warstwy sieci transformatorowej.

Kodowanie pozycyjne i osadzanie wektorów słów są sumowane, a następnie przekazywane zarówno do sieci kodera, jak i dekodera. Chociaż transformatorowe sieci neuronowe korzystają ze schematów kodera/dekodera podobnie jak sieci 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 sieciach RNN/LSTM dane są przekazywane sekwencyjnie.

Sieci koderów są odpowiedzialne za przekształcanie danych wejściowych w reprezentacje, z których sieć może się uczyć, podczas gdy sieci dekoderów działają odwrotnie i przekształcają kodowanie w rozkład prawdopodobieństwa używany do generowania najbardziej prawdopodobnych słów w zdaniu wyjściowym. Co najważniejsze, zarówno sieci koderów, jak i dekoderów posiadają mechanizm uwagi.

Ponieważ procesory graficzne są zdolne do przetwarzania równoległego, równolegle używanych jest wiele mechanizmów uwagi, obliczających istotne informacje dla wszystkich słów wejściowych. Ta zdolność do skupiania uwagi na wielu słowach, nazywana uwagą „wielogłową”, pomaga sieci neuronowej poznać kontekst słowa w zdaniu i jest to jedna z głównych przewag sieci transformatorowych nad sieciami RNN i LSTM.

Mechanizm uwagi

Mechanizm uwagi jest najważniejszą częścią sieci transformatorowej. Mechanizm uwagi umożliwia modelom transformatorów wyjście poza granicę uwagi typowego modelu RNN lub LSTM. Tradycyjne modele „sekwencja do sekwencji” odrzucają wszystkie stany pośrednie i wykorzystują jedynie końcowy wektor stanu/kontekstu podczas inicjalizacji sieci dekodera w celu wygenerowania przewidywań dotyczących sekwencji wejściowej.

Odrzucenie wszystkiego oprócz końcowego wektora kontekstu działa dobrze, gdy sekwencje wejściowe są dość małe. Jednak wraz ze wzrostem długości sekwencji wejściowej wydajność modelu będzie się pogarszać podczas stosowania tej metody. Dzieje się tak, ponieważ podsumowanie długiej sekwencji wejściowej w postaci pojedynczego wektora staje się dość trudne. Rozwiązaniem jest zwiększenie „uwagi” modelu i wykorzystanie pośrednich stanów kodera do skonstruowania wektorów kontekstu dla dekodera.

Mechanizm uwagi określa, jak ważne są inne tokeny wejściowe dla modelu podczas tworzenia kodowania dla dowolnego tokenu. Na przykład „it” jest zaimkiem ogólnym, często używanym w odniesieniu do zwierząt, których płeć nie jest znana. Mechanizm uwagi pozwoliłby modelowi transformatora określić, że w obecnym kontekście „to” odnosi się do wiewiórki, ponieważ może zbadać wszystkie istotne słowa w zdaniu wejściowym.

Mechanizmu uwagi można używać na trzy różne sposoby: koder-dekoder, tylko koder, tylko dekoder.

Uwaga kodera-dekodera pozwala dekoderowi uwzględniać sekwencje wejściowe podczas generowania sygnału wyjściowego, podczas gdy mechanizmy uwagi tylko dla kodera i tylko dla dekodera pozwalają sieciom uwzględniać odpowiednio wszystkie części poprzednich i bieżących sekwencji.

Konstrukcję mechanizmu uwagi można podzielić na pięć etapów:

  1. Obliczanie wyniku dla wszystkich stanów kodera.
  2. Obliczanie wag uwagi
  3. Obliczanie wektorów kontekstowych
  4. Aktualizowanie wektora kontekstu z danymi wyjściowymi poprzedniego kroku czasowego
  5. Generowanie sygnału wyjściowego za pomocą dekodera

Pierwszym krokiem jest obliczenie przez dekoder wyniku dla wszystkich stanów kodera. Odbywa się to poprzez uczenie sieci dekodera, która jest podstawową siecią neuronową ze sprzężeniem zwrotnym. Kiedy dekoder jest szkolony na pierwszym słowie w sekwencji wejściowej, nie został jeszcze utworzony żaden stan wewnętrzny/ukryty, więc ostatni stan kodera jest zwykle używany jako poprzedni stan dekodera.

Aby obliczyć wagi uwagi, wykorzystuje się funkcję softmax, która generuje rozkład prawdopodobieństwa wag uwagi.

Po obliczeniu wag uwagi należy obliczyć wektor kontekstu. Odbywa się to poprzez pomnożenie wag uwagi i stanu ukrytego dla każdego kroku czasowego.

Po obliczeniu wektora kontekstu jest on używany wraz ze słowem wygenerowanym w poprzednim kroku czasowym w celu wygenerowania następnego słowa w sekwencji wyjściowej. Ponieważ dekoder nie ma żadnego poprzedniego wyjścia, do którego mógłby się odwołać w pierwszym kroku czasowym, zamiast tego często używany jest specjalny token „start”.

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

Omówmy szybko niektóre różnice między RNN i LSTM.

Sieci RNN przetwarzają dane wejściowe sekwencyjnie, podczas gdy wektor stanu ukrytego jest utrzymywany i zmieniany przez słowa wejściowe w miarę ich przemieszczania się w sieci. Ukryte stany RNN zazwyczaj 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 z czasem pogarsza wydajność.

Natomiast modele transformatorów przetwarzają całą sekwencję wejściową na raz. Mechanizm uwagi umożliwia informowanie każdego słowa wyjściowego o każdym wejściu i stanie ukrytym, dzięki czemu sieć jest bardziej niezawodna w przypadku długich fragmentów tekstu.

LSTM to zmodyfikowana wersja RNN, dostosowana do obsługi dłuższych sekwencji wejściowych. Architektura LSTM wykorzystuje strukturę zwaną „bramkami”, z „bramkami wejściowymi”, „bramkami wyjściowymi” i „bramkami zapomnianymi”. Konstrukcja bramkowana radzi sobie z utratą informacji typową dla modeli RNN. Dane są nadal przetwarzane sekwencyjnie, a powtarzalny projekt architektury sprawia, że ​​modele LSTM są trudne do trenowania przy użyciu obliczeń równoległych, co ogólnie wydłuża czas uczenia.

Inżynierowie LSTM często dodawali do sieci mechanizmy uwagi, o których wiadomo, że poprawiają wydajność modelu. Jednak w końcu odkryto, że sam mechanizm uwagi poprawia dokładność. Odkrycie to doprowadziło do powstania sieci transformatorowych wykorzystujących mechanizmy uwagi i obliczenia równoległe dzięki procesorom graficznym.