Architektura
Self-Attention
2017AktywnyAktualizacja: 6 maja 2026Opublikowany
Mechanizm obliczający wagi uwagi między każdą parą tokenów w sekwencji poprzez iloczyn skalarny zapytania i klucza.
Kluczowa
innowacja
Zastąpił stałe reprezentacje kontekstowe dynamicznym, globalnym mechanizmem uwagi, który oblicza zależności między każdą parą tokenów w sekwencji w jednym przebiegu.
Kategoria
Architektura
Poziom abstrakcji
Primitive
Poziom operacji
WarstwaElement architektury
Zastosowania
Modelowanie jezykoweTłumaczenie maszynoweRozumienie tekstuGenerowanie koduPrzetwarzanie obrazow (ViT)
Jak działa
Dla wejscia X obliczane sa trzy macierze: Q = X*W_Q, K = X*W_K, V = X*W_V. Wynik to Attention(Q,K,V) = softmax(QK^T / sqrt(d_k)) * V. Dzielenie przez sqrt(d_k) zapobiega zbyt duzym wartosciom iloczynu skalarnego. W wersji Multi-Head Attention proces wykonywany jest równolegle w h niezaleznych glowach, a wyniki sa konkatenowane.
Rozwiązany problem
Rekurencyjne sieci neuronowe (RNN, LSTM) przetwarzają sekwencje krok po kroku, co utrudnia modelowanie długodystansowych zależności i uniemozliwia pełne zrównoleglenie treningu.
Implementacja
Pułapki implementacyjne
Kwadratowa złozonosc pamieciWysoka
Brak podziałki pozycyjnejWysoka
Skalowanie iloczynu skalarnegoŚrednia
Ewolucja
Oryginalny paper · 2017 · NeurIPS 2017 · Ashish Vaswani
Attention Is All You Need
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin
2014
Attention mechanism dla seq2seq
2017
Self-Attention w Transformerze
Punkt przełomowy2020
Efficient attention variants (Linformer, Performer)
2022
Flash Attention - IO-aware implementacja
Punkt przełomowySzczegóły techniczne
Złożoność obliczeniowa
Złożoność czasowa: O(n^2 * d). Złożoność przestrzenna: O(n^2 + n*d).
Wąskie gardło obliczeniowe
Macierz uwagi
Paradygmat wykonania
Tryb główny
dense
Wzorzec aktywacji
all_paths_active
Równoległość
Poziom równoległości
fully_parallel
Zakres
traininginferenceacross_tokens
Wymagania sprzętowe
Podstawowe
Podstawowe