# Трансформер (архитектура)

> Архитектура нейронной сети на основе механизма внимания, предложенная в 2017 году в статье «Attention Is All You Need»; основа современных языковых моделей.

Источник: https://llmdocs.ru/wiki/transformer/ · обновлено 2026-11-09 · лицензия CC BY-SA 4.0

- **Тип**: архитектура нейронной сети
- **Авторы**: Ашиш Васвани и др. (Google Brain, Google Research)
- **Публикация**: июнь 2017, «Attention Is All You Need» (NeurIPS 2017)
- **Ключевая идея**: механизм самовнимания (self-attention) вместо рекуррентности
- **Варианты**: энкодер (BERT), декодер (GPT, Claude, Llama), энкодер-декодер (T5)
- **Сложность внимания**: квадратичная по длине последовательности
- **Применение**: языковые модели, перевод, зрение (ViT), звук, мультимодальные модели
**Трансформер** (англ. *Transformer*) — архитектура [нейронной сети](https://llmdocs.ru/wiki/neural-network.md) для обработки последовательностей, в основе которой лежит **механизм внимания** (*attention*): каждый элемент последовательности напрямую «смотрит» на все остальные и решает, какие из них важны для его представления. Архитектура предложена исследователями Google в 2017 году в статье «Attention Is All You Need»[1] и стала фундаментом почти всех современных [больших языковых моделей](https://llmdocs.ru/wiki/llm.md) — GPT, Claude, Gemini, Llama, — а также моделей для изображений, звука и биологии.

## Предыстория

До трансформеров последовательности обрабатывали рекуррентными сетями (RNN, LSTM): они читают текст слово за словом, передавая состояние дальше. У этого подхода два недостатка: вычисления нельзя распараллелить по длине текста, а информация о далёких словах постепенно «размывается». В 2014–2015 годах к рекуррентным моделям перевода добавили механизм внимания, позволявший заглядывать в любое место исходной фразы. Авторы трансформера пошли дальше и полностью отказались от рекуррентности, оставив только внимание. Модель обучалась быстрее и превзошла лучшие системы машинного перевода того времени.

## Механизм внимания

Каждый входной элемент — [токен](https://llmdocs.ru/wiki/tokenization.md), представленный вектором-[эмбеддингом](https://llmdocs.ru/wiki/embedding.md), — преобразуется в три вектора: **запрос** (*query*), **ключ** (*key*) и **значение** (*value*). Внимание вычисляется по формуле:

```text
Attention(Q, K, V) = softmax(Q·Kᵀ / √d_k) · V
```

Скалярное произведение запроса одного токена с ключами всех токенов показывает, насколько они релевантны друг другу; softmax превращает оценки в веса, а результат — взвешенная сумма значений. Деление на `√d_k` стабилизирует обучение. Так слово «он» в предложении может получить большую часть информации от существительного, к которому относится, даже если оно стоит далеко.

**Многоголовое внимание** (*multi-head attention*) выполняет несколько таких вычислений параллельно с разными проекциями: одни «головы» следят за синтаксисом, другие — за смысловыми связями или позициями.

## Устройство блока

Трансформер — стопка одинаковых блоков. Каждый блок содержит:

1. слой многоголового **самовнимания**;
2. полносвязную сеть (*feed-forward*), применяемую к каждому токену отдельно;
3. **остаточные связи** (вход прибавляется к выходу) и **нормализацию слоя**, которые позволяют обучать очень глубокие стопки.

Поскольку внимание само по себе не учитывает порядок, к токенам добавляют информацию о позиции. В оригинале это были синусоидальные позиционные кодировки; в современных моделях чаще используются вращательные позиционные эмбеддинги (RoPE).[6] В базовой модели 2017 года было 6 блоков энкодера и 6 блоков декодера с размерностью 512 и 8 головами внимания; современные LLM содержат десятки и сотни блоков и миллиарды параметров.

## Три семейства

| Вариант | Как работает | Примеры | Для чего |
|---|---|---|---|
| Только энкодер | внимание во все стороны, видит весь текст сразу | BERT[2], модели эмбеддингов | классификация, поиск, [векторный поиск](https://llmdocs.ru/wiki/vector-search.md) |
| Только декодер | **каузальное** внимание: токен видит только предыдущие | GPT[3], Claude, Llama | генерация текста, чат, код |
| Энкодер-декодер | энкодер читает вход, декодер генерирует выход | исходный трансформер, T5 | перевод, суммаризация |

Языковые модели-декодеры генерируют текст по одному токену: модель предсказывает распределение вероятностей следующего токена, выбранный токен добавляется к входу, и шаг повторяется. Чтобы не пересчитывать внимание для уже обработанных токенов, ключи и значения сохраняются в **KV-кэше**; на этом же основано [кэширование промптов](https://llmdocs.ru/wiki/prompt-caching.md).

## Ограничения и улучшения

- **Квадратичная сложность.** Внимание сравнивает каждый токен с каждым, поэтому вычисления и память растут как квадрат длины. Это главный фактор, ограничивающий [контекстное окно](https://llmdocs.ru/wiki/context-window.md). FlashAttention ускоряет точное внимание за счёт эффективной работы с памятью GPU;[5] существуют и разреженные и линейные приближения.
- **Смесь экспертов** (*Mixture of Experts*) активирует для каждого токена лишь часть полносвязных подсетей, увеличивая число параметров без пропорционального роста вычислений.
- **Группированное внимание** (GQA, MQA) уменьшает размер KV-кэша при генерации.

## За пределами текста

Vision Transformer (2020) разбивает изображение на квадратные фрагменты и обрабатывает их как токены.[7] Тот же принцип применяется к звуку, видео, белковым последовательностям и действиям роботов, а [мультимодальные модели](https://llmdocs.ru/wiki/multimodal-models.md) объединяют несколько типов данных в одной последовательности. Наглядное пошаговое объяснение архитектуры с иллюстрациями — «The Illustrated Transformer» Джея Аламмара.[4]

## См. также

- [Большая языковая модель (LLM)](https://llmdocs.ru/wiki/llm.md)
- [Нейронная сеть](https://llmdocs.ru/wiki/neural-network.md)
- [Токен и токенизация](https://llmdocs.ru/wiki/tokenization.md)
- [Контекстное окно](https://llmdocs.ru/wiki/context-window.md)
- [Эмбеддинг](https://llmdocs.ru/wiki/embedding.md)

## Источники

1. [A. Vaswani et al. — Attention Is All You Need (2017)](https://arxiv.org/abs/1706.03762)
2. [J. Devlin et al. — BERT: Pre-training of Deep Bidirectional Transformers (2018)](https://arxiv.org/abs/1810.04805)
3. [A. Radford et al. — Improving Language Understanding by Generative Pre-Training (OpenAI, 2018)](https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf)
4. [Jay Alammar — The Illustrated Transformer](https://jalammar.github.io/illustrated-transformer/)
5. [T. Dao et al. — FlashAttention (2022)](https://arxiv.org/abs/2205.14135)
6. [J. Su et al. — RoFormer: Enhanced Transformer with Rotary Position Embedding (2021)](https://arxiv.org/abs/2104.09864)
7. [A. Dosovitskiy et al. — An Image is Worth 16x16 Words: Transformers for Image Recognition (2020)](https://arxiv.org/abs/2010.11929)
