Architektura Transformer i mechanizm Attention: analiza techniczna
Wprowadzona przez Google w artykule z 2017 roku „Attention Is All You Need”, architektura Transformer stanowi fundament współczesnej sztucznej inteligencji. Wszystkie główne modele językowe, takie jak GPT, Claude i Gemini, bazują na tej architekturze.
Przed Transformerami: ograniczenia RNN i LSTM
Przed erą transformerów zadania NLP opierały się na Recurrent Neural Networks (RNN) oraz Long Short-Term Memory (LSTM):
Problemy RNN/LSTM:
- Wymóg przetwarzania sekwencyjnego → równoległość jest niemożliwa.
- Zanikające/eksplodujące gradienty w długich sekwencjach.
- Trudności w nauce zależności długodystansowych.
- Bardzo długi czas trenowania.
Mechanizm Self-Attention
Self-attention to mechanizm obliczający relacje między każdym elementem sekwencji a wszystkimi pozostałymi elementami.
Formulacja matematyczna
Attention(Q, K, V) = softmax(QK^T / √d_k) × V
Parametry:
- Q (Query): Wektor zapytania.
- K (Key): Wektor klucza do porównania.
- V (Value): Wektor właściwej informacji.
- d_k: Wymiar wektora Key.
Obliczenia krok po kroku
- Projekcja: Wejście → macierze Q, K, V
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
- Score Attention: Iloczyn skalarny Q i K
scores = Q × K^T
- Skalowanie: Dzielenie przez √d_k dla stabilności gradientu
scaled_scores = scores / √d_k
- Softmax: Konwersja na rozkład prawdopodobieństwa
attention_weights = softmax(scaled_scores)
- Ważona suma: Mnożenie przez Value
output = attention_weights × V
Multi-Head Attention
Zamiast jednej głowy attention stosuje się wiele równoległych głów:
1MultiHead(Q, K, V) = Concat(head_1, ..., head_h) × W_O 2 3where head_i = Attention(QW_Q^i, KW_K^i, VW_V^i)
Zalety Multi-Head Attention
- Uczenie w różnych podprzestrzeniach reprezentacji.
- Uchwycenie różnych typów relacji kontekstowych.
- Bogatsza ekstrakcja cech.
Typowe konfiguracje:
- GPT-3: 96 głów attention, d_model = 12288.
- GPT-4: Szacunkowo 120+ głów.
Positional Encoding
Ponieważ Transformatory przetwarzają dane równolegle, dodaje się informację pozycyjną, aby zachować kontekst sekwencyjny:
Sinusoidal Positional Encoding
PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
Rotary Positional Embedding (RoPE)
Bardziej zaawansowana metoda stosowana we współczesnych modelach:
f(x, pos) = x × e^(i × pos × θ)
Zalety RoPE:
- Naturalnie koduje informację o relatywnej pozycji.
- Lepsza ekstrapolacja dla dłuższych sekwencji.
- Używany w modelach GPT-NeoX, LLaMA i Mistral.
Feed-Forward Network
Warstwa MLP następująca po każdej warstwie attention:
FFN(x) = GELU(xW_1 + b_1)W_2 + b_2
Typowe wymiary:
- d_model = 4096.
- d_ff = 4 × d_model = 16384.
Funkcje aktywacji
- ReLU: Klasyczna i prosta.
- GELU: Preferowana w modelach typu GPT.
- SwiGLU: Stosowana w modelach LLaMA i PaLM.
Layer Normalization
Kluczowe dla stabilności trenowania:
Pre-LN vs Post-LN
Post-LN (oryginalne):
x = x + Attention(LayerNorm(x))
Pre-LN (nowoczesne):
x = LayerNorm(x + Attention(x))
Pre-LN zapewnia bardziej stabilne trenowanie i stało się obecnie standardem branżowym.
Architektury Encoder vs Decoder
Encoder-Only (styl BERT)
- Dwukierunkowy attention.
- Używany do klasyfikacji, NER i podobieństwa semantycznego.
- Masked Language Modeling.
Decoder-Only (styl GPT)
- Attention kauzalny/autoregresyjny.
- Używany do generowania tekstu i czatu.
- Predykcja kolejnego tokena.
Encoder-Decoder (T5, BART)
- Zadania sequence-to-sequence.
- Tłumaczenie i podsumowywanie.
Causal Masking
Maskowanie przyszłych tokenów w modelach decoder:
mask = triu(ones(seq_len, seq_len), diagonal=1) masked_scores = scores + mask × (-inf)
Zapewnia to, że model podczas generowania patrzy tylko na poprzednie tokeny.
Optymalizacja KV-Cache
Aby zapobiec zbędnym obliczeniom podczas inferencji:
1Step 1: Calculate K_1, V_1 → save to cache 2Step 2: Calculate K_2, V_2 → K = [K_1, K_2], V = [V_1, V_2] 3Step n: Calculate only for the new token, retrieve old values from cache
Oszczędność pamięci: O(n²) → O(n) dla kolejnych kroków przetwarzania.
Flash Attention
Wydajna pamięciowo implementacja attention:
Problemy standardowego Attention:
- Zużycie pamięci O(n²).
- Wąskie gardło HBM (high bandwidth memory).
Rozwiązanie Flash Attention:
- Tiling: Dzielenie attention na bloki.
- Online Softmax: Obliczenia przyrostowe.
- I/O Aware: Optymalizacja hierarchii pamięci GPU.
Rezultat: Przyspieszenie 2–4x, oszczędność pamięci 5–20%.
Warianty Sparse Attention
Redukcja złożoności attention dla długich kontekstów:
Local Attention
Skupienie na pobliskich tokenach.
Dilated Attention
Zastosowanie attention w określonych odstępach.
Longformer Pattern
Połączenie Local + Global attention.
Współczesne warianty Transformerów
| Model | Cechy | Długość kontekstu |
|---|---|---|
| GPT-4 | MoE, długi kontekst | 128K |
| Claude 3 | Constitutional AI | 200K |
| Gemini 1.5 | Sparse MoE | 1M |
| Mistral | Sliding window | 32K |
Podsumowanie
Architektura Transformer jest podstawowym elementem współczesnej sztucznej inteligencji. Mechanizm self-attention, zdolność do przetwarzania równoległego oraz możliwość uczenia zależności długodystansowych czynią ją architekturą przełomową.
W Veni AI skutecznie wykorzystujemy modele oparte na Transformerach w rozwiązaniach dla przedsiębiorstw. Skontaktuj się z nami w celu konsultacji technicznych.
