Najlepsze pytania
Chronologia
Czat
Perspektywa
Transformer (sztuczna inteligencja)
architektura uczenia głębokiego Z Wikipedii, wolnej encyklopedii
Remove ads
Transformer[1][2] (lub transformator[3][4][5][6]) – architektura uczenia głębokiego opracowana przez Google i oparta na zrównoleglonym mechanizmie uwagi, zaproponowana w 2017 w artykule zatytułowanym „Attention Is All You Need” („Uwaga to wszystko, czego potrzebujesz”)[7]. Zastosowany w transformerach mechanizm uwagi (ang. attention) wywodzi się z algorytmu zaproponowanego przez Bahdanau i innych w 2014 do tłumaczenia maszynowego oraz mechanizmu Fast Weight Controller przedstawionego w 1992[8][9].
Przewagą transformerów nad rekurencyjnymi sieciami neuronowymi, takimi jak długa pamięć krótkotrwała, jest to, że nie mają jednostek rekurencyjnych, a zatem wymagają krótszego uczenia[10]. Jedna z odmian transformerów została zastosowana do uczenia dużych modeli językowych.
Architektura ta początkowo stworzona jako mechanizm ulepszenia architektur tłumaczenia maszynowego[11][12], a obecnie ta architektura jest wykorzystywana w przetwarzaniu języka naturalnego i rozpoznawaniu obrazów jak i w przetwarzaniu dźwięku i przetwarzaniu multimodalnym (łączącym różne obszary, np. rozpoznawanie języka i obrazów). Doprowadziła ona również do rozwoju wstępnie wytrenowanych systemów, takich jak GPT[13] i BERT[14].
Remove ads
Architektura
Podsumowanie
Perspektywa

Transformer w swojej podstawowej formie składa się zasadniczo z połączonych szeregowo koderów i dekoderów[7][15][16]. Sekwencja wejściowa jest przekształcana w reprezentację wektorową za pomocą tzw. warstwy osadzającej (embedding layer). Wagi tej warstwy są dostosowywane w trakcie treningu. W przypadku transformerów dodatkowo stosuje się kodowanie pozycji (position encoding), dzięki któremu można uwzględnić kolejność słów[15].
Sekwencja wejściowa (np. zdanie) jest przekazywana w formie reprezentacji wektorowej do serii koderów i przekształcana w wewnętrzną reprezentację, która w uproszczeniu oddaje znaczenie tego, co zostało podane na wejściu. Następnie ta wewnętrzna reprezentacja trafia do dekoderów, które na jej podstawie tworzą sekwencję wyjściową (np. tłumaczenie na inny język)[16].
Dane wejściowe są przetwarzane w trybie wsadowym (w grupach, tzw. batchach), a maksymalna długość sekwencji, którą można wprowadzić, zależy od rozmiaru ścieżki koder-dekoder[15]. W zależności od wielkości sieci można przetwarzać na przykład pojedyncze zdania lub całe akapity. W przypadku sekwencji wejściowych krótszych niż pojemność ścieżki koder-dekoder stosuje się wypełnianie (ang. padding), aby zapełnić całą sekwencję wejściową[15]. Koder składa się z modułu samouwagi (self-attention) oraz modułu jednokierunkowego (feedforward), natomiast dekoder składa się z modułu samouwagi, modułu uwagi kodera-dekodera i modułu jednokierunkowego[16].

Transformery rozwiązują problem zrównoleglenia, przez wykorzystanie koderów i dekoderów wraz z modułami uwagi. Moduły uwagi przyspieszają proces tłumaczenia kolejnych sekwencji. Wszystkie kodery mają identyczną architekturę, a dekodery są do siebie bardzo podobne. Każdy koder składa się z dwóch warstw: modułu samouwagi i modułu jednokierunkowego. Sekwencja wejściowa trafia najpierw do warstwy samouwagi. Dekoder posiada obie te warstwy, ale pomiędzy nimi znajduje się warstwa uwagi pomagająca dekoderowi skupić się na najistotniejszych elementach wejścia[17]. Ponadto architektura zawiera połączenia rezydualne i warstwy normalizujące[18].
Koder

Zasadę działania kodera można przedstawić za pomocą funkcji z , gdzie:
Jak widać powyżej, funkcje softmax i ReLU są używane do obliczeń[19].
Dekoder

Podczas inferencji, dekoder może być użyty do autoregresywnego generowania sekwencji. Dekoder jako wejście dostaje wartość startową sekwencji po czym przekazuje kolejny najbardziej prawdopodobny token, który jest przekazany do kolejnego dekodera[20].
Każdy dekoder składa się z trzech części[20]:
- Warstwa samouwagi z maską (Masked Multi-Head Attention)
- Wartswa samouwagi z koderem (Multi-Head Attention with encoder)
- Warstwa sieci jednokierunkowej
Adaptacje architektury
Duże modele językowe nie używane do pierwotnego zastosowania jakim jest tłumaczenie tekstu, które nie muszą przewidywać całych zdań korzystają tylko z kodera lub dekodera z oryginalnej architektury transformera. Wczesne modele GPT korzystają tylko z modeli bazujących na dekoderach wytrenowane aby przewidywać kolejny token w sekwencji[21], a model BERT od Google wykorzystuje tylko warstwę koderów wytrenowaną aby przewidywać losowy zamaskowany token w sekwencji[22].
Remove ads
Dalsze usprawnienia
Podsumowanie
Perspektywa
Dostępne implementacje
Model transformera został zaimplementowany w standardowych bibliotekach do głębokiego uczenia jak TensorFlow i PyTorch. Hugging Face udostępnia bibliotekę Transformers z architekturami transformerów i modelami wstępnie wytrenowanymi[23].
Uwaga wielozapytaniowa

Uwaga wielozapytaniowa (ang. Multi-Query Attention) zmienia standardową uwagę wieloczłonową[24], to znaczy:
jest zastąpiona przez tylko jedna macierz wag
Podejście to ma neutralny wpływ na jakość modelu i szybkość treningu ale przyspiesza szybkość inferencji.

Ukryta uwaga wieloczłonowa (ang. Multihead Latent Attention) jest dodatkowym rozszerzeniem architektury uwagi wieloczłonowej, w której każdy wektor wejściowy jest dzielony na dwie niskowymiarowe części, jedna dla zapytania (Q vector) i jedna dla klucza i wartości (KV vector). Ta modyfikacja zmniejsza wymaganą pamięć podręczną, ponieważ wektory są niskowymiarowe[25].
Multimodalność
Transformery mogą być również użyte do modalności wejściowej i wyjściowej, zazwyczaj poprzez tokenizację modalności.
Transformer wizyjny jest adaptacją transformera do zastosowań wizji komputerowej poprzez rozbicie obrazów wejściowych na serię fragmentów, przekształcenie ich w wektory i traktowanie ich jak tokenów w standardowym transformerze[26].
Do generowania obrazów, późniejsze wersje DALL-E są oparte na dekoderach transformera generujących tekst, który potem jest konwertowany przez autoenkoder wariacyjny do obrazu[27].
Remove ads
Przypisy
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads