Трансформер (модель)

Материал из MachineLearning.

Версия от 17:11, 14 июля 2026; Emil Petrov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM Claude Sonnet 4 и проверена участником Emil Petrov 20:00, 14 июля 2026 (MSD)

Промпт приводится полностью в Обсуждение:Трансформер (модель)


Содержание

Трансфо́рмер (англ. Transformer) — архитектура нейронной сети, построенная исключительно на механизме внимания (attention) без рекуррентных и свёрточных слоёв. Предложена в 2017 году исследователями Google Brain и Google Research в работе «Attention Is All You Need»[1]. Трансформер стал базовой архитектурой современных больших языковых моделей (GPT, BERT, T5 и последователи) и проник в компьютерное зрение, биологию и диффузионную генерацию.

Интуитивно трансформер похож на редакционную коллегию: каждый токен одновременно «читает» все остальные и решает, на кого опереться при формировании своего нового представления. В отличие от RNN, где информация течёт строго слева направо через узкое «бутылочное горлышко» скрытого состояния, здесь все связи доступны сразу — это и даёт параллелизм, и снимает проблему длинных зависимостей.

Предпосылки и мотивировка

До 2017 года для последовательностей (перевод, суммаризация, речь) доминировали рекуррентные сети — LSTM и GRU. Они обрабатывают вход по шагам: на шаге t модель получает токен x_t и скрытое состояние h_{t-1}. Это порождает две принципиальные проблемы.

Последовательный характер вычислений. Шаг t нельзя начать, пока не готов шаг t-1. На GPU/TPU это означает низкую утилизацию: матричные ядра простаивают, пока «тянется» цепочка по времени. Масштабирование на длинные тексты и большие корпуса становится дорогим не столько из‑за числа параметров, сколько из‑за невозможности распараллелить временную ось.

Затухание и размывание сигнала. Даже с ячейками LSTM информация с ранних позиций плохо доходит до поздних: градиенты затухают, а скрытое состояние конечной размерности вынуждено «сжимать» всю историю. Механизм внимания Bahdanau (2014) частично снял вторую проблему, дав декодеру прямой доступ к каждому состоянию энкодера, но сам энкодер и декодер оставались рекуррентными.

Трансформер сделал радикальный шаг: убрал рекуррентность полностью и построил и кодирование, и декодирование на внимании. Цена — квадратичная сложность O(n^2) по длине последовательности n; выигрыш — полный параллелизм по позициям и прямые пути длины O(1) между любыми двумя токенами.

Архитектура

Классический трансформер — энкодер-декодерная модель для машинного перевода. Ниже — блоки, из которых она собрана.

Входное представление и позиционное кодирование

Последовательность токенов x_1, \ldots, x_n отображается в матрицу встраиваний X \in \mathbb{R}^{n \times d_{\text{model}}}. Само внимание перестановочно инвариантно: без явной информации о порядке модель не отличит «кот съел мышь» от «мышь съела кот». Поэтому к встраиваниям прибавляют позиционное кодирование (positional encoding).

В оригинале — фиксированные синусоиды:

\text{PE}(pos, 2i) = \sin\!\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right), \quad \text{PE}(pos, 2i+1) = \cos\!\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right).

Разные частоты позволяют модели выражать относительные смещения через линейные комбинации; в теории это помогает обобщаться на длины, не встречавшиеся при обучении. Позже широко использовали обучаемые позиционные эмбеддинги, а в современных LLM — вращающиеся кодировки RoPE и относительные схемы ALiBi, лучше переносящиеся на длинный контекст.

Масштабированное скалярное внимание и многоголовость

Центральный блок — многоголовое внимание (multi-head attention). Для одной головы с запросами Q, ключами K и значениями V:

\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right) V.

Масштабирование на \sqrt{d_k} удерживает дисперсию скалярных произведений порядка единицы и не даёт softmax «схлопнуться» в one-hot при большой d_k (подробнее — в Механизм внимания).

Многоголовая версия запускает h независимых вниманий и склеивает результаты:

\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\, W^O,
\text{head}_i = \text{Attention}(Q W_i^Q,\, K W_i^K,\, V W_i^V).

Аналогия: несколько экспертов читают один и тот же абзац — один следит за синтаксисом, другой за кореференцией, третий за тематическими связями; редактор (W^O) сводит их мнения. Эмпирически головы действительно специализируются, хотя интерпретация весов внимания как «объяснения» решения модели ограничена (см. критику в статье про внимание).

Блок энкодера и декодера

Слой энкодера содержит два подслоя:

  1. self-attention — каждый токен смотрит на все токены входа;
  2. позиционно-независимая FFN: два линейных преобразования с нелинейностью (в оригинале ReLU; позже часто GeLU/SwiGLU):
\text{FFN}(x) = \max(0, x W_1 + b_1)\, W_2 + b_2.

Вокруг каждого подслоя — residual connection и layer normalization:

\text{output} = \text{LayerNorm}\bigl(x + \text{Sublayer}(x)\bigr).

(В современных реализациях часто Pre-LN: нормализация перед подслоем — так стабильнее глубокие стеки.)

Слой декодера добавляет третий подслой — кросс-внимание: запросы из декодера, ключи и значения из выходов энкодера. Self-attention декодера маскируется (causal / masked attention): при генерации позиции t модель не видит токены с индексом > t — иначе обучение «подглядывало» бы в будущее и инференс был бы некорректным.

Параметры модели Base и Big

