Veni AI
Глибинне навчання

Архітектура Transformer та механізм уваги: технічний аналіз

Комплексний аналіз технічних аспектів архітектури Transformer, механізму самоуваги, багатоголової уваги та структур, що формують основу сучасних LLM.

Veni AI Technical Team14 Ocak 20254 dk okuma
Архітектура Transformer та механізм уваги: технічний аналіз

Архітектура 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.

Покрокове обчислення

  1. Проєкція: Input → матриці Q, K, V
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
  1. Оцінки Attention: Скалярний добуток Q і K
scores = Q × K^T
  1. Масштабування: Ділення на √d_k для стабільності градієнта
scaled_scores = scores / √d_k
  1. Softmax: Перетворення в імовірнісний розподіл
attention_weights = softmax(scaled_scores)
  1. Зважена сума: Множення на 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

ModelFeatureContext Length
GPT-4MoE, long context128K
Claude 3Constitutional AI200K
Gemini 1.5Sparse MoE1M
MistralSliding window32K

Висновок

Архітектура Transformer є фундаментальним будівельним блоком сучасного AI. Її механізм self-attention, можливість паралельної обробки та здатність вивчати довгострокові залежності зробили цю архітектуру революційною.

У Veni AI ми ефективно використовуємо моделі на основі Transformer у наших корпоративних рішеннях. Зв’яжіться з нами для технічних консультацій.

İlgili Makaleler