Robocikowo>ROBOCIKOWO
Architektura AI

Self-Attention — jak model „czyta samego siebie"?

Pan Robocik25 czerwca 2026 · 7 min czytania
self-attention-jak-model-czyta-samego-siebie-cover

Self-attention to mechanizm, który pozwala modelowi językowemu ocenić, jak każde słowo w zdaniu odnosi się do wszystkich pozostałych słów jednocześnie. To fundament architektury Transformer i wszystkich współczesnych dużych modeli językowych — bez niego nie byłoby ani GPT, ani Llamy, ani BERT-a.

Czym jest self-attention?

Self-attention (samouwaga, czasem nazywana intra-attention) to operacja matematyczna, która dla każdego elementu sekwencji — najczęściej tokenu, czyli fragmentu tekstu — wylicza, jak mocno powinien on „zwracać uwagę" na pozostałe elementy tej samej sekwencji. Efektem jest nowa, kontekstowa reprezentacja każdego tokenu, wzbogacona o informacje z całego zdania.

Warto od razu zaznaczyć, czym self-attention nie jest. To nie jest model ani sieć neuronowa sama w sobie — to pojedyncza warstwa, blok obliczeniowy, który powtarza się dziesiątki razy w architekturze Transformer. Nie jest też tożsama z „uwagą” w ogóle: mechanizm uwagi istniał już wcześniej (Bahdanau, 2014) jako dodatek do sieci rekurencyjnych. Self-attention to jego szczególny wariant, w którym zapytania, klucze i wartości są wyliczane z tych samych tokenów wejściowych — ze zdania lub fragmentu tekstu, który model właśnie przetwarza — stąd przedrostek „self”.

Intuicja „model czyta samego siebie" odnosi się właśnie do tego: zamiast przetwarzać zdanie słowo po słowie, model wczytuje całą sekwencję naraz i pozwala każdemu tokenowi „rozejrzeć się" po pozostałych, żeby lepiej zrozumieć własne znaczenie w danym kontekście.

Kto za tym stoi?

Self-attention w obecnej formie pojawiło się w 2017 roku w pracy „Attention Is All You Need”, opublikowanej przez zespół z Google Brain i Google Research. Ośmioro autorów — Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser i Illia Polosukhin — zaproponowało odrzucenie warstw rekurencyjnych i konwolucyjnych: Sieci konwolucyjne (CNN — Convolutional Neural Networks) to typ sieci neuronowych przetwarzający dane przestrzenne (np. obrazy) za pomocą filtrów, które wykrywają lokalne wzorce niezależnie od ich pozycji. Przed 2017 rokiem były dominującą architekturą w rozpoznawaniu obrazów. i oparcie całej architektury wyłącznie na mechanizmie uwagi. Architekturę nazwano Transformer; nazwę miał zaproponować Jakob Uszkoreit ze względu na jej brzmienie.

Skala wpływu tej pracy jest trudna do przecenienia — artykuł był cytowany ponad 170 tysięcy razy (stan na 2025 rok) i stał się fundamentem dla BERT-a, rodziny GPT, T5 i Llamy. Sam mechanizm uwagi był rozwijany wcześniej, m.in. przez Dzmitryja Bahdanau w 2014 roku, ale dopiero zespół Google pokazał, że uwaga może być nie dodatkiem, lecz całością.

Jak to działa?

Trzy wektory: Query, Key i Value

Sercem self-attention jest wariant nazwany scaled dot-product attention. Każdy token wejściowy zostaje zrzutowany — za pomocą wyuczonych macierzy wag — na trzy osobne wektory: Query (Q), Key (K) i Value (V). To metafora zapożyczona z wyszukiwania w bazie danych: Query to zapytanie, którego token „szuka”, Key to etykieta opisująca, co dany token oferuje, a Value to właściwa treść.

Obliczenie przebiega w czterech krokach, które elegancko zamyka jeden wzór:

Znaczenie symboli
macierz zapytań — czego token szuka w innych pozycjach sekwencji
macierz kluczy — co token ogłasza pozostałym
macierz wartości — treść przekazywana przy wysokim dopasowaniu
wymiar wektora klucza; dzielenie przez \sqrt{d_k} stabilizuje gradienty softmaxa
  1. Najpierw model mnoży macierz zapytań przez transponowaną macierz kluczy (), uzyskując dla każdej pary tokenów surowy wynik podobieństwa.
  2. Wyniki dzielone są przez pierwiastek z wymiaru klucza (, często ) — bez tego skalowania przy dużych wymiarach wartości stają się tak duże, że softmax: Funkcja matematyczna zamieniająca wektor liczb na rozkład prawdopodobieństwa — każda wartość mieści się w przedziale (0, 1), a ich suma wynosi 1. wpada w obszar o znikomym gradiencie: Wartość określająca kierunek i tempo zmian funkcji straty względem parametrów sieci; zanikający gradient uniemożliwia skuteczne uczenie głębokich warstw., co utrudnia trening.
  3. Softmax zamienia wyniki w wagi uwagi — liczby z przedziału od 0 do 1, które sumują się do jedności.
  4. Wagi mnożą wektory Value: tokeny istotne wnoszą dużą część swojej treści do zaktualizowanego wektora, a nieistotne — niemal nic.

Przykład w praktyce

Dla zdania „pies aportuje patyk", kiedy model aktualizuje wektor słowa „aportuje", to słowo wysyła swoje Query do wszystkich tokenów. Wysokie dopasowanie Query „aportuje" do Key „pies" sprawia, że część wektora Value słowa „pies" trafia do nowej reprezentacji „aportuje" — model dowiaduje się, że to pies wykonuje tę akcję.

Z jakich elementów się składa?

Multi-head attention — wiele głów, wiele perspektyw

Wyobraź sobie zdanie „Bankier, któremu adwokat poradził, wygrał proces”. Jedna głowa uwagi może śledzić relację podmiot–orzeczenie, a inna — że adwokat jest w zdaniu wtrąconym i nie jest głównym podmiotem. Właśnie dlatego twórcy Transformera zaproponowali multi-head attention (wielogłowową uwagę): zamiast jednego mechanizmu uwagi model uruchamia niezależnych „głów”, z których każda uczy się wychwytywac inny typ zależności i ma własne macierze wag dla Q, K i V. Dla modelu o wymiarze i 8 głowach każda głowa operuje na wektorach o wymiarze 64.

Po wykonaniu niezależnych obliczeń wyniki wszystkich głów są łączone (konkatenacja: Złączenie wielu wektorów jeden po drugim w jeden dłuższy wektor — np. 8 wektorów o wymiarze 64 daje wektor o wymiarze 512.) i przepuszczane przez końcową macierz rzutującą: Wyuczona warstwa liniowa — mnożenie przez macierz wag, które przekształca wektor z jednego wymiaru do innego. Tutaj scala wyniki wszystkich głów uwagi z powrotem do wymiaru wejściowego modelu. , która przywraca pierwotny wymiar. Dzięki podziałowi na mniejsze głowy całkowity koszt obliczeniowy pozostaje zbliżony do pojedynczej uwagi, a model zyskuje zdolność równoległego wychwytywania wielu niuansów językowych.

Trzy warianty w architekturze Transformer

WariantGdzieMechanizm
Self-attentionKoderDwukierunkowy — token widzi wszystkie pozostałe w sekwencji
Masked self-attentionDekoderCausal mask — każda pozycja widzi tylko wcześniejsze tokeny
Cross-attentionŁączy koder z dekoderemQuery z dekodera, Key i Value z kodera

Do czego może być używane?

Self-attention napędza dwie główne rodziny modeli językowych. Architektury encoder-only, takie jak BERT od Google, służą do głębokiego rozumienia tekstu — wyszukiwania, klasyfikacji, przewidywania zamaskowanych słów. Architektury decoder-only, z rodzinami modeli GPT od OpenAI i Llama od Mety, specjalizują się w generowaniu płynnego tekstu i stanowią podstawę dzisiejszych chatbotów.

Mechanizm szybko wyszedł poza tekst. Vision Transformer (ViT) pokazał, że jeśli obraz pokroić na kwadratowe „płaty” i potraktować je jak tokeny sekwencji, self-attention świetnie radzi sobie z rozpoznawaniem obrazów. Dziś ten sam mechanizm leży u podstaw modeli multimodalnych, generatorów obrazu i systemów przetwarzających dźwięk.

Czym różni się od innych rozwiązań?

Przed 2017 rokiem dominowały sieci rekurencyjne (RNN, LSTM, GRU), które przetwarzały tokeny sekwencyjnie — jeden po drugim. Miało to dwie poważne wady: trening był trudny do zrównoleglenia na GPU, a uczenie się zależności między odległymi słowami utrudniał problem zanikającego gradientu: Zjawisko w głębokich sieciach neuronowych, w którym gradienty błędu maleją wykładniczo podczas propagacji wstecznej przez kolejne warstwy — parametry wczesnych warstw przestają się efektywnie uczyć, co uniemożliwia wykrywanie zależności między odległymi słowami..

