Artykuły Tekstowe

Transformer: Rewolucyjna architektura sieci neuronowej

Transformer RNN

W artykule „Attention Is All You Need” przedstawiono Transformer, innowacyjną architekturę sieci neuronowej opartą na mechanizmie samo-uwagi, który uznano za szczególnie dobrze przystosowany do zrozumienia języka. W badaniach wykazano, że Transformer przewyższa zarówno rekurencyjne, jak i splotowe modele w akademickich testach tłumaczenia z angielskiego na niemiecki i z angielskiego na francuski. Poza wyższą jakością tłumaczenia, Transformer wymaga mniejszej mocy obliczeniowej do nauki i jest znacznie lepiej dostosowany do współczesnego sprzętu uczenia maszynowego, przyspieszając trening nawet o rząd wielkości.

Dokładność i wydajność w zrozumieniu języka

Sieci neuronowe zwykle przetwarzają język poprzez generowanie reprezentacji wektorowych o stałej lub zmiennej długości. Zacząwszy od reprezentacji pojedynczych słów lub ich części, agregują informacje z otaczających słów, aby określić znaczenie danego fragmentu języka w kontekście. Dla przykładu, decyzja o najbardziej prawdopodobnym znaczeniu i odpowiedniej reprezentacji słowa „bank” w zdaniu „I arrived at the bank after crossing the…” wymaga wiedzy, czy zdanie kończy się na „… road.” czy „… river.”

Rekurencyjne sieci neuronowe (ang. recurrent neural networks RNN) w ostatnich latach stały się typową architekturą sieci dla tłumaczenia, przetwarzając język sekwencyjnie, od lewej do prawej lub od prawej do lewej. Czytając po jednym słowie, RNN muszą wykonać wiele kroków, aby podjąć decyzje zależne od słów znajdujących się daleko od siebie. Przetwarzając wcześniej podane zdanie, RNN może tylko ustalić, że „bank” prawdopodobnie odnosi się do brzegu rzeki po przeczytaniu każdego słowa między „bank” a „rzeka” krok po kroku. Wcześniejsze badania wykazały, że im więcej takich kroków wymagają decyzje, tym trudniej rekurencyjnej sieci nauczyć się podejmować te decyzje.

Sekwencyjna natura RNN utrudnia również w pełni wykorzystanie szybkich urządzeń obliczeniowych, takich jak TPU i GPU, które są wydajne w przetwarzaniu równoległym, a nie sekwencyjnym. Sieci neuronowe konwolucyjne (ang. Convolutional neural networks CNN) są znacznie mniej sekwencyjne niż RNN, ale w architekturach takich jak ByteNet czy ConvS2S liczba kroków wymaganych do połączenia informacji z odległych części wejścia nadal rośnie wraz ze wzrostem odległości.

Transformer

W przeciwieństwie do powyższych, Transformer wykonuje tylko małą, stałą liczbę kroków (dobraną empirycznie). W każdym kroku stosuje mechanizm samo-uwagi, który bezpośrednio modeluje relacje między wszystkimi słowami w zdaniu, niezależnie od ich względnej pozycji. We wcześniejszym przykładzie „I arrived at the bank after crossing the river”, aby stwierdzić, że słowo „bank” odnosi się do brzegu rzeki, a nie do instytucji finansowej, Transformer może nauczyć się natychmiast zwracać uwagę na słowo „river” i podejmować tę decyzję w jednym kroku. W rzeczywistości, w naszym modelu tłumaczenia angielsko-francuskiego zaobserwowano dokładnie to zachowanie.

Bardziej konkretnie, aby obliczyć kolejną reprezentację dla danego słowa – na przykład „bank” – Transformer porównuje je ze wszystkimi innymi słowami w zdaniu. Wynikiem tych porównań jest wynik uwagi dla każdego innego słowa w zdaniu. Te wyniki uwagi określają, ile każde z innych słów powinno przyczynić się do następnej reprezentacji „banku”. W przykładzie rozstrzygające „rzeka” mogłoby otrzymać wysoki wynik uwagi przy obliczaniu nowej reprezentacji dla „banku”. Wyniki uwagi są następnie używane jako wagi dla ważonej średniej wszystkich reprezentacji słów, która jest wprowadzana do w pełni połączonej sieci, aby wygenerować nową reprezentację dla „banku”, odzwierciedlającą, że zdanie mówi o brzegu rzeki.

Poniższa animacja ilustruje, jak stosowany jest Transformer do tłumaczenia maszynowego. Sieci neuronowe do tłumaczenia maszynowego zwykle zawierają enkoder, który odczytuje zdanie wejściowe i generuje jego reprezentację. Dekoder następnie generuje zdanie wyjściowe słowo po słowie, konsultując się z reprezentacją wygenerowaną przez enkoder. Transformer zaczyna od wygenerowania początkowych reprezentacji, czyli osadzeń, dla każdego słowa. Są one reprezentowane przez niewypełnione koła. Następnie, korzystając z samo-uwagi, agreguje informacje ze wszystkich innych słów, generując nową reprezentację dla każdego słowa, informowaną przez cały kontekst, reprezentowaną przez wypełnione kule. Ten krok jest potem powtarzany wielokrotnie równolegle dla wszystkich słów, sukcesywnie generując nowe reprezentacje.

Źródło: https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html

Dekoder działa podobnie, ale generuje jedno słowo na raz, od lewej do prawej. Przywiązuje uwagę nie tylko do innych wcześniej wygenerowanych słów, ale także do ostatecznych reprezentacji wygenerowanych przez enkoder.

Przepływ informacji

Oprócz wydajności obliczeniowej i większej dokładności, kolejnym intrygującym aspektem Transformer jest to, że można zobaczyć, na które inne części zdania sieć zwraca uwagę podczas przetwarzania lub tłumaczenia danego słowa, zdobywając wgląd w przepływ informacji przez sieć.

Aby zilustrować to, wybrano przykład związany z zjawiskiem, które jest notorycznie trudne dla systemów tłumaczenia maszynowego: rozwiązaniem koreferencji. Weźmy pod uwagę następujące zdania i ich francuskie tłumaczenia:

- The animal didn't cross the street because it was too tired.
- L'animal n'a pas traversé la rue parce qu'il était trop fatigué.

- The animal didn't cross the street because it was too wide.
- L'animal n'a pas traversé la rue parce qu'elle était trop large.

Jest oczywiste dla większości, że w pierwszym zdaniu „it” odnosi się do zwierzęcia, a w drugim do ulicy. Podczas tłumaczenia tych zdań na francuski lub niemiecki, tłumaczenie dla „it” zależy od rodzaju rzeczownika, do którego się odnosi – a we francuskim „animal” i „street” mają różne rodzaje. W przeciwieństwie do aktualnego modelu Google Translate, Transformer tłumaczy oba te zdania na francuski poprawnie. Wizualizując, na które słowa enkoder zwracał uwagę podczas obliczania ostatecznej reprezentacji dla słowa „it”, można zrozumieć, jak sieć podjęła decyzję. W jednym ze swoich kroków Transformator wyraźnie zidentyfikował dwa rzeczowniki, do których „it” mogło się odnosić, a ilość uwagi odzwierciedla jego wybór w różnych kontekstach.

Podsumowanie

Jest dużo emocji związanych z potencjałem Transformera, a już zaczęto stosować go do innych problemów, które dotyczą nie tylko języka naturalnego, ale także zupełnie innych wejść i wyjść, takich jak obrazy i wideo. Trwające eksperymenty są znacznie przyspieszone przez bibliotekę Tensor2Tensor, którą udostępniono jako otwarte oprogramowanie. W rzeczywistości, po pobraniu biblioteki można szkolić własne sieci za pomocą prostych promtów.

PS. Oryginał powyższego artykułu powstał 2017 roku. Model Transformer jest podstawą obecnej rewolucji AI.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *