Pierwsze kroki z Lokalnym AI

Zbuduj własne, prywatne AI. Zobacz kompleksowe zestawienie poradników – od instalacji pierwszej aplikacji po zaawansowanych agentów. Sprawdź poradnik

Architektura Transformera: mechanizmy self-attention, skalowalność i ewolucja w stronę LLM

anatomia
Streszczenie AI

Transformery z 2017 roku zastąpiły rekurencję mechanizmem self‑attention, dzięki czemu modele można trenować na niespotykaną skali danych i stały się fundamentem LLM‑ów. Mechanizm oparty na skalowanych iloczynach zapytań, kluczy i wartości umożliwia równoległe, wielogłowicowe przetwarzanie, a kodowanie pozycyjne zachowuje kolejność tokenów. Koszt pamięci i czasu rośnie kwadratowo z długością sekwencji, co przyczyniło się do rozwoju optymalizacji takich jak FlashAttention czy State‑Space Models, a dostrajanie modeli odbywa się w rekordowej efektywności parametrycznej, np. poprzez LoRA.

Spis treści:

Wprowadzenie architektury Transformera w 2017 roku zdefiniowało na nowo przetwarzanie sekwencji w uczeniu maszynowym, eliminując ograniczenia rekurencji na rzecz czystych mechanizmów uwagi. Zastąpienie sekwencyjnego przepływu stanów ukrytych równoległym przetwarzaniem macierzowym umożliwiło trenowanie modeli na bezprecedensową skalę danych, dając początek współczesnym dużym modelom językowym (LLM).

Mechanizm self-attention: wektory zapytań, kluczy i wartości

Fundamentem Transformera jest mechanizm samo-uwagi (ang. scaled dot-product self-attention). Jego zadaniem jest dynamiczne wyznaczanie powiązań semantycznych i syntaktycznych pomiędzy wszystkimi tokenami w przetwarzanej sekwencji, niezależnie od odległości dzielącej je w tekście wejściowym.

Dla wejściowej sekwencji wektorów o wymiarze d_{\text{model}}, zebranych w macierz X \in \mathbb{R}^{n \times d_{\text{model}}} (gdzie n to długość sekwencji), model wylicza trzy odrębne reprezentacje liniowe za pomocą uczonych macierzy wag W^Q, W^K \in \mathbb{R}^{d_{\text{model}} \times d_k} oraz W^V \in \mathbb{R}^{d_{\text{model}} \times d_v}:

  • Zapytania (Queries, Q): reprezentują bieżący token poszukujący kontekstu w pozostałych elementach sekwencji: Q = X W^Q.
  • Klucze (Keys, K): pełnią rolę etykiet lub indeksów opisujących właściwości każdego tokenu: K = X W^K.
  • Wartości (Values, V): przechowują właściwą informację semantyczną przekazywaną dalej po zważeniu: V = X W^V.

Obliczenie wag uwagi rozpoczyna się od iloczynu skalarnego macierzy zapytań i transponowanej macierzy kluczy Q K^T. Wynik ten określa stopień dopasowania każdego tokenu do każdego innego tokenu w sekwencji. Otrzymany iloczyn skaluje się przez pierwiastek kwadratowy z wymiarowości klucza \sqrt{d_k}, a następnie normalizuje funkcją softmax wzdłuż wierszy:

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{Q K^T}{\sqrt{d_k}}\right) V

Współczynnik skalujący \frac{1}{\sqrt{d_k}} stanowi krytyczny element stabilizujący proces uczenia. W przestrzeniach o wysokiej wymiarowości (np. d_k = 64 lub 128) iloczyn skalarny dwóch niezależnych wektorów o zerowej średniej i jednostkowej wariancji osiąga wariancję równą d_k. Bez skalowania duże wartości wejściowe kierowane do funkcji softmax spychałyby jej gradienty w obszary nasycenia bliskie zeru, prowadząc do zjawiska zanikającego gradientu (ang. vanishing gradient problem).

Skalowanie iloczynu skalarnego przez pierwiastek z wymiaru klucza przywraca wariancję argumentów funkcji softmax do poziomu rzędu jedności, co zabezpiecza wsteczną propagację gradientu przed saturacją.

Architektura bazowa: Multi-Head Attention, enkodowanie pozycji i połączenia rezydualne