В работе Vaswani et al. приведены две конфигурации:

Параметр Base Big
Число слоёв N (энкодер / декодер) 6 / 6 6 / 6
d_{\text{model}} 512 1024
Число голов h 8 16
d_k = d_v 64 64
d_{ff} 2048 4096
Dropout 0,1 0,3
Параметры (прибл.) ~65 млн ~213 млн

Уже Base превзошёл лучшие на тот момент ансамбли на WMT 2014 Eng→Ger; Big установил новый SOTA при меньшем времени обучения, чем предшественники на RNN.

Обучение

Оптимизатор — Adam (\beta_1 = 0{,}9, \beta_2 = 0{,}98, \varepsilon = 10^{-9}) со специальным планировщиком скорости обучения:

lr = d_{\text{model}}^{-0.5} \cdot \min\!\left(step^{-0.5},\; step \cdot warmup\_steps^{-1.5}\right).

Сначала линейный warmup (в оригинале 4000 шагов), затем спад как step^{-0.5}. Дополнительно — dropout на выходах подслоёв и на внимании, а также сглаживание меток (label smoothing) с \varepsilon = 0{,}1.

Для перевода использовали byte-pair encoding и shared embeddings между энкодером, декодером и softmax. Современные LLM наследуют ту же логику (AdamW, warmup + cosine/decay, mixed precision), но масштабируют данные и вычисления на порядки выше и часто добавляют этапы instruction tuning и RLHF.

Варианты архитектуры

С 2017 года трансформер породил семейство специализированных схем.

  • Только энкодер — BERT[1], RoBERTa. Двунаправленный контекст; предобучение маскированным языковым моделированием (MLM). Оптимальны для классификации, NER, извлечения признаков — «понимания» текста.
  • Только декодер — GPT, GPT-2/3/4 и большинство современных LLM. Авторегрессия: предсказание следующего токена при каузальной маске. Естественно масштабируется и подходит для генерации и in-context learning.
  • Энкодер-декодер — T5, BART. Унифицированный формат «текст → текст»: перевод, суммаризация, QA формулируются как генерация целевой строки.
  • Эффективные трансформеры — Longformer, BigBird, Performer, FlashAttention: снижают или маскируют стоимость O(n^2), либо оптимизируют IO на GPU без приближения Softmax (см. Механизм внимания).

Отдельная линия — Mixture-of-Experts поверх FFN (Switch Transformer и далее): при инференсе активируется лишь доля экспертов, что повышает ёмкость при умеренном FLOPs.

Законы масштабирования

Kaplan et al.[1] показали, что потери языкового моделирования убывают степенным образом по числу параметров N, объёму данных D и вычислительному бюджету C:

L(N, D) \approx A \cdot N^{-\alpha} + B \cdot D^{-\beta} + L_\infty.

Позже Hoffmann et al. (Chinchilla)[1] уточнили оптимальное соотношение: при фиксированном FLOPs выгоднее обучать меньшую модель на большем числе токенов, чем «недоедать» данными гигантскую сеть. Эти законы объясняют, почему гонка параметров сменилась гонкой данных, качества корпусов и эффективности обучения — и почему архитектура трансформера оказалась удобным «носителем» масштабирования.

Применения

Трансформер вышел далеко за NLP:

  • Компьютерное зрение — Vision Transformer (ViT)[1] режет изображение на патчи и обрабатывает их как токены; при достаточном масштабе данных превосходит CNN.
  • Генерация изображений — в диффузионных моделях (Stable Diffusion, DiT, DALL-E) трансформер или блоки внимания служат денойзером и связывают текст с визуальными признаками через кросс-внимание.
  • Структура белков — AlphaFold2 использует attention-блоки (Evoformer) для предсказания 3D-структуры; идея «все-со-всеми» связями переносится с языка на MSA и пространственные пары остатков.
  • Мультимодальность и агенты — единый стек трансформера связывает текст, код, изображение и аудио; поверх него работают промпт-инжиниринг, RAG и инструменты.

Значение

«Attention Is All You Need» — одна из самых цитируемых работ в истории ML. Она не «изобрела» внимание, но показала, что внимания достаточно как единственного индуктивного смещения для последовательностей. Это открыло эпоху foundation models: одна предобученная архитектура адаптируется к задачам через дообучение, инструкции и промпты. Ограничения остаются — квадратичная память, чувствительность к качеству данных, слабая гарантия фактичности — но именно трансформер задал стандарт, относительно которого измеряют альтернативы (SSM/Mamba, гибриды, диффузионные языковые модели).

См. также

Примечания

Литература

  • Vaswani A., Shazeer N., Parmar N., Uszkoreit J., Jones L., Gomez A. N., Kaiser Ł., Polosukhin I. Attention Is All You Need // Advances in Neural Information Processing Systems. — 2017. — Т. 30.
  • Bahdanau D., Cho K., Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate // ICLR. — 2015.
  • Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // NAACL-HLT. — 2019.
  • Radford A. et al. Language Models are Unsupervised Multitask Learners // OpenAI technical report. — 2019.
  • Raffel C. et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer // JMLR. — 2020. — Т. 21.
  • Kaplan J., McCandlish S., Henighan T. et al. Scaling Laws for Neural Language Models // arXiv preprint. — 2020.
  • Hoffmann J. et al. Training Compute-Optimal Large Language Models // NeurIPS. — 2022.
  • Dosovitskiy A. et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale // ICLR. — 2021.