Mechanizm uwagi

Technika pozwalająca modelowi ważyć znaczenie różnych fragmentów wejścia przy generowaniu wyniku. Kluczowy element architektury transformer.

Mechanizm uwagi (ang. attention mechanism) to technika, dzięki której model uczenia maszynowego potrafi zdecydować, które fragmenty danych wejściowych są w danym momencie ważne, i przypisać im większą wagę przy generowaniu wyniku. Zamiast traktować całe wejście jednakowo, model dla każdego elementu liczy zestaw wag (tzw. attention scores) i tworzy ważoną sumę reprezentacji pozostałych elementów. To właśnie ten mechanizm jest sercem architektury transformer, opisanej w pracy „Attention Is All You Need” z 2017 roku, na której opierają się dzisiejsze modele językowe jak GPT czy BERT.

Jak to działa

W najpopularniejszym wariancie, czyli self-attention, każdy token zamienia się na trzy wektory: query, key i value (zapytanie, klucz, wartość). Model porównuje query jednego tokena z key wszystkich pozostałych — im bardziej pasują, tym wyższa waga. Po przeskalowaniu i przepuszczeniu przez softmax dostajesz rozkład wag, którym mnożysz wektory value. Efekt: reprezentacja słowa „bank” zmienia się w zależności od tego, czy w zdaniu obok jest „rzeka”, czy „kredyt”.

Dzięki temu model łapie zależności między odległymi fragmentami tekstu bez krok-po-kroku przetwarzania jak w starszych sieciach RNN. Praktyczny bonus: obliczenia da się zrównoleglić, co bardzo przyspiesza trening. W praktyce używa się multi-head attention — kilku „głów” liczących uwagę równolegle, gdzie każda może wyłapywać inny typ relacji (gramatykę, kontekst znaczeniowy itd.).

Przykład z praktyki

Jeśli korzystasz z biblioteki Hugging Face transformers, możesz podejrzeć wagi uwagi, ustawiając output_attentions=True przy ładowaniu modelu, np. BertModel.from_pretrained("bert-base-uncased", output_attentions=True). W zwróconym obiekcie znajdziesz tensor attentions o kształcie [warstwy, głowy, tokeny, tokeny]. Wrzucając to do narzędzia BertViz, zobaczysz mapę cieplną pokazującą, na które słowa model „patrzył” przy interpretacji danego tokena. Świetne do debugowania, gdy model dziwnie klasyfikuje zdania.

Częste błędy i mity

Po pierwsze, wagi uwagi to nie to samo co „wyjaśnienie decyzji modelu” — wysoka uwaga nie zawsze oznacza, że dany token faktycznie wpłynął na wynik. To temat sporny w badaniach, więc nie traktuj heatmap jako dowodu w sądzie. Po drugie, klasyczna self-attention ma złożoność kwadratową względem długości sekwencji (O(n²)), więc bardzo długie konteksty potrafią zjeść pamięć GPU — stąd warianty typu FlashAttention czy sparse attention. Po trzecie: „attention” w transformerze to coś innego niż ludzka uwaga, mimo zbieżnej nazwy. To czysta matematyka, nie intuicja.

Pojęcia powiązane: transformer, self-attention, multi-head attention, query/key/value, softmax, embedding, model językowy (LLM), positional encoding.