Перейти к основному содержимому

Что такое трансформер — архитектура и особенности

Всем

Transformer — архитектура нейросети для последовательностей, предложенная в 2017 году в статье Attention Is All You Need (Vaswani et al.). Она заменила рекуррентные связи механизмом внимания (attention) и позволила обучать модели на длинных текстах параллельно на GPU.

Трансформер лежит в основе BERT, GPT, T5, современных LLM и многих систем зрения и речи — обзор семейств, мультимодальность.


Проблема RNN и место трансформера

RNN / LSTM обрабатывают токены по одному, передавая скрытое состояние слева направо. Это создаёт три практических ограничения:

  • слабая параллелизация на обучении;
  • затухание градиента на длинных цепочках;
  • трудный доступ к контексту из далёких позиций.

Трансформер на каждом слое смотрит на все позиции сразу через attention и строит новое представление каждого токена как взвешенную смесь остальных.


Scaled dot-product attention

Для каждой позиции вычисляют три вектора — Query (Q), Key (K), Value (V) — линейными проекциями эмбеддинга.

Веса внимания (scaled dot-product attention):

Attention(Q, K, V) = softmax( (Q · K^T) / sqrt(d_k) ) · V
  • Q · K^T — насколько текущая позиция «интересуется» каждой другой;
  • деление на sqrt(d_k) стабилизирует softmax при большой размерности;
  • softmax даёт распределение весов; умножение на $V$ — итоговое смешанное представление.

Self-attention — Q, K, V берутся из одной и той же последовательности (текст анализирует сам себя).

Cross-attention — Q из декодера, K и V из энкодера (перевод: декодер «смотрит» на исходное предложение).


Multi-head attention

Один head учит один тип связей. Multi-head attention запускает несколько независимых head параллельно, конкатенирует результаты и прогоняет через линейный слой.

Типичная интерпретация (упрощённо):

  • один head — синтаксис (подлежащее ↔ сказуемое);
  • другой — coreference («она» ↔ «Мария»);
  • третий — тематическая близость.

На практике head'ы не размечены вручную — паттерны возникают при обучении.


Блок трансформера

Каждый слой (encoder или decoder block) содержит:

  1. Multi-head self-attention (+ residual + LayerNorm)
  2. Feed-forward network (FFN) — два линейных слоя с активацией (GELU/ReLU), применяется к каждой позиции отдельно
  3. Снова residual + LayerNorm

Residual connection (x + SubLayer(x)) облегчает градиентный поток в глубоких сетях (десятки и сотни слоёв).

Layer normalization стабилизирует активации внутри блока.


Positional encoding

Self-attention инвариантен к перестановке токенов без дополнительной информации о порядке. Поэтому к эмбеддингам добавляют позиционное кодирование — синусоиды (в оригинальной статье) или обучаемые positional embeddings (в GPT, BERT).


Encoder, decoder и три семейства моделей

СхемаМеханизмТипичные задачи
Encoder-onlyДвусторонний контекст (MLM)Классификация, NER, embedding
Decoder-onlyCausal mask — только прошлые токеныГенерация, чат, код
Encoder-decoderCross-attentionПеревод, суммаризация

Causal (маскированное) self-attention в декодере запрещает позиции «видеть будущее» — иначе модель подсмотрела бы ответ при обучении language modeling.

Подробный разбор семейств — статья 5.


Ключевые особенности

ОсобенностьСледствие
Параллелизм по длинеБыстрое обучение на GPU/TPU
Прямые связи между любыми токенамиЛучше длинные зависимости, чем у vanilla RNN
Квадратичная сложность по длине O(n²)Узкое место для очень длинных документов → Longformer, FlashAttention
Большое число параметровНужны большие корпуса и regularization
Контекстуальные эмбеддингиОдно слово — разные векторы в разных предложениях

Связь с LLM

GPT-подобные LLM — стек decoder-only блоков + causal LM на предобучении. BERT давал сильные encoder-эмбеддинги для понимания; GPT — генерацию. Современные чаты (GPT-4, Claude, Llama) — масштабирование decoder-only + instruction tuning + RLHF.

Теория и код блока attention — следующая статья. Практика Hugging Face — статья 6.


Дальше


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").