Attention Is All You Need (2017)

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

Перейти к: навигация, поиск
Статья написана с использованием LLM Gemini 3.1 Pro и проверена участником Osman Osmanov 15:11, 18 июля 2026 (MSD)

Промпт приводится полностью в Обсуждение:Attention Is All You Need (2017)


Содержание

Введение

Attention Is All You Need (2017) (рус. Внимание – это всё, что вам нужно) — научная статья в области глубокого обучения, опубликованная в 2017 году исследователями из Google Brain под руководством Ашиша Васвани[1]. В работе представлена архитектура нейронной сетитрансформер (transformer), — построенная исключительно на механизме самовнимания и не содержащая рекуррентных или свёрточных слоёв. Основным техническим вкладом статьи является демонстрация того, что параллельная обработка последовательностей с помощью механизма внимания способна достигать более высокого качества и эффективности обучения, чем доминировавшие на тот момент архитектуры. Предложенная модель стала основой для создания современных больших языковых моделей.

Предпосылки

До публикации статьи стандартом для задач обработки последовательностей являлись рекуррентные нейронные сети (RNN), в частности LSTM[1] и GRU[1]. Их фундаментальное ограничение заключалось в последовательном характере вычислений: для получения скрытого состояния в позиции t требовалось завершить обработку всех предыдущих позиций 1, \dots, t-1, что препятствовало эффективному распараллеливанию обучения на графических процессорах. В качестве альтернативы использовались свёрточные архитектуры (ByteNet[1], ConvS2S[1]), которые позволяли вычислять промежуточные представления параллельно, однако длина путей распространения сигналов между удалёнными позициями в них росла линейно или логарифмически, что ограничивало способность модели улавливать дальние зависимости. Авторы статьи предложили архитектуру[1], в которой количество последовательных операций постоянно, а максимальная длина пути между любыми двумя позициями равна O(1). Трансформер стал первой моделью переноса последовательностей (transduction model), вычисляющей представления входа и выхода исключительно на основе механизма самовнимания, без использования рекуррентных или свёрточных слоёв.

Архитектура

Предложенная архитектура Трансформера имеет энкодер-декодер структуру. Оба компонента состоят из стека идентичных слоёв (по 6 в базовой и большой версиях). Каждый слой энкодера содержит два подуровня: Multi-Head Self-Attention и позиционно-полносвязную сеть (Position-wise Feed-Forward Network, FFN). Декодер дополнительно включает третий подуровень — Multi-Head Attention над выходом энкодера (cross-attention). Вокруг каждого подуровня применена остаточная связь с последующей LayerNorm (Post-LN). В декодере самовнимание маскировано так, что позиция t может опираться только на выходы до позиции t-1.

Внимание (Attention)

Базовым блоком является Scaled Dot-Product Attention, вычисляемый по формуле:

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

где Q, K, V — матрицы запросов, ключей и значений, полученные линейными проекциями входных векторов. Деление на \sqrt{d_k} (d_k — размерность ключей) необходимо для предотвращения насыщения softmax: при больших d_k дисперсия скалярных произведений растёт, что приводит к концентрации весов на одном элементе и, как следствие, к затуханию градиентов.

Multi-Head Attention параллельно применяет h независимых механизмов внимания к низкоразмерным проекциям Q, K, V (размерность d_k = d_v = d_{\text{model}} / h). Выходы всех голов конкатенируются и линейно преобразуются:

\operatorname{MultiHead}(Q, K, V) = \operatorname{Concat}(\operatorname{head}_1, \dots, \operatorname{head}_h) W^O

где \operatorname{head}_i = \operatorname{Attention}(Q W_i^Q, K W_i^K, V W_i^V). Это позволяет модели одновременно фокусироваться на различных типах связей.

В полной архитектуре используются три варианта внимания:

  • Self-attention в энкодере — все позиции связаны со всеми;
  • Masked self-attention в декодере — связь только с предыдущими позициями;
  • Cross-attention (encoder-decoder) — запросы из декодера, ключи и значения из энкодера.

Позиционное кодирование

Поскольку механизм внимания инвариантен к перестановкам, авторы ввели аддитивное позиционное кодирование на основе синусоидальных функций:

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

где pos — позиция, i — индекс размерности. Такой выбор позволяет модели экстраполировать на длины последовательностей, не встречавшиеся в обучении, и выражать относительные сдвиги.

Анализ вычислительной сложности (Why Self-Attention)

Авторы сравнили вычислительные характеристики различных архитектур[1]. Основные результаты сведены в таблицу:

Тип слоя Сложность на слой Минимальное число последовательных операций Максимальная длина пути
Self-Attention O(n^2 \cdot d) O(1) O(1)
Recurrent (RNN/LSTM) O(n \cdot d^2) O(n) O(n)
Convolutional (dilated) O(k \cdot n \cdot d^2) O(1) O(\log_k n)

Здесь n — длина последовательности, d — размерность представлений, k — размер ядра свёртки. Хотя self-attention обладает квадратичной сложностью по длине последовательности, постоянная длина путей (O(1)) означает, что информация от любой позиции до любой другой передаётся за один вычислительный шаг, что решает проблему дальних зависимостей, свойственную рекуррентным сетям.

Обучение (Training)

Обучение проводилось на датасетах WMT 2014: англо-немецкий (4.5 млн пар предложений) и англо-французский (36 млн пар). Аппаратная конфигурация: 8 GPU NVIDIA P100. Базовая модель обучалась 100 000 шагов (примерно 12 часов), большая — 300 000 шагов (примерно 3.5 дня).

Оптимизатор — Adam[1] с параметрами \beta_1 = 0.9, \beta_2 = 0.98, \epsilon = 10^{-9}. Скорость обучения изменялась по формуле:

lrate = d_{\text{model}}^{-0.5} \cdot \min(\text{stepnum}^{-0.5}, \text{stepnum} \cdot \text{warmupsteps}^{-1.5})

где \text{warmupsteps} = 4000. Применялась регуляризация: Dropout[1] с вероятностью 0.1 ко всем подуровням и позиционным эмбеддингам, а также label smoothing с коэффициентом \epsilon_{ls} = 0.1[1].

Результаты (Results)

Качество оценивалось метрикой BLEU[1]. На англо-немецком переводе большая модель Трансформера достигла 28.4, превзойдя ансамбли лучших на тот момент систем. На англо-французском — 41.8 (после beam search с размером 4 и штрафом за длину \alpha = 0.6). Дополнительно модель была применена к задаче синтаксического анализа (constituency parsing) на корпусе Wall Street Journal (WSJ). Несмотря на отсутствие специфической настройки под данную задачу, модель показала результаты, сопоставимые со специализированными решениями, что подтвердило её способность к обобщению на другие типы задач.

Заключение и историческое влияние (Conclusion)

Авторы пришли к выводу, что механизм внимания, полностью замещающий рекуррентные и свёрточные слои, не только делает обучение более параллельным, но и приводит к высокому качеству в задачах seq2seq. В последующие годы архитектура Трансформера получила развитие: для повышения стабильности обучения индустрия перешла от схемы Post-LN к Pre-LN (нормализация до подуровня), абсолютное синусоидальное кодирование было вытеснено относительными методами (RoPE)[1]. Идеи, заложенные в статье, дали начало трём основным направлениям: encoder-only модели (BERT[1]), decoder-only генеративные модели (GPT[1]) и визуальные трансформеры (ViT[1]).

См. также

Ссылки

Личные инструменты