История LLM · Transformer · Paper · 2017 12 июня 2017 · 35 мин чтения

Attention Is All You Need
на русском

Перевод landmark-paper Google (2017): Transformer, self-attention, multi-head attention — архитектурный фундамент современных LLM.

Оригинал: Vaswani et al., «Attention Is All You Need», NeurIPS 2017 · arXiv:1706.03762 · Google Brain / Google Research. Ниже — русский перевод ключевых разделов paper; формулы и терминология сохранены максимально близко к оригиналу.

Аннотация

Доминирующие модели sequence transduction — трансформеры с рекуррентными или свёрточными слоями — строятся вокруг сложных рекуррентных или свёрточных нейронных сетей, включающих encoder и decoder. Лучшие модели подключают механизм attention между encoder и decoder. Мы предлагаем новую простую архитектуру — Transformer, основанную исключительно на механизмах attention, без рекуррентности и свёрток. Эксперименты на двух задачах машинного перевода показывают, что такие модели качественнее, параллелизуются лучше и требуют существенно меньше времени на обучение. Наша модель на WMT 2014 English-to-German достигает BLEU 28.4, улучшая существующие SOTA более чем на 2 BLEU. На English-to-French — 41.8 BLEU, превосходя все опубликованные модели при доле стоимости обучения.

1. Введение

Рекуррентные нейронные сети (RNN, LSTM, GRU) были de facto стандартом для моделирования последовательностей: языковое моделирование, распознавание речи, машинный перевод. Рекуррентные модели обрабатывают токены по одному, скрытое состояние h_t зависит от предыдущего — это создаёт последовательную природу вычислений: позиция t не может быть посчитана, пока не завершена t−1. На длинных последовательностях это ограничивает параллелизм на GPU и затрудняет обучение длинным зависимостям.

Attention-механизмы (Bahdanau et al., 2015; Luong et al., 2015) ослабляют это: decoder на каждом шаге «смотрит» на все позиции encoder. Но рекуррентность в encoder/decoder остаётся узким местом.

Мы предлагаем Transformer — архитектуру, полностью отказавшуюся от рекуррентности. Вместо этого используется multi-head self-attention: каждая позиция последовательности напрямую взаимодействует со всеми остальными. Это даёт:

2. Background

Reduced attention (Lin et al.) и ConvS2S (Gehring et al.) использовали CNN вместо RNN — параллелизм выше, но путь между позициями растёт с расстоянием или требует много слоёв. Self-attention (Parikh et al., «Decomposable Attention») уже применялся к задачам сопоставления предложений, но не как единственный строительный блок seq2seq.

Transformer объединяет идеи: self-attention как основной слой + position-wise feed-forward + residual connections + layer normalization (как в ResNet и post-LN transformer blocks).

3. Архитектура модели

Transformer следует классической схеме encoder–decoder для transduction: входная последовательность → выходная. Encoder отображает вход в непрерывное представление; decoder авторегрессивно генерирует выход, на каждом шаге attending к encoder и к уже сгенерированным токенам.

3.1 Стеки encoder и decoder

Encoder — стек из N=6 идентичных слоёв. Каждый слой:

Decoder — тоже N=6 слоёв, но с тремя подслоями:

3.2 Attention

Функция attention отображает query и набор пар key–value в output. Output — взвешенная сумма values, веса задаются совместимостью query с keys.

3.2.1 Scaled Dot-Product Attention

Мы используем scaled dot-product attention:

Attention(Q, K, V) = softmax(QK^T / √d_k) · V

где Q (queries), K (keys), V (values) — матрицы. Деление на √d_k предотвращает слишком малые градиенты при большой размерности d_k. Для decoder добавляется маска: позиции могут attend только к позициям ≤ текущей (causal / look-ahead mask).

3.2.2 Multi-Head Attention

Вместо одного attention с d_model-мерными Q, K, V — h параллельных «голов» (в базовой модели h=8, d_k = d_v = 64 при d_model=512). Каждая голова учится смотреть на разные типы зависимостей (синтаксис, coreference, длинный контекст). Выходы конкатенируются и проецируются:

MultiHead(Q,K,V) = Concat(head_1, …, head_h) W^O
head_i = Attention(Q W_i^Q, K W_i^K, V W_i^V)

В Transformer multi-head attention используется в трёх местах:

3.3 Position-wise Feed-Forward Networks

После attention — два линейных слоя с ReLU, применённые независимо к каждой позиции:

FFN(x) = max(0, x W_1 + b_1) W_2 + b_2

В базовой модели: d_model=512, внутренняя размерность 2048. Это «локальная» нелинейность после «глобального» mixing через attention.

3.4 Embeddings и Softmax

Токены → векторы размерности d_model. Стандартный learned embedding, умноженный на √d_model. Выход decoder → logits через linear + softmax. Веса embedding и pre-softmax linear shared (weight tying) — уменьшает параметры и улучшает BLEU.

3.5 Positional Encoding

Без рекуррентности или свёрток модель не знает порядок токенов. Добавляем positional encoding к embeddings:

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

pos — позиция, i — измерение. Синусоиды позволяют модели экстраполировать на длины, не встречавшиеся при обучении. Альтернатива — learned positional embeddings (с comparable results).

4. Почему self-attention

СлойСложность на шагПараллелизмМакс. путь
Self-AttentionO(n²·d)O(1) между позициямиO(1)
RNNO(n·d²)O(n) sequentialO(n)
Conv (kernel k)O(k·n·d²)O(1)O(n/k) layers

Self-attention выигрывает, когда n (длина последовательности) умеренна, а нужен короткий путь между distant tokens. Для очень длинных n появляются sparse / linear attention (Longformer, Performer — уже после этой статьи).

5. Обучение

Данные: WMT 2014 English–German (~4.5M пар), English–French (36M пар с back-translation). BPE tokenization: ~37K (DE) и 32K (EN–FR) subword units.

Base model: N=6, d_model=512, d_ff=2048, h=8, P_drop=0.1. Big model: d_model=1024, d_ff=4096, h=16, h=16, dropout 0.3 на EN–DE.

Optimizer: Adam, β1=0.9, β2=0.98, ε=10⁻⁹. Learning rate schedule с warmup: lr растёт linearly первые 4000 steps, затем ∝ 1/√step. Label smoothing ε_ls=0.1.

Hardware: base — 12 hours на 8× P100; big EN–DE — 3.5 days. Против state-of-the-art RNN/CNN — порядок ускорения.

6. Результаты

МодельEN→DE BLEUEN→FR BLEUParams
ByteNet / ConvS2S (prev SOTA)24.6 / 25.240.9 / 41.4—
Transformer (base)27.338.165M
Transformer (big)28.441.8213M

На English constituency parsing (WSJ, semi-supervised) Transformer generalizes за пределы MT — 92.7 F1 при обучении только на 40K предложениях.

Attention visualization: головы encoder layer 5 показывают long-distance dependencies (согласование глаголов, anaphora). Decoder heads часто выделяют синтаксически связанные слова при генерации.

7. Заключение

Transformer — первая transduction-модель, полностью основанная на attention, без recurrence. Она быстрее обучается, лучше масштабируется и даёт SOTA на MT. Мы ожидаем применения к другим модальностям — и последующие годы это подтвердили: GPT (decoder-only), BERT (encoder-only), T5 (encoder–decoder), Vision Transformer, diffusion U-Net с attention — всё наследует эту work.


Коротко

Attention Is All You Need (2017) ввёл Transformer: self-attention + FFN + positional encoding вместо RNN. Простыми словами: как работает трансформер · дальше: BERT (2018) · хронология: История LLM.

История LLMTransformerPaper2017