Что такое трансформер — архитектура и особенности
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) содержит:
- Multi-head self-attention (+ residual + LayerNorm)
- Feed-forward network (FFN) — два линейных слоя с активацией (GELU/ReLU), применяется к каждой позиции отдельно
- Снова 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-only | Causal mask — только прошлые токены | Генерация, чат, код |
| Encoder-decoder | Cross-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.
Дальше
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Обработка естественного языка — задачи, корпуса, токенизация, метрики и типичный pipeline от сырого текста до модели. Минимальная реализация Transformer encoder block на PyTorch — attention, FFN, residual, LayerNorm и учебный forward pass. Fine-tuning трансформеров — classification head, token classification, seq2seq, LoRA, PEFT и выбор стратегии под объём данных. Семейства Transformer — BERT, GPT, T5, RoBERTa, ALBERT, DistilBERT, Longformer и выбор архитектуры под задачу NLP. Hugging Face pipelines, выбор русскоязычных чекпоинтов, инференс, ONNX и типичный production-путь для NLP. Хронология NLP от ELMo и ULMFiT до GPT-3 — pre-training, transfer learning, бенчмарки GLUE и SuperGLUE, scaling laws. ViT, DETR, Whisper, CLIP и Audio Spectrogram Transformer — как attention переносится с текста на изображения и аудио. Краткие итоги раздела "Трансформеры и NLP" — задачи NLP, attention, архитектуры, fine-tuning и практика с предобученными моделями. Чек-лист самопроверки по разделу Трансформеры и NLP — вопросы для закрепления материала.NLP и работа с текстом
Устройство трансформеров — теория и практика с нуля
Дообучение моделей на конкретные задачи NLP
Обзор и разбор трансформерных архитектур
Практика работы с предобученными моделями
Современные тренды в NLP (2018–2021)
Трансформеры в разных модальностях — текст, зрение, звук
Трансформеры и NLP — итоги
Трансформеры и NLP — чек-лист