Transformer

Ключевая идея Transformer — механизм Multi-Head Attention, позволяющий модели параллельно обрабатывать зависимости между всеми позициями последовательности.

Энкодер

Входные данные кодируются в векторы эмбеддингов (например, через Word2Vec или обучаемые эмбеддинги). К ним добавляется Positional Encoding — компонент, кодирующий позицию слова в последовательности, так как Transformer сам по себе не имеет информации о порядке.

Single-Head Attention

Используются три обучаемые матрицы:

  • Query (Q) — насколько текущее слово связано с другими.
  • Key (K) — насколько другие слова связаны с текущим.
  • Value (V) — информация о значении слова в контексте.

Вычисление attention:

\[\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V\]

Деление на \(\sqrt{d_k}\) стабилизирует градиенты при большой размерности.

Multi-Head Attention

Вместо одного набора \(Q, K, V\) обучаются несколько — головы. Каждая голова фокусируется на разных аспектах входа. Результаты конкатенируются и проецируются обучаемой матрицей:

\[\text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O\]

Структура одного блока энкодера

  • Multi-Head Attention.
  • Add & Norm — остаточное соединение и Layer Normalization.
  • Feed-Forward Network (FFN) с активацией ReLU.
  • Add & Norm.

Декодер

Декодер отличается от энкодера наличием Masked Multi-Head Attention: маскируются будущие позиции, чтобы модель не могла заглядывать вперёд при генерации. Это реализуется через треугольную маску — зануление будущих позиций в матрице внимания.

Далее следует обычный Multi-Head Attention, Add & Norm, FFN, и на выходе — линейный слой с softmax для получения вероятностей слов.

Стратегии генерации текста

Метод Идея Особенности
Greedy Search На каждом шаге выбирается наиболее вероятное слово Быстро, но субоптимально
Beam Search На каждом шаге удерживается \(B\) наиболее вероятных последовательностей Лучше качество, больше вычислений

Применимость

Transformer изначально разработан для NLP, но сейчас является универсальной архитектурой: Vision Transformer (ViT) применяет тот же механизм к изображениям, разбивая их на патчи.

Полезные ссылки

← Назад к списку тем