Pojedyncza warstwa uwagi uśrednia zależności wzdłuż pojedynczej przestrzeni projekcji. Aby umożliwić modelowi jednoczesne skupianie się na informacjach z różnych podprzestrzeni reprezentacyjnych i pozycji, zastosowano mechanizm Multi-Head Attention (MHA).

W MHA parametry Q, K, V są rzutowane liniowo h razy na mniejsze podprzestrzenie o wymiarach d_k = d_v = d_{\text{model}} / h. Następnie dla każdej głowicy obliczany jest niezależny mechanizm uwagi, a wyjścia są łączone (konkatenowane) i rzutowane macierzą W^O \in \mathbb{R}^{h d_v \times d_{\text{model}}}:

\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O

gdzie \text{head}_i = \text{Attention}(Q W_i^Q, K W_i^K, V W_i^V)

Mechanizm samo-uwagi jest niezmienniczy względem permutacji (ang. permutation invariant) – zmiana kolejności tokenów w macierzy wejściowej dałaby identyczne wektory wyjściowe, jedynie w zmienionej kolejności. Z tego względu konieczne jest wstrzyknięcie informacji o pozycji tokenów za pomocą kodowania pozycyjnego (Positional Encoding).

W klasycznej wersji wprowadzono deterministyczne kodowanie oparte na funkcjach trygonometrycznych o zróżnicowanych częstotliwościach fal:

PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i / d_{\text{model}}}}\right) PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i / d_{\text{model}}}}\right)

Wektor pozycji PE jest bezpośrednio dodawany do wektora osadzenia słowa (ang. word embedding). Współczesne LLM-y stosują warianty nowocześniejsze, m.in. względne kodowanie pozycji (T5), kodowanie alibi (ALiBi) czy rotacyjne osadzenia pozycji (RoPE, stosowane np. w architekturach LLaMA), które lepiej radzą sobie z ekstrapolacją do długich kontekstów.

Przepływ informacji w każdym bloku Transformera stabilizowany jest przez dwa uzupełniające się komponenty:

  • Połączenia rezydualne (Residual Connections): połączenia pomijające (skrótowe) postaci x + \text{SubLayer}(x), które umożliwiają swobodny przepływ gradientu przez dziesiątki warstw sieci bez degradacji sygnału.
  • Normalizacja warstwowa (Layer Normalization): tradycyjnie realizowana po bloku uwagi (Post-LN) lub – powszechnie we współczesnych modelach – przed blokiem uwagi i siecią feed-forward (Pre-LN oraz RMSNorm), co znacząco poprawia stabilność głębokich sieci w pierwszych fazach optymalizacji.
  • Warstwa Feed-Forward (FFN): dwuwarstwowa sieć neuronowa z nieliniowością (np. ReLU, GeLU lub warianty SwiGLU), przetwarzająca każdy token niezależnie: \text{FFN}(x) = \max(0, x W_1 + b_1) W_2 + b_2.

Złożoność obliczeniowa i porównanie z sieciami splotowymi oraz rekurencyjnymi

Wybór architektury do modelowania sekwencji wiąże się ze ścisłymi kompromisami pomiędzy złożonością czasową, zużyciem pamięci operacyjnej oraz stopniem paralelizacji obliczeń. Modele rekurencyjne (RNN/LSTM) przetwarzają dane krok po kroku, co uniemożliwia ich wydajne zrównoleglenie na akceleratorach sprzętowych (GPU/TPU). Sieci splotowe (CNN) wymagają z kolei wielu warstw do objęcia odległego kontekstu.

Typ warstwy
Złożoność na warstwę
Sekwencyjne operacje
Maksymalna długość ścieżki
Równoleglenie w czasie treningu
Self-Attention \mathcal{O}(n^2 \cdot d) \mathcal{O}(1) \mathcal{O}(1) Pełne (macierzowe)
Recurrent (RNN) \mathcal{O}(n \cdot d^2) \mathcal{O}(n) \mathcal{O}(n) Brak (zależność krokowa)
Convolutional (1D) \mathcal{O}(k \cdot n \cdot d^2) \mathcal{O}(1) \mathcal{O}(\log_k(n)) Pełne (dla całego okna)

Podstawową barierą skalowania standardowego Transformera jest kwadratowa złożoność czasowa i pamięciowa \mathcal{O}(n^2) względem długości sekwencji n. Zapis macierzy uwagi Q K^T wymaga alokacji pamięci proporcjonalnej do kwadratu liczby tokenów. W przypadku krótkich sekwencji koszt ten jest w pełni kompensowany brakiem operacji sekwencyjnych \mathcal{O}(1), co pozwala w pełni wysycić równoległą architekturę procesorów graficznych.

