Архітектура Transformer і механізм Attention: технічний аналіз
Запропонована Google у статті 2017 року "Attention Is All You Need", архітектура Transformer є основою сучасного штучного інтелекту. Усі великі мовні моделі, такі як GPT, Claude і Gemini, побудовані на цій архітектурі.
До появи Transformer: обмеження RNN і LSTM
До ери трансформерів задачі NLP виконувалися за допомогою Recurrent Neural Networks (RNN) і Long Short-Term Memory (LSTM):
Проблеми RNN/LSTM:
- Потрібна послідовна обробка → Паралелізація неможлива.
- Зникання/вибух градієнта на довгих послідовностях.
- Складність у вивченні довгострокових залежностей.
- Дуже тривалий час навчання.
Механізм Self-Attention
Self-attention — це механізм, який обчислює взаємозв’язок між кожним елементом послідовності та всіма іншими елементами.
Математичне формулювання
Attention(Q, K, V) = softmax(QK^T / √d_k) × V
Параметри:
- Q (Query): Вектор-запит.
- K (Key): Ключовий вектор для зіставлення.
- V (Value): Вектор фактичної інформації.
- d_k: Розмірність вектора Key.
Покрокове обчислення
- Проєкція: Input → матриці Q, K, V
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
- Оцінки Attention: Скалярний добуток Q і K
scores = Q × K^T
- Масштабування: Ділення на √d_k для стабільності градієнта
scaled_scores = scores / √d_k
- Softmax: Перетворення в імовірнісний розподіл
attention_weights = softmax(scaled_scores)
- Зважена сума: Множення на Value
output = attention_weights × V
Multi-Head Attention
Замість однієї голови attention використовуються декілька паралельних:
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)
Переваги Multi-Head Attention
- Навчання у різних підпросторах представлень.
- Захоплення різних типів контекстуальних залежностей.
- Багатше витягування ознак.
Типові конфігурації:
- GPT-3: 96 голів attention, d_model = 12288.
- GPT-4: Орієнтовно 120+ голів.
Positional Encoding
Оскільки Transformers обробляють дані паралельно, позиційна інформація додається для збереження послідовного контексту:
Синусоїдальне 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)
Більш сучасний метод, що використовується в нових моделях:
f(x, pos) = x × e^(i × pos × θ)
Переваги RoPE:
- Природно кодує інформацію про відносну позицію.
- Краща здатність до екстраполяції на довгі послідовності.
- Використовується в GPT-NeoX, LLaMA та Mistral.
Feed-Forward Network
MLP-шар, що йде після кожного attention-шару:
FFN(x) = GELU(xW_1 + b_1)W_2 + b_2
Типові розміри:
- d_model = 4096.
- d_ff = 4 × d_model = 16384.
Функції активації
- ReLU: Класична та проста.
- GELU: Переважна в моделях типу GPT.
- SwiGLU: Використовується в LLaMA і PaLM.
Layer Normalization
Критично важлива для стабільності навчання:
Pre-LN vs Post-LN
Post-LN (оригінальний варіант):
x = x + Attention(LayerNorm(x))
Pre-LN (сучасний):
x = LayerNorm(x + Attention(x))
Pre-LN забезпечує стабільніше навчання та став сьогодні промисловим стандартом.
Архітектури Encoder і Decoder
Encoder-Only (стиль BERT)
- Бінаправлений attention.
- Використовується для Classification, NER і семантичної схожості.
- Masked Language Modeling.
Decoder-Only (стиль GPT)
- Причинний/авторегресивний attention.
- Використовується для генерації тексту та чатів.
- Прогнозування наступного токена.
Encoder-Decoder (T5, BART)
- Завдання sequence-to-sequence.
- Переклад і узагальнення.
Causal Masking
Маскування майбутніх токенів у decoder-моделях:
mask = triu(ones(seq_len, seq_len), diagonal=1) masked_scores = scores + mask × (-inf)
Це гарантує, що модель під час генерації бачить лише попередні токени.
Оптимізація KV-Cache
Щоб запобігти повторним обчисленням під час інференсу:
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
Економія пам’яті: O(n²) → O(n) для кроків обробки.
Flash Attention
Ефективна за пам’яттю реалізація attention:
Проблеми стандартного Attention:
- Використання пам’яті O(n²).
- Вузьке місце HBM (high bandwidth memory).
Рішення Flash Attention:
- Tiling: розбиття attention на блоки.
- Online Softmax: покрокове обчислення.
- I/O Aware: оптимізація ієрархії пам’яті GPU.
Результат: прискорення у 2–4 рази, економія пам’яті 5–20%.
Варіанти Sparse Attention
Зменшення складності attention для довгих контекстів:
Local Attention
Фокусування лише на сусідніх токенах.
Dilated Attention
Застосування attention через певні інтервали.
Шаблон Longformer
Комбінація Local + Global attention.
Сучасні варіанти Transformer
| Model | Feature | Context Length |
|---|---|---|
| GPT-4 | MoE, long context | 128K |
| Claude 3 | Constitutional AI | 200K |
| Gemini 1.5 | Sparse MoE | 1M |
| Mistral | Sliding window | 32K |
Висновок
Архітектура Transformer є фундаментальним будівельним блоком сучасного AI. Її механізм self-attention, можливість паралельної обробки та здатність вивчати довгострокові залежності зробили цю архітектуру революційною.
У Veni AI ми ефективно використовуємо моделі на основі Transformer у наших корпоративних рішеннях. Зв’яжіться з нами для технічних консультацій.
