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łomowyZł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
Gęsty
Wzorzec aktywacji
Wszystkie ścieżki aktywne
Równoległość
Poziom równoległości
W pełni równoległy
Zakres
TreningInferencjaPomiędzy tokenami
Wymagania sprzętowe
Podstawowe
Podstawowe