Self-attention rozwiązuje oba problemy naraz. Po pierwsze, wszystkie tokeny są przetwarzane równolegle jako operacje na macierzach — co idealnie pasuje do architektury GPU i umożliwiło bezprecedensowe skalowanie modeli. Po drugie, droga informacji między dowolnymi dwoma pozycjami w sekwencji ma stałą długość (rzędu jednej operacji), zamiast rosnąć z odległością jak w RNN. To właśnie ta kombinacja — równoległość plus krótkie ścieżki — uczyniła Transformer dominującą architekturą.

Najważniejsze ograniczenia i wyzwania

Self-attention ma jedną poważną wadę: kwadratową złożność względem długości sekwencji. Ponieważ mechanizm liczy relacje między każdą parą tokenów, koszt obliczeń i pamięci rośnie jak . Dla 2 tysięcy tokenów macierz uwagi: Macierz o rozmiarze n×n przechowująca wagi uwagi dla każdej pary tokenów w sekwencji — jej rozmiar rośnie kwadratowo wraz z długością kontekstu. waży około 8 MB na głowę — niegroźnie. Ale przy oknie 128 tysięcy tokenów, dziś standardowym, ta sama macierz urasta do ponad 32 GB na jedną głowę, a głów i warstw są dziesiątki. To zjawisko inżynierowie nazywają „ścianą pamięci” (memory wall).

Odpowiedzią są kolejne optymalizacje. Flash Attention, opracowane przez zespół Tri Dao ze Stanfordu, nie zmienia matematyki, ale dzieli obliczenia na małe kafelki mieszczące się w bardzo szybkiej pamięci podręcznej SRAM, zamiast materializować całą macierz w wolniejszej pamięci HBM — daje to 2–4-krotne przyspieszenie bez utraty precyzji. Sparse attention idzie dalej i pomija obliczanie nieistotnych relacji, akceptując niewielką utratę jakości. Z kolei Multi-Query Attention (MQA) i Grouped-Query Attention (GQA) redukują rozmiar bufora KV Cache podczas generowania tekstu, współdzieląc klucze i wartości między głowami. GQA — wariant kompromisowy — jest dziś standardem w Llamie 3, Mistralu i Gemmie.

Dlaczego to jest istotne?

Self-attention to nie kolejna techniczna ciekawostka, lecz pojedynczy pomysł, który przedefiniował kierunek rozwoju całej dziedziny uczenia maszynowego. Trudno wskazać drugi mechanizm, który w tak krótkim czasie stałby się wspólnym mianownikiem niemal wszystkich przełomowych modeli ostatniej dekady — od rozumienia języka, przez generowanie obrazów, po modele multimodalne i systemy robotyczne.

Jego znaczenie wynika z trzech rzeczy. Po pierwsze, z prostoty: cały mechanizm da się zapisać jednym wzorem, a jednak jest wystarczająco ogólny, by działać dla tekstu, obrazu i dźwięku. Po drugie, ze skalowalności: ponieważ self-attention to w istocie mnożenie macierzy, doskonale wykorzystuje równoległość GPU, co otworzyło drogę do modeli o setkach miliardów parametrów. Po trzecie, z tego, że jego główne ograniczenie — kwadratowa złożoność — okazało się problemem inżynierskim, a nie barierą koncepcyjną: kolejne warianty (Flash Attention, GQA) przesuwają granicę długości kontekstu, nie zmieniając fundamentu. Zrozumienie self-attention to dziś warunek wstępny do zrozumienia, jak naprawdę działają współczesne systemy AI.

Self-attention pokazuje, że czasem największy postęp nie polega na dodawaniu kolejnych komponentów, lecz na znalezieniu jednej operacji wystarczająco ogólnej, by zastąpić wiele wcześniejszych. „Attention is all you need" było prowokacyjną tezą — osiem lat później wciąż okazuje się w dużej mierze prawdziwe.

Źródła

  • Bahdanau et al. (2014) — Neural Machine Translation by Jointly Learning to Align and Translate — arXiv:1409.0473
  • Vaswani et al. (2017) — Attention Is All You Need — arXiv:1706.03762
  • Devlin et al. (2018) — BERT: Pre-training of Deep Bidirectional Transformers — arXiv:1810.04805
  • Dao et al. (2022) — FlashAttention: Fast and Memory-Efficient Exact Attention — arXiv:2205.14135
  • Ainslie et al. (2023) — GQA: Training Generalized Multi-Query Transformer Models — arXiv:2305.13245
Udostępnij to opracowanie

Dalej zgłębiaj temat