Veni AI
Głębokie uczenie

Architektura Transformer i mechanizm uwagi: analiza techniczna

Kompleksowa analiza technicznych aspektów architektury Transformer, mechanizmu self-attention, attention wielogłowowej oraz struktur stanowiących podstawę współczesnych modeli LLM.

Veni AI Technical Team14 Ocak 20254 dk okuma
Architektura Transformer i mechanizm uwagi: analiza techniczna

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

  1. Projekcja: Wejście → macierze Q, K, V
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
  1. Score Attention: Iloczyn skalarny Q i K
scores = Q × K^T
  1. Skalowanie: Dzielenie przez √d_k dla stabilności gradientu
scaled_scores = scores / √d_k
  1. Softmax: Konwersja na rozkład prawdopodobieństwa
attention_weights = softmax(scaled_scores)
  1. 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

ModelCechyDługość kontekstu
GPT-4MoE, długi kontekst128K
Claude 3Constitutional AI200K
Gemini 1.5Sparse MoE1M
MistralSliding window32K

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.

İlgili Makaleler