«Внимание — это всё, что вам нужно» () — знаковая научная статья 2017 года в области машинного обучения, написанная восемью учёными, работавшими в Google Brain / Google Research. В статье была представлена новая архитектура глубокого обучения, известная как трансформер, основанная на механизме внимания, предложенном в 2014 году Баданау и др. Она считается фундаментальной работой в современном искусственном интеллекте и одним из основных факторов бума ИИ, поскольку трансформерный подход стал основной архитектурой для широкого спектра ИИ-систем, таких как большие языковые модели. На момент публикации основное внимание исследования было сосредоточено на улучшении методов для машинного перевода, однако авторы пошли дальше, предвидя потенциал этой техники для QA-систем и систем, известных сейчас как генеративные ИИ.
Название статьи является отсылкой к песне «All You Need Is Love» группы The Beatles. Название «Трансформер» было выбрано потому, что Якобу Ушкорейту, одному из авторов статьи, понравилось звучание этого слова. Ранний проектный документ назывался «Трансформеры: итеративное самовнимание и обработка для различных задач» и включал иллюстрацию шести персонажей из франшизы «Трансформеры». Команда получила название «Team Transformer» («Команда Трансформер»). Некоторые из ранних примеров, на которых команда опробовала свою архитектуру, включали перевод с английского на немецкий, генерацию статей Википедии на тему «Трансформер» и синтаксический анализ. Это убедило команду в том, что трансформер является языковой моделью общего назначения, а не только подходящей для перевода.
По состоянию на 2025, статья была процитирована более 173 000 раз, что ставит её в число десяти наиболее цитируемых статей XXI века.
Авторы Авторами статьи являются: Эшиш Васвани, Ноам Шазир, Ники Пармар, Якоб Ушкорейт, Ллион Джонс, Эйдан Гомес, Лукаш Кайзер и Илья Полосухин. Все восемь авторов внесли «равный вклад» в статью; порядок их перечисления был случайным. Статья в Wired подчёркивает многонациональность группы: Шестеро из восьми авторов родились за пределами Соединённых Штатов; двое других — это дети немцев с грин-картами, временно находившихся в Калифорнии, и американец в первом поколении, чья семья бежала от преследований, соответственно. После публикации статьи все авторы покинули Google, чтобы присоединиться к другим компаниям или основать стартапы. Некоторые из них выражали мнение, что не смогли бы развивать и расширять трансформер в желаемом направлении, если бы остались в Google.
Обсуждаемые и представленные методы Статья наиболее известна благодаря представлению архитектуры «трансформер», которая лежит в основе большинства современных больших языковых моделей (БЯМ / LLM). В реализации нейросети типа трансформер, например, в PyTorch используются для распараллеливания векторные инструкции или GPU. Чтобы стало возможным обучать нейросеть в т.н. пакетном режиме было предложено использовать позиционное кодирование (Positional Encoding).
Масштабированное скалярное произведение внимания и самовнимание Использование механизма масштабированного скалярного произведения внимания и самовнимания вместо рекуррентной нейронной сети или долгой краткосрочной памяти (LSTM) (которые основаны на рекурренсии) позволяет достичь лучшей производительности, как описано в следующем параграфе. В статье масштабированное скалярное произведение внимания описывается следующим образом:
где , , — это соответственно матрицы запросов, ключей и значений, а — размерность значений.
Поскольку модель опирается на матрицы запросов (Q), ключей (K) и значений (V), которые происходят из одного и того же источника (то есть входной последовательности / контекстного окна), это полностью устраняет необходимость в RNN, обеспечивая распараллеливаемость архитектуры. Это отличается от первоначальной формы механизма внимания, представленного в 2014 году. Кроме того, в статье также обсуждается использование дополнительного масштабирующего коэффициента, который, как было установлено, наиболее эффективен по отношению к размерности векторов ключей (обозначенной как и первоначально установленной в 64 в статье), как показано выше.
В конкретном контексте перевода, на котором была сосредоточена статья, матрицы запросов и ключей обычно представляются в виде эмбеддингов, соответствующих исходному языку, в то время как матрица значений соответствует целевому языку.
Многоголовочное внимание В механизме самовнимания запросы (Q), ключи (K) и значения (V) динамически генерируются для каждой входной последовательности (обычно ограниченной размером контекстного окна), что позволяет модели фокусироваться на разных частях входной последовательности на разных этапах. Многоголовочное внимание улучшает этот процесс, вводя несколько параллельных «голов» внимания. Каждая голова внимания изучает различные линейные проекции матриц Q, K и V. Это позволяет модели одновременно улавливать различные аспекты взаимосвязей между словами в последовательности, а не сосредотачиваться на одном аспекте.
Таким образом, многоголовочное внимание обеспечивает обновление входных эмбеддингов с более разнообразных точек зрения. После вычисления выходных данных внимания от всех голов они конкатенируются и проходят через заключительное линейное преобразование для генерации выходных данных.
Позиционное кодирование Позиционное кодирование (Positional Encoding) — важный компонент трансформеров (Transformer), который позволяет модели учитывать порядок элементов в последовательности, поскольку сам механизм Self-Attention не имеет встроенного понимания позиций. Трансформеры обрабатывают входные данные параллельно (в отличие от RNN), поэтому без дополнительных меток модель "не видит" порядок элементов. Позиционное кодирование добавляет информацию о позиции каждого токена в последовательности. В статье использовались синусоидальные и косинусоидальные волновые функции для кодирования позиции токена в эмбеддинг.
где , , соответствуют позиции слова, текущему индексу размерности и размерности модели соответственно. Синусоидальная функция используется для чётных индексов эмбеддинга, а косинусоидальная — для нечётных. Полученный эмбеддинг затем добавляется к слову на соответствующей позиции относительно текущего контекстного окна.
Синусоидальные функции (sin/cos) выбраны потому, что они позволяют модели легко интерполировать на более длинные последовательности, чем встречались при обучении. .
Обучение Хотя основной задачей статьи на тот момент было улучшение машинного перевода, в ней также обсуждалось использование архитектуры для синтаксического анализа по составляющим английского языка как с ограниченными, так и с большими наборами данных. Модель достигла высоких результатов без специальной настройки для этой задачи, что указывало на её перспективность для широкого круга задач seq2seq общего назначения.
Набор данных Модель для перевода с английского на немецкий обучалась на наборе данных WMT (Workshop on Statistical Machine Translation) 2014 года для пары английский-немецкий, состоящем почти из 4,5 миллионов предложений, взятых из выступлений TED Talks и высококачественных новостных статей. Отдельная модель перевода обучалась на гораздо большем наборе данных WMT 2014 года для пары английский-французский, состоящем из 36 миллионов предложений. Оба набора данных были закодированы с использованием кодирования парами байтов (BPE).
Аппаратное обеспечение Модели обучались с использованием 8 GPU NVIDIA P100. Базовые модели обучались в течение 100 000 шагов, а большие модели — в течение 300 000 шагов. Каждый шаг занимал около 0,4 секунды для базовых моделей и 1,0 секунды для больших моделей. Обучение базовой модели заняло в общей сложности 12 часов, а большой — 3,5 дня. И базовая, и большая модели превзошли самые современные на тот момент (2017 год) результаты как для англо-немецкого, так и для англо-французского перевода, при этом имея сравнительно наименьшие затраты на обучение. Оценочная стоимость вычислений составила 0,089 петафлопс-дней.
Гиперпараметры и регуляризация Для своей 100-миллионнопараметрической модели трансформера авторы линейно увеличивали скорость обучения в течение первых 4000 шагов (разогрев), а затем уменьшали её пропорционально обратному квадратному корню от номера текущего шага. Слои исключения (dropout) применялись к выходу каждого подслоя перед нормализацией, к суммам эмбеддингов и к позиционным кодировкам. Коэффициент dropout был установлен на 0,1. Применялось сглаживание меток со значением 0,1, что «улучшает точность и оценку BLEU».
Примечания
Ссылки Сопутствующая запись в блоге Google Research.
См. также PyTorch
Категория:Google Категория:Искусственный интеллект