Загружаем научный разбор
Подготавливаем текст, источники и редакционные примечания без изменения разметки страницы.
Подготавливаем текст, источники и редакционные примечания без изменения разметки страницы.
Разбираем исходный Transformer: scaled dot-product attention, устройство экспериментов WMT, результаты и границы выводов статьи 2017 года.
Название работы Vaswani и соавторов стало лозунгом целой эпохи, но её результат часто пересказывают слишком широко: будто статья доказала превосходство Transformer для любых данных и задач. Исходный эксперимент был точнее и уже. Авторы предложили encoder-decoder для машинного перевода, построенный на attention без рекуррентных и свёрточных слоёв, и сравнили его с сильными на тот момент системами на двух корпусах перевода.
Рекуррентная модель обрабатывает последовательность шаг за шагом. Состояние для позиции зависит от предыдущего состояния, поэтому обучение трудно распараллелить по длине предложения. Кроме того, сигналу между далёкими словами приходится проходить длинную цепочку операций.
Transformer заменил эту цепочку прямым сопоставлением позиций через self-attention. Каждый токен строит запрос, ключ и значение. Сходство запроса с ключами превращается в веса, а взвешенная сумма значений даёт новое представление позиции. Multi-head attention повторяет операцию в нескольких обучаемых подпространствах, чтобы разные головы могли фиксировать разные типы связей.
Порядок слов из самой операции attention не следует. Поэтому к эмбеддингам добавляли positional encoding. В исходной работе использовались синусоидальные признаки разных частот; это важная часть модели, а не декоративная метка номера токена.
Один слой можно свести к четырём шагам:
Ниже — учебная реализация одного запроса без библиотек глубокого обучения. Она не воспроизводит Transformer, но позволяет проверить смысл нормировки и взвешивания.
from math import exp, sqrt
query = [1.0, 0.5]
keys = [[1.0, 0.0], [0.0, 1.0], [1.0, 1.0]]
values = [[10.0, 0.0], [0.0, 10.0], [6.0, 6.0]]
scores = [sum(q * k for q, k in zip(query, key)) / sqrt(2) for key in keys]
normalizer = sum(exp(score) for score in scores)
weights = [exp(score) / normalizer for score in scores]
context = [
sum(weight * value[column] for weight, value in zip(weights, values))
for column in range(2)
]
print([round(weight, 3) for weight in weights])
print([round(value, 3) for value in context])В настоящей модели вычисление выполняется пакетно, используются маски, residual-связи, layer normalization и позиционные feed-forward сети. В decoder причинная маска запрещает позиции видеть будущие токены при генерации.
Основные задачи — перевод WMT 2014 English→German и English→French. Авторы сравнивали качество по BLEU и вычислительную стоимость обучения. Большая конфигурация Transformer в работе получила 28,4 BLEU на English→German и 41,8 BLEU на English→French; эти числа относятся к конкретным данным, токенизации, процедуре декодирования и версии метрики.
Для проверки архитектуры авторы варьировали число голов, размерность ключей и значений, ширину модели, dropout и способ positional encoding. Такая таблица ablation важнее популярного пересказа: она показывает, какие конфигурации проверялись, но не превращает каждое архитектурное решение в универсальный закон.
Ещё одно заявленное преимущество — меньшая длина пути между позициями и более высокая параллельность обучения. Однако self-attention в исходной полной форме строит квадратную по длине матрицу попарных связей. Для длинных документов это становится ограничением по памяти и вычислениям; последующие работы предложили локальные, разреженные и линейные варианты именно потому, что базовая схема не бесплатна.
Работа продемонстрировала, что рекуррентность не обязательна для сильной sequence-to-sequence модели машинного перевода. На выбранных задачах Transformer одновременно дал конкурентное или лучшее качество и хорошо использовал параллельные ускорители при обучении. Архитектура оказалась достаточно общей, чтобы позднее стать основой языковых и мультимодальных моделей, но это последующая история, а не результат эксперимента 2017 года.
Важно отделять три уровня утверждений:
Фраза «модель смотрит на важные слова» полезна только как метафора. Вес attention — внутренний коэффициент вычисления. Он не является готовым доказательством причинности, человеческого внимания или объяснением итогового решения модели.
Сначала зафиксируйте постановку и baseline, затем восстановите размеры тензоров Q, K и V и только после этого переходите к схемам всей модели. В таблицах результатов проверяйте набор данных, токенизацию, направление перевода и вариант BLEU. В ablation ищите не «лучшую голову», а изменение ровно одного фактора при сопоставимом бюджете.
Главный вывод работы остаётся сильным без мифологии: последовательности можно моделировать, напрямую строя контекст между позициями и сохраняя параллельность обучения. Но конкретная статья — доказательство на заданных экспериментах, а не универсальный сертификат для любого Transformer-продукта.
Самостоятельный редакционный разбор ЯдроКода по публикации Vaswani et al. и официальной странице NeurIPS. Факты и идеи изложены своими словами; исходные таблицы и иллюстрации не воспроизводятся.
Формулы, учебный код и объяснительные схемы создаются редакцией; рисунки, таблицы и текст первоисточников не копируются.