Gdy n przekracza wartości rzędu kilkunastu tysięcy tokenów, pamięć VRAM staje się wąskim gardłem. W odpowiedzi na to ograniczenie powstały techniki optymalizacji na poziomie sprzętowym, takie jak FlashAttention (eliminujące konieczność materializowania pełnej macierzy uwagi w pamięci HBM GPU poprzez fuzję operacji w szybkiej pamięci SRAM), mechanizmy Grouped-Query Attention (GQA) oraz algorytmy o liniowej złożoności (np. State Space Models, architektury Mamba).

Przejście do modeli LLM: pre-training oraz fine-tuning

Uniezależnienie architektury od sekwencyjnego przetwarzania umożliwiło powstanie paradygmatu fundamentów językowych – modeli trenowanych w dwóch głównych fazach:

  • Pre-training (trening wstępny): model uczy się na ogromnych zbiorach danych tekstowych w trybie samonadzorowanym (ang. self-supervised learning). W modelach generatywnych (typu decoder-only, np. seria GPT) stosuje się predykcję następnego tokenu (Causal Language Modeling, CLM) z zastosowaniem maskowania przyczynowego (ang. causal masking), które uniemożliwia mechanizmowi uwagi spoglądanie na pozycje przyszłe. Na tym etapie model internalizuje wiedzę o strukturze języka, faktach i relacjach logicznych, minimalizując stratę entropii krzyżowej (cross-entropy loss).
  • Fine-tuning (dostrajanie zadaniowe): surowy model po pre-trainingu potrafi wyłącznie kontynuować tekst. Aby przekształcić go w użytecznego asystenta, przeprowadza się instruktażowe dostrajanie nadzorowane (Supervised Fine-Tuning, SFT) na parach polecenie-odpowiedź, a następnie optymalizację preferencji ludzkich, np. za pomocą algorytmów RLHF (Reinforcement Learning from Human Feedback) lub DPO (Direct Preference Optimization).

W celu ograniczenia kosztu adaptacji miliardów parametrów w fazie dostrajania standardem stały się metody efektywne parametrycznie (Parameter-Efficient Fine-Tuning, PEFT), w tym algorytm LoRA (Low-Rank Adaptation). Zamiast modyfikować pełną macierz wag W \in \mathbb{R}^{d \times k}, zamraża się jej parametry i uczy dekompozycję niskorzędową w postaci dwóch macierzy B \in \mathbb{R}^{d \times r} oraz A \in \mathbb{R}^{r \times k} (gdzie r \ll \min(d, k)), redukując liczbę modyfikowanych parametrów nawet o 99% bez utraty jakości modelu.

Praktyczne zastosowania architektury Transformera

Modularność i uniwersalność operacji macierzowych Transformera sprawiły, że wyszedł on poza domenę przetwarzania tekstu (NLP) i stał się standardem w wielu gałęziach inżynierii uczenia maszynowego:

  • Przetwarzanie tekstu i systemy generatywne: generowanie kodu źródłowego, zaawansowane silniki wyszukiwania semantycznego (architektury bi-encoder oparte na Transformerach), automatyczna redakcja i ekstrakcja informacji z nieustrukturyzowanych dokumentów.
  • Widzenie komputerowe (Vision Transformers, ViT): podział obrazu na siatkę nienakładających się łatek (ang. patches), traktowanych analogicznie jak tokeny tekstowe; ViT wyparł tradycyjne sieci konwolucyjne w zadaniach klasyfikacji, segmentacji i detekcji obiektów przy dostępności dużych zbiorów uczących.
  • Systemy wielomodalne (Multimodal LLMs): rzutowanie cech z enkoderów wizyjnych lub dźwiękowych (np. Whisper) do wspólnej przestrzeni wektorowej LLM, co pozwala na interakcję z modelem za pomocą tekstu, dźwięku i obrazu w ramach jednej pętli inferencyjnej.
  • Biologia obliczeniowa i chemia: modelowanie struktur 3D białek na podstawie sekwencji aminokwasów (systemy klasy AlphaFold), w których mechanizmy uwagi precyzyjnie modelują przestrzenne oddziaływania między odległymi w łańcuchu resztami białkowymi.

Źródła

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Powiązane posty

Powrót do góry