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, построены на этой архитектуре.

До Transformers: ограничения RNN и LSTM

До появления трансформеров задачи NLP опирались на рекуррентные нейронные сети (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 Scores: Скалярное произведение 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)

Вместо одной головы внимания используется несколько параллельных голов:

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 голов внимания, d_model = 12288.
  • GPT-4: Оценочно 120+ голов.

Позиционное кодирование

Поскольку Transformers обрабатывают данные параллельно, для сохранения последовательного контекста добавляется позиционная информация:

Синусоидальное позиционное кодирование

PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

Ротари позиционное кодирование (RoPE)

Более продвинутый метод, используемый в современных моделях:

f(x, pos) = x × e^(i × pos × θ)

Преимущества RoPE:

  • Естественно кодирует информацию о относительной позиции.
  • Лучшая способность к экстраполяции на длинных последовательностях.
  • Используется в GPT-NeoX, LLaMA и Mistral.

Feed-Forward Network

MLP‑слой, который следует за каждым слоем внимания:

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)

  • Двустороннее внимание.
  • Используется для Classification, NER и семантической близости.
  • Masked Language Modeling.

Decoder-Only (в стиле GPT)

  • Каузальное/авторегрессивное внимание.
  • Используется для генерации текста и чат-ботов.
  • Предсказание следующего токена.

Encoder-Decoder (T5, BART)

  • Задачи последовательность-в-последовательность.
  • Перевод и суммаризация.

Каузальное маскирование

Маскирование будущих токенов в моделях‑декодерах:

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 Pattern

Комбинация Local + Global attention.

Современные варианты Transformer

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

Заключение

Архитектура Transformer — это фундаментальный строительный блок современных ИИ‑систем. Её механизм self-attention, способность к параллельной обработке и умение работать с дальними зависимостями сделали эту архитектуру революционной.

В Veni AI мы эффективно используем модели на основе Transformer в наших корпоративных решениях. Свяжитесь с нами для технического консалтинга.

İlgili Makaleler