Архитектуры моделей 18 просмотров

Self-Attention

Self-Attention / Scaled Dot-Product Attention

Self-Attention — механизм, позволяющий каждому элементу последовательности «смотреть» на все остальные элементы и определять их важность. Основа архитектуры Transformer.

Что такое Self-Attention

Self-Attention (самовнимание) — механизм, в котором каждый токен последовательности вычисляет веса важности (attention scores) по отношению ко всем остальным токенам. Это позволяет модели учитывать контекст всей последовательности при обработке каждого элемента.

Формула

Attention(Q, K, V) = softmax(Q × K^T / √d_k) × V

Где:
- Q (Query) — «что я ищу?»
- K (Key) — «что я содержу?»
- V (Value) — «что я могу дать?»
- d_k — размерность ключа (для нормализации)

Пошаговый алгоритм

  1. Входные эмбеддинги умножаются на три матрицы весов → Q, K, V
  2. Вычисляются attention scores: Q × K^T
  3. Делятся на √d_k (стабилизация градиентов)
  4. Применяется softmax → веса внимания (0..1)
  5. Умножаются на V → взвешенное представление

Вычислительная сложность

Self-Attention имеет сложность O(n²) по длине последовательности:
- Для 2K токенов: 4M операций
- Для 128K токенов: 16B операций

Это основной bottleneck для длинных контекстов. Решения: Flash Attention, Sliding Window, Ring Attention.

Multi-Head Attention

На практике используется Multi-Head Attention (MHA): входы разбиваются на h голов, каждая голова вычисляет attention независимо, результаты конкатенируются.

# Упрощённо
heads = [attention(Q_i, K_i, V_i) for i in range(n_heads)]
output = concat(heads) @ W_o

Каждая голова учится «смотреть» на разные аспекты: синтаксические связи, семантику, позиции.

Связанные термины

Является частью
Улучшается
Использует

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу