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
Thumb
Architektura transformera z jedną warstwą kodera i dekodera oraz oryginalnym umiejscowieniem warstwy normalizacyjnej.

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].

Thumb
transformer jest złożony z warstw kodera i dekodera nałożonych na siebie

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

Thumb
Jeden blok kodera

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

Thumb
Jeden blok dekodera

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]:

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

Thumb
Porównanie różnych mechanizmów uwagi wraz z ilością wymaganej pamięci podręcznej dla wartości KV

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.

Thumb
Architektura DeepSeek V2 z wyróżnioną ukrytą uwagą wieloczłonową wraz z wariantem mieszanki ekspertów

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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads