В 2017 году восемь исследователей из Google опубликовали статью с провокационным названием «Attention Is All You Need» — отсылку к песне The Beatles «All You Need Is Love». Статья представила архитектуру трансформера — нейросеть на 100 миллионов параметров, которая обходилась без рекуррентных и свёрточных слоёв. Тогда это казалось смелым экспериментом. Сегодня каждая крупная языковая модель — GPT-5, Claude Opus, Gemini 3, Llama 4 — построена на этой архитектуре. Разберёмся, как она устроена и почему оказалась настолько мощной.

Что было до трансформеров

Прежде чем понять революцию трансформеров, нужно знать, от чего они отталкивались. До 2017 года задачи NLP решались рекуррентными нейросетями — RNN и их вариантом LSTM (Long Short-Term Memory).

ХарактеристикаRNN / LSTMТрансформер
Обработка последовательностиПоследовательная (токен за токеном)Параллельная (все токены сразу)
Длинные зависимостиТеряются на длинных текстахПрямой доступ к любому токену
Скорость обученияМедленная (нет параллелизма)Быстрая (GPU-параллелизм)
МасштабируемостьПлохаяОтличная
Сложность по длине (n)O(n) на шаг, но шагов nO(n²) на слой, но параллельно

Главная проблема RNN — последовательная обработка. Чтобы «увидеть» слово номер 500, сеть должна сначала обработать все 499 предыдущих. Информация о начале текста к этому моменту затухает. LSTM частично решал проблему, но не устранял фундаментальное ограничение: последовательность — это бутылочное горлышко.

Трансформер решил эту проблему радикально: он убрал последовательную обработку и позволил каждому слову «смотреть» на все остальные слова одновременно.

Архитектура трансформера: encoder-decoder

Оригинальный трансформер состоит из двух блоков: encoder (кодировщик) и decoder (декодировщик). Каждый блок — это стек из N = 6 одинаковых слоёв.


graph TB
    INPUT["Входная последовательность"] --> EMB_E["Embedding + Positional Encoding"]
    EMB_E --> E1["Encoder Layer 1"]
    E1 --> E2["Encoder Layer 2"]
    E2 --> E3["..."]
    E3 --> E6["Encoder Layer 6"]
    E6 --> ENC_OUT["Представление контекста"]

    TARGET["Целевая последовательность (сдвинутая)"] --> EMB_D["Embedding + Positional Encoding"]
    EMB_D --> D1["Decoder Layer 1"]
    D1 --> D2["Decoder Layer 2"]
    D2 --> D3["..."]
    D3 --> D6["Decoder Layer 6"]
    D6 --> LINEAR["Linear + Softmax"]
    LINEAR --> OUTPUT["Выходные вероятности"]

    ENC_OUT --> D1
    ENC_OUT --> D2
    ENC_OUT --> D3
    ENC_OUT --> D6

Encoder принимает входную последовательность (например, предложение на английском) и превращает её в плотное векторное представление. Каждый слой encoder содержит два подслоя:

  1. Multi-Head Self-Attention — механизм внимания, о котором ниже.
  2. Feed-Forward Network — полносвязная сеть, одинаковая для каждой позиции.

Decoder генерирует выходную последовательность (перевод на русский) токен за токеном. Каждый слой decoder содержит три подслоя:

  1. Masked Multi-Head Self-Attention — внимание только к уже сгенерированным токенам.
  2. Cross-Attention — внимание к выходу encoder (связь «исходный текст → перевод»).
  3. Feed-Forward Network — аналогичный encoder.
ℹ Encoder-only, decoder-only, encoder-decoder
Оригинальный трансформер — encoder-decoder (для перевода). Но современные модели часто используют только часть архитектуры. BERT — encoder-only (понимание текста). GPT, Claude, Llama — decoder-only (генерация текста). T5, модели перевода — полный encoder-decoder.

Размерности оригинальной модели

В оригинальной статье ключевые параметры были такими:

  • d_model = 512 — размерность всех внутренних представлений
  • Число голов внимания: 8 (каждая работает с d_k = 64)
  • Размер FFN: 2048 (внутренний слой feed-forward сети)
  • Число слоёв: 6 (и в encoder, и в decoder)
  • Dropout: 0.1 на каждом подслое

Итого: ~100 миллионов параметров. Для сравнения, GPT-5 содержит, по оценкам, более триллиона параметров — но базовые строительные блоки те же.

Self-Attention: ядро трансформера

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

Query, Key, Value

Каждый входной токен преобразуется в три вектора:

  • Query (Q) — «что я ищу?»
  • Key (K) — «что я содержу?»
  • Value (V) — «что я передам, если на меня обратят внимание?»

Формула вычисления attention:

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

Разберём по шагам:

import numpy as np

# Допустим, у нас 4 токена с размерностью d_k = 64
Q = np.random.randn(4, 64)  # Query для каждого токена
K = np.random.randn(4, 64)  # Key для каждого токена
V = np.random.randn(4, 64)  # Value для каждого токена

# Шаг 1: Скалярное произведение Q и K^T
scores = Q @ K.T  # Матрица 4×4: «кто на кого смотрит»

# Шаг 2: Масштабирование (без него градиенты затухают)
d_k = 64
scores = scores / np.sqrt(d_k)

# Шаг 3: Softmax — превращаем в вероятности
def softmax(x):
    exp_x = np.exp(x - np.max(x, axis=-1, keepdims=True))
    return exp_x / exp_x.sum(axis=-1, keepdims=True)

attention_weights = softmax(scores)  # 4×4, строки суммируются в 1

# Шаг 4: Взвешенная сумма Value
output = attention_weights @ V  # 4×64: обновлённое представление
📝 Пример: как работает внимание

Рассмотрим предложение: «Кот сидел на коврике, потому что он устал».

Когда модель обрабатывает слово «он», механизм внимания должен определить, что «он» относится к «кот», а не к «коврику». Query слова «он» будет иметь высокое скалярное произведение с Key слова «кот» — и модель «обратит внимание» именно на него, получив нужный контекст.

Multi-Head Attention

Одна «голова» внимания может уловить один тип связи (например, синтаксическую). Но в языке связи многомерные: грамматика, семантика, кореференция, логика. Поэтому трансформер использует несколько голов параллельно — в оригинале 8.

Каждая голова имеет свои матрицы проекций W_Q, W_K, W_V и работает независимо. Результаты всех голов конкатенируются и проецируются обратно:

MultiHead(Q, K, V) = Concat(head_1, ..., head_8) × W_O

Это как смотреть на текст восемью парами глаз одновременно: одна голова следит за подлежащим и сказуемым, другая — за местоимениями и их антецедентами, третья — за временными маркерами.

Позиционное кодирование и другие компоненты

Зачем нужно позиционное кодирование

Self-attention обрабатывает все токены параллельно — у него нет встроенного понятия порядка. Предложения «кот съел рыбу» и «рыба съела кота» без дополнительной информации для attention неразличимы.

Решение — positional encoding: к каждому embedding токена прибавляется вектор, кодирующий его позицию. В оригинальной статье использовали синусоидальные функции:

PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

Современные модели чаще используют RoPE (Rotary Position Embedding) — они лучше масштабируются на длинные контексты. Именно благодаря RoPE модели вроде Llama 4 Scout работают с контекстом до 10 миллионов токенов.

Residual Connections и Layer Normalization

Каждый подслой трансформера обёрнут в два важных механизма:

  • Residual connection (остаточная связь): выход подслоя складывается с его входом. Это позволяет градиентам свободно протекать через десятки слоёв.
  • Layer normalization: нормализует значения, стабилизируя обучение.

Формула: LayerNorm(x + Sublayer(x))

💡 Почему это критически важно
Без residual connections глубокие трансформеры (десятки и сотни слоёв) просто не обучались бы — градиенты затухали бы задолго до первых слоёв. Это та же идея, что позволила обучать глубокие ResNet в компьютерном зрении.

Почему трансформеры победили: масштабирование

Трансформеры оказались не просто лучшей архитектурой — они оказались масштабируемой архитектурой. Три фактора сошлись:

1. Параллелизм. RNN обрабатывают токены последовательно — GPU простаивает. Трансформер обрабатывает все токены слоя одновременно — GPU загружен на 100%. Это превращает деньги на железо в качество модели.

2. Scaling laws. Исследования OpenAI и DeepMind показали: увеличение числа параметров и данных предсказуемо улучшает качество. Трансформер масштабируется «гладко» — нет порога, после которого добавление параметров перестаёт помогать.

3. Универсальность. Одна и та же архитектура работает для текста, кода, изображений (Vision Transformer), аудио, видео и мультимодальных задач. Llama 4 от Meta обучен совместно на текстах, изображениях и видео на 200+ языках.

МодельГодПараметрыКонтекстАрхитектура
Transformer (оригинал)2017100M~512 токеновEncoder-Decoder
GPT-220191.5B1024 токенаDecoder-only
GPT-32020175B2048 токеновDecoder-only
GPT-52025–2026>1T (оценка)1M+ токеновDecoder-only
Claude Opus 4.62026не раскрыто1M токеновDecoder-only
Llama 4 Scout2025109B (17B акт.)10M токеновMoE Decoder

За 9 лет контекстное окно выросло с 512 токенов до 10 миллионов — в 20 000 раз. Параметры — с сотен миллионов до триллионов. Но базовый building block — слой self-attention — остался тем же.

Что дальше: эволюция архитектуры

Трансформеры доминируют, но их главное ограничение — квадратичная сложность self-attention: O(n²) по длине контекста. При 10 миллионах токенов это становится вычислительно тяжёлым.

Направления развития в 2025–2026:

FlashAttention — оптимизация на уровне GPU, которая ускоряет вычисление attention в 2–4 раза за счёт умной работы с памятью (SRAM вместо HBM). Не меняет архитектуру, но радикально ускоряет её.

Mixture of Experts (MoE) — вместо одной огромной FFN используется набор «экспертов», из которых активируется только часть. Llama 4 Scout: 109 миллиардов параметров, но только 17 миллиардов активны на каждом токене.

Гибридные архитектуры — Jamba (AI21) объединяет слои трансформера, Mamba (state-space model) и MoE в одной модели. Результат: контексты в 2–7 раз длиннее при меньшем числе параметров. NVIDIA Nemotron 3 также использует гибрид Mamba-Transformer-MoE.

State-Space Models (SSM) — альтернатива с линейной сложностью O(n). Mamba и его наследники обрабатывают последовательности без квадратичного раздувания. Пока не вытеснили трансформеры, но активно внедряются как компоненты гибридов.

⚠ Трансформеры vs. альтернативы
Несмотря на появление SSM и гибридных архитектур, чистые трансформеры по-прежнему доминируют на вершине бенчмарков. Самые мощные модели апреля 2026 — Gemini 3.1 Pro, GPT-5.4, Claude Opus 4.6 — все основаны на трансформерной архитектуре с различными оптимизациями.

Заключение

Трансформер — это не просто очередная нейросетевая архитектура. Это инфраструктурный прорыв, который сделал возможным масштабирование AI до уровня, который мы наблюдаем сегодня. Три ключевых инсайта:

  1. Self-attention заменил рекуррентность, дав моделям прямой доступ к любой части контекста и открыв путь к параллельным вычислениям на GPU.
  2. Масштабируемость архитектуры оказалась беспрецедентной — от 100 миллионов до триллионов параметров с предсказуемым ростом качества.
  3. Универсальность одной архитектуры для текста, кода, изображений, аудио и видео избавила индустрию от необходимости изобретать отдельные подходы для каждой модальности.

Понимание трансформеров — это не академическое упражнение. Это фундамент для осмысленной работы с любой современной AI-системой: от написания промптов до файн-тюнинга собственных моделей. Архитектура, придуманная для машинного перевода, стала основой технологии, которая меняет индустрию за индустрией.