Dekoderowy Stos Samouwagi w architekturze Transformer

XLinkedInFacebook

Wprowadzenie

Dekoderowy stos samouwagi (ang. Decoder self-attention stack) to fundamentalny komponent architektury Transformer, wykorzystywany głównie w zadaniach wymagających generowania sekwencji, takich jak tłumaczenie maszynowe, tworzenie tekstu czy podsumowywanie. Składa się z wielu warstw, z których każda zawiera mechanizm samouwagi z maskowaniem, umożliwiający modelowi skupianie się na istotnych częściach danych wejściowych, ale tylko tych, które już zostały wygenerowane lub są dostępne w danym momencie. Jego kluczową rolą jest przetwarzanie informacji w sposób autoregresywny, co oznacza, że każde słowo lub token jest generowane w oparciu o kontekst utworzony przez poprzednio wygenerowane słowa. To odróżnia go od mechanizmów samouwagi stosowanych w enkoderze, które mają dostęp do całego wejścia jednocześnie.

Jak działają Stosy Samouwagi Dekodera?

Stosy Samouwagi Dekodera działają na zasadzie mechanizmu uwagi z maskowaniem. W każdej warstwie, dla każdego tokenu w sekwencji wyjściowej, model oblicza, jak bardzo powinien skupić się na każdym z poprzednich tokenów w tej samej sekwencji. W przeciwieństwie do warstw samouwagi w enkoderze, w dekoderze stosuje się maskowanie przyszłych tokenów, co oznacza, że token przy pozycji 't' może brać pod uwagę tylko tokeny na pozycjach od '1' do 't'. To zapobiega 'podglądaniu' przyszłych informacji i wymusza sekwencyjne generowanie. Każda warstwa samouwagi w dekoderze przyjmuje zbiór wektorów reprezentujących dotychczasową sekwencję wyjściową. Następnie, dla każdego wektora (zapytania, ang. query), porównuje go ze wszystkimi dostępnymi wektorami (kluczami, ang. keys), aby ocenić ich wzajemne znaczenie. Wynikiem tego porównania są wagi uwagi, które określają, jak duży wpływ ma dany klucz na aktualne zapytanie. Wagi te są następnie stosowane do wektorów wartości (ang. values), które są sumowane, tworząc nową, kontekstowo wzbogaconą reprezentację dla każdego tokenu. Cały proces jest powtarzany przez wiele warstw, co pozwala na budowanie coraz bardziej abstrakcyjnych i kontekstowych reprezentacji. Dodatkowo, dekoder zawiera zazwyczaj warstwy krzyżowej uwagi (ang. cross-attention), które pozwalają mu na uwzględnienie kontekstu z enkoderowej części modelu. W tych warstwach zapytania pochodzą z dekodera, natomiast klucze i wartości z wyjścia enkodera, umożliwiając dekoderowi 'spojrzenie' na całą sekwencję wejściową (np. zdanie w języku źródłowym) w celu lepszego dopasowania generowanej sekwencji wyjściowej.

Główne zalety i charakterystyka

Główną zaletą dekoderowego stosu samouwagi jest jego zdolność do efektywnego modelowania długodystansowych zależności w sekwencjach. Dzięki mechanizmowi uwagi, model może bezpośrednio łączyć dowolne dwa tokeny w sekwencji, niezależnie od ich odległości, co jest trudne do osiągnięcia dla tradycyjnych sieci rekurencyjnych (RNN). Pozwala to na generowanie bardziej spójnego i kontekstowego tekstu. Inną istotną korzyścią jest możliwość przetwarzania równoległego w obrębie jednej warstwy dla różnych pozycji w sekwencji, co znacznie przyspiesza trening w porównaniu do modeli sekwencyjnych. Chociaż generowanie jest autoregresywne i sekwencyjne token po tokenie, obliczenia wewnątrz każdej warstwy uwagi dla wszystkich tokenów już wygenerowanych mogą być wykonywane równocześnie.

Zastosowania w praktyce

Porównanie z innymi strukturami danych

W odróżnieniu od warstw samouwagi w enkoderze, dekoderowy stos samouwagi zawsze stosuje maskowanie, aby tokeny w danym momencie mogły widzieć tylko przeszłe i obecne tokeny w generowanej sekwencji, ale nigdy przyszłe. Enkoder natomiast ma pełny dostęp do wszystkich tokenów sekwencji wejściowej. Ta różnica jest kluczowa dla rozróżnienia ról: enkoder rozumie całe wejście, dekoder generuje wyjście krok po kroku. W porównaniu do modeli rekurencyjnych (RNN, LSTM, GRU), dekoderowy stos samouwagi znacznie lepiej radzi sobie z długodystansowymi zależnościami. RNN-y muszą przetwarzać sekwencje szeregowo, co prowadzi do problemu zanikającego lub eksplodującego gradientu i trudności w utrzymaniu informacji na bardzo długich dystansach. Architektura uwagi pozwala Transformerowi na równoległe obliczanie zależności między wszystkimi tokenami, co przekłada się na lepszą jakość generowanego tekstu i znacznie szybsze szkolenie.

Najlepsze praktyki (2026)

Typowe błędy i pułapki

office@freenetmedia.pl