Трансформер: нейросеть с механизмом внимания
2017 год и ответ на вопрос, почему не раньше
Трансформер это архитектура нейросети 2017 года, построенная на внимании, то есть на весах важности: при обработке каждого слова модель считает, насколько важно каждое из остальных, и слово с весом 0,6 входит в результат вшестеро сильнее, чем слово с весом 0,1. Прежние схемы шли по тексту слово за словом, и шаг нельзя было начать до конца предыдущего. Трансформер распараллеливает вычисления, поэтому обучать можно на несопоставимо больших собраниях текстов.
Васвани и соавторы, «Attention Is All You Need», 2017. Stanford CS324. d2l.ai · 24 мин · обновлено 01.10.2026
После урока вы сможете
- Понимать, что внимание это веса важности, а не психологическое состояние
- Объяснять, почему последовательный проход по словам мешал обучать на больших корпусах
- Знать, что предложено в 2017 году и почему это дало скачок
- Не принимать карту весов внимания за объяснение ответа модели
«Ключ не подошёл к замку» и «экскурсия по замку заняла три часа». Слово «замок» в этих фразах разное. Внутри самого слова нет никакого признака, по которому их можно различить. Различие целиком снаружи: в том, какие слова стоят рядом. Без соседей слово «замок» не значит ничего определённого.
Дальше хуже, потому что нужное слово может стоять далеко. Возьмём фразу «кошка гналась за мышью, пока она не устала». Кто устал? Чтобы ответить, надо связать «она» со словом, стоящим за пять слов до него, и выбрать одно из двух подходящих.
Модели из прошлого урока с этим не справятся по построению. n-грамма помнит два-три слова назад и дальше не видит ничего. Эмбеддинг даёт слову один и тот же вектор на все случаи, включая оба «замка». Нужен механизм, который для каждого слова решает, какие из остальных важны именно сейчас.
Внимание это веса важности
Такой механизм называется вниманием, и устроен он проще, чем звучит. Обрабатывая очередное слово, модель считает число для каждого другого слова в тексте. Число говорит, насколько это другое слово важно именно сейчас, при обработке именно этого. Чисел выходит столько, сколько слов в тексте, и считаются они заново для каждого слова.
Слово «внимание» здесь техническое, и оговорить это надо сразу. За ним нет ни сосредоточенности, ни усилия, ни выбора, куда смотреть. Есть набор чисел, складывающихся в единицу, то есть веса важности, и ничего больше. Курс пользуется словом, потому что оно принято, а не потому, что оно точное.
Веса не прописаны правилами, и это второе, что стоит понять сразу. Никто не закладывал в модель «местоимение относится к подлежащему» или «прилагательное относится к ближайшему существительному». Числа, по которым веса считаются, подобраны обучением на текстах, тем же способом, что все прочие параметры.
Дальше веса используются прямолинейно. Представление обрабатываемого слова пересобирается из того, что отдают ему остальные слова, каждое со своим весом. Слово с весом 0,6 входит в результат вшестеро сильнее, чем слово с весом 0,1. Так «замок» получает разное представление в зависимости от того, стоит ли рядом «ключ» или «экскурсия». Что именно отдаёт слово и откуда берутся сами веса, разбирает следующий раздел.
Заметьте, что этим снята беда, на которой закончился прошлый урок. Там у слова был один вектор на все случаи жизни, и оба «замка» получали одинаковое представление. Теперь представление слова зависит от соседей, а значит, зависит и от предложения целиком.
Откуда берутся сами веса
Осталась дыра: мы сказали, что модель считает веса, но не сказали как. Устройство несложное, и знать его полезно. Каждое слово выдаёт не одно представление, а три, и у каждого своё дело. Первое описывает, что слово ищет. Второе говорит, по чему его самого стоит находить. Третье несёт то, что оно отдаёт тому, кто его нашёл. В статьях их называют запросом, ключом и значением (query, key, value).
Вес пары получается из совпадения первых двух представлений. Если то, что ищет слово «она», хорошо совпадает с тем, по чему находится слово «кошка», вес выходит большим. Совпадение считают обычным умножением чисел с последующим сложением, и никакой магии в этом месте нет. Чем лучше совпало, тем больше вес, вот и всё правило.
А третье представление и есть то, из чего собирается ответ. Новое представление слова «она» это сумма третьих представлений всех слов, взятых с только что посчитанными весами. Вот и та самая пересборка, о которой шла речь выше: веса решают, кто входит в сумму сильнее. Так снимается дыра, оставшаяся с прошлого урока: одинаковых слов в разных предложениях больше нет.
Все три представления получаются из вектора слова умножением на матрицы, а эти матрицы и есть обучаемые параметры. Их подбирают градиентным спуском вместе со всем остальным, тем же способом, который разбирал урок 4: посчитали, в какую сторону сдвинуть каждое число, сделали маленький шаг, повторили. Модель учится, стало быть, не тому, какие слова важны, а тому, как считать важность и что при этом передавать дальше.
Последнее различение стоит запомнить. Правило «что с чем связывать» нигде не записано и записано быть не может. Записана процедура, которая для любого текста выдаёт числа, а качество этой процедуры проверяется единственным способом: лучше ли модель предсказывает следующий токен.
Тренажёр: сначала решите сами
К уроку приложен тренажёр с тремя предложениями, и в каждом есть местоимение. Порядок работы важен: сначала решите сами, к чему оно относится, и только потом откройте веса. Иначе картинка покажется очевидной задним числом, а это самый частый способ обмануть себя при чтении любых визуализаций.
Первое предложение про кошку и мышь. Больше всего важности достаётся «кошке», «мыши» заметно меньше, и это разумно: гонятся обычно до усталости преследователя. Никакого правила на этот счёт в модель не закладывали, вес выучен из текстов.
Второе предложение про ключ и замок, и там честная неоднозначность. Сломан мог быть и ключ, и замок, поэтому веса разделились почти поровну. Это правильное поведение, а не ошибка: неоднозначность в предложении действительно есть, и она отражена в числах.
Третье предложение про чашку и стол. Обратите внимание не на победителя, а на слово «стол»: оно получило заметный вес. Значит, этот кандидат был рассмотрен и отвергнут, а не пропущен мимо.
Веса всегда складываются в единицу, поэтому смотреть надо не на абсолютную высоту столбика, а на соотношение. Полезны два вопроса. Первый: получил ли заметный вес проигравший кандидат, то есть рассмотрен он или пропущен. Второй: не разделились ли веса поровну там, где предложение действительно неоднозначно. Ровное разделение в неоднозначной фразе говорит о разумном поведении, а не о растерянности.
Как модель читала текст раньше
Чтобы понять, почему внимание изменило область, надо знать, что было до него. Тексты обрабатывали рекуррентными сетями: модель шла по словам подряд и несла с собой состояние, сжатую память о прочитанном. Прочитала слово, обновила состояние, шагнула дальше, и так до конца текста. Состояние это несколько сотен чисел, в которые сжато всё прочитанное.
Устроено это разумно, и работало оно неплохо. Но у последовательного прохода есть свойство, которое оказалось роковым. Шаг нельзя начать, пока не закончен предыдущий: состояние после десятого слова нужно, чтобы обработать одиннадцатое.
Пока текстов немного, это терпимо. Когда обучать надо на миллиардах предложений, а времени есть несколько месяцев, это приговор. Добавление видеокарт тут не помогает: они умеют делать много дел одновременно, а здесь дела выстроены в очередь и обгонять друг друга не могут. Очередь остаётся очередью, сколько работников к ней ни приставь.
Была и вторая беда, помельче. Всё прочитанное сжимается в одно состояние, и чем длиннее текст, тем сильнее размывается его начало. Связь между далёкими словами приходилось тянуть через десятки промежуточных шагов.
Почему параллельность решила всё
Трансформер устроен иначе, и в этом вся его сила. Он не идёт по словам подряд: все слова обрабатываются одновременно, а связь между ними даёт внимание. Очередь исчезает, и связь между далёкими словами становится такой же прямой, как между соседними.
Технически вычисления сводятся к перемножению больших матриц. Ровно для этого сделаны видеокарты. Урок 7 разбирал их как одно из трёх топлив рядом с данными и алгоритмами. Обучение, которое раньше растянулось бы на годы, укладывается в недели. Одно и то же железо начинает приносить несопоставимо больше пользы.
Отсюда и главное следствие, ради которого всё это писалось. Стало возможно обучать на несопоставимо больших корпусах текста. Не «модель стала точнее на том же тексте», а «стало можно взять текста в тысячи раз больше».
Это и есть ответ на вопрос «почему 2017-й, а не раньше». Дело не в том, что кто-то нашёл более хитрый способ угадывать слово. Дело в том, что архитектура сняла ограничение на объём обучения, а дальше своё сделал масштаб, и его законам посвящён урок 8.
Статья 2017 года
Работа называется «Attention Is All You Need», написали её Васвани и соавторы, год 2017. Название говорит ровно то, что написано: внимания достаточно, рекуррентность не нужна. Убрать её целиком казалось смелым ходом, и он оправдался.
Архитектуру назвали трансформером. На ней построены языковые модели, о которых пойдёт речь в оставшихся уроках курса, а также многое за пределами текста. В реестре курса трансформер стоит со статусом «выдержало». Это одно из немногих утверждений области, по которому спора нет.
Стоит заметить, чего в этой истории нет. Нет одинокого гения и нет внезапного озарения: работа решала конкретную инженерную проблему, известную всем, кто обучал модели на текстах. Прорыв выглядел как удачная перестановка деталей, а не как удар молнии. Вблизи большинство прорывов в этой области выглядит именно так.
В 1986 году обратное распространение ошибки становится известным приёмом, и многослойные сети снова работают. В 2012 году AlexNet выигрывает соревнование по распознаванию изображений с отрывом почти в одиннадцать процентных пунктов. В 2017 году предложен трансформер. В ноябре 2022 года выходит ChatGPT. Четыре даты, четыре разных события. Путать их значит терять всю логику развития области.
Цена: каждая пара слов
У всякого решения есть цена, и здесь она видна прямо из устройства. Если каждое слово взвешивает каждое, то работы ровно столько, сколько пар слов. Сто слов дают десять тысяч пар, а для тысячи слов выходит миллион. Работа растёт не вместе с длиной текста, а вместе с квадратом длины.
Значит, удлинение текста вдвое учетверяет работу на этом шаге. Отсюда растут все разговоры про длину контекста и её пределы. Напомним определение: контекст это кусок текста, который модель учитывает при предсказании, и всё, что осталось за его границей, для неё не существует.
Второе следствие менее очевидно, но важнее для понимания устройства. Раз все слова обрабатываются одновременно, порядок из вычисления пропадает: «кошка гналась за мышью» и «мышь гналась за кошкой» состоят из одних и тех же слов. Поэтому место каждого слова приходится подавать в модель отдельно, добавкой к его представлению. Приём называют позиционным кодированием.
Один шаг повторяется десятки раз
Одного прохода внимания мало, и в настоящих моделях он повторяется. Слой за слоем каждое слово пересобирает своё представление из соседей, и на каждом слое картина уточняется. Что именно делает отдельный слой, известно лишь отчасти, и это как раз предмет работ по интерпретируемости.
К тому же на одном слое считают не один набор весов, а несколько параллельных. Один набор может ловить связь местоимения с существительным, другой согласование, третий что-то, чему у нас нет названия. Проверять, что именно ловит каждый, приходится отдельными исследованиями, и результаты получаются частичными.
Отсюда, кстати, понятно, почему тренажёр показывает одну аккуратную строку весов. Тренажёр показывает идею в чистом виде, и это его задача. Внутри большой модели настоящая картина выглядит как стопка из десятков таких строк на каждом слое, и читать её целиком пока не умеет никто. Это стоит помнить, разглядывая красивые изображения внимания в статьях и презентациях.
Чего внимание не значит
Здесь легко сделать шаг, который делают почти все. Карта весов красива и читается как объяснение: вот модель посмотрела на «кошку», значит, она поняла, кто устал. Соблазн большой, а вывод не следует.
Веса остаются частью вычисления, а не отчётом о нём. Они показывают, откуда собиралось представление слова на одном шаге одного слоя, а слоёв десятки и наборов весов на каждом слое несколько. Полной картины того, почему получился именно такой ответ, из карты внимания не выходит.
Это не значит, что заглянуть внутрь модели нельзя вовсе. Есть целое направление, которое учится находить внутри устойчивые представления и вмешиваться в них. Результаты там реальные и частичные. Полного объяснения поведения крупной модели на 2026 год нет, и урок 20 разбирает этот сюжет отдельно.
Отсюда рабочая привычка на весь курс. Красивая внутренняя картинка служит приглашением к проверке, а не доказательством. Особенно когда картинка совпадает с тем, что мы и так хотели увидеть.
Фраза звучит как описание намерения, а описывает арифметику: при пересборке представления одного слова другое вошло с большим коэффициентом. Разница видна на простой замене. «Модель решила посмотреть на подлежащее» предполагает выбор, а «в этой позиции вес подлежащего оказался наибольшим» описывает результат вычисления. Второе и есть то, что произошло на самом деле, и первое из него не следует.
Что дальше
Соберём урок в одну картину. Внимание это веса важности: обрабатывая каждое слово, модель считает, насколько важно каждое из остальных. Веса выучены на текстах, а не прописаны правилами, и слово «внимание» никакой психологии за собой не тянет.
Главное следствие 2017 года лежит не в качестве отдельного предсказания, а в скорости обучения. Рекуррентная сеть обязана идти по словам подряд, и очередь ускорить нечем. Трансформер обрабатывает всё сразу, и отсюда возможность учиться на корпусах, которые раньше было нечем переварить.
Но обученная так модель всё ещё остаётся автодополнением, а не собеседником. Она умеет продолжать текст и не умеет отвечать на просьбу, потому что отвечать её никто не учил. Как из первого получается второе, разбирает урок 12.
К чему относится «она»
Три предложения с местоимением. Сначала решите сами, потом посмотрите на веса важности, то есть на то, что в трансформере называют вниманием.
Ключевые работы и результаты
| Васвани и соавторы, «Attention Is All You Need» | 2017 | Предложена архитектура трансформера. Рекуррентность убрана целиком, связь между словами даёт механизм внимания. Вычисления распараллеливаются, и это открывает обучение на несопоставимо больших корпусах. |
| Stanford CS324 / CS336, курсы о больших языковых моделях | 2022 | Открытые материалы, на которых стоит этот модуль. Устройство внимания и трансформера разобрано там с формулами и с разбором вычислительной стоимости. |
Что подтвердилось, а что нет
Предложенная в 2017 году схема без рекуррентности стала основой языковых моделей и вышла далеко за пределы работы с текстом. Ключевое свойство состоит в том, что вычисления распараллеливаются, поэтому обучение перестало упираться в очередь из слов. Это одно из немногих утверждений области, по которому спора нет: архитектуру проверяли все и всюду, и она держится.
За словом стоит набор чисел, складывающихся в единицу: насколько каждое слово важно при пересборке представления другого. Здесь нет ни усилия, ни выбора, куда смотреть, ни ограниченного ресурса внимания, то есть ничего из того, что стоит за словом в разговоре о людях. Термин прижился и от него не отказаться, но разворачивать его обратно в арифметику нужно каждый раз.
Железо необходимо, но само по себе очередь не разгоняет: пока модель обязана обработать десятое слово, чтобы взяться за одиннадцатое, добавление видеокарт почти ничего не даёт. Трансформер снял именно это ограничение, переведя работу в перемножение матриц, которое видеокарты выполняют разом. Три топлива из урока 7 нужны все вместе, и алгоритм здесь оказался тем, чего не хватало.
Термины
- вниманиеattention
- Веса важности: при обработке каждого слова модель считает, насколько важно каждое из остальных. Слово техническое, психологии за ним нет.
- трансформерtransformer
- Архитектура 2017 года, построенная на внимании вместо последовательного прохода по тексту. Вычисления распараллеливаются, поэтому обучать можно на несопоставимо больших корпусах.
- рекуррентная сетьrecurrent neural network
- Модель, идущая по тексту слово за словом и несущая с собой состояние. Шаг нельзя начать, пока не закончен предыдущий, и отсюда потолок на объём обучения.
- позиционное кодированиеpositional encoding
- Добавка к представлению каждого токена, сообщающая его место в тексте. Без неё трансформер, обрабатывающий всё сразу, не отличил бы порядок слов.
- контекстcontext
- Кусок текста, который модель учитывает, предсказывая следующий токен. Его длина ограничена, и всё, что осталось за границей, для предсказания не существует.
- токенtoken
- Кусок текста, на который модель делит вход: часто часть слова. Для русского текста токенов на слово обычно больше, чем для английского.
- параметрparameter
- Настраиваемое число модели. Обучение состоит в подборе положений всех параметров так, чтобы ответы на известных примерах совпадали с известными ответами.
Практикум · Разметьте веса важности руками
Внимание перестаёт казаться загадочным, когда вы сами проделаете ту же работу на бумаге. Задача не в том, чтобы угадать числа модели, а в том, чтобы заметить, сколько разной работы прячется за словом «понял предложение».
- Выпишите пять предложений с местоимением, которое отсылает к чему-то раньше в тексте. Годятся любые: из книги, из рабочей переписки, из новостной заметки.
- Для каждого предложения выпишите всех кандидатов, к которым местоимение могло бы относиться. Кандидатов почти всегда больше одного. Выпишите даже те, которые кажутся нелепыми.
- Раздайте каждому кандидату долю от единицы: насколько он подходит по вашему ощущению. Если вы уверены, ставьте 0,9 и 0,1. Если сомневаетесь, ставьте 0,5 и 0,5.
- Отметьте, что именно решило дело в каждом случае: глагол, порядок слов, знание о мире или что-то ещё. Обратите внимание, как часто ответ даёт знание о мире, а не грамматика.
- Дайте те же пять предложений двум знакомым и сравните их доли с вашими. Расхождения покажут, где неоднозначность настоящая, и ровно там веса модели тоже разделятся.
Вопросы для самопроверки
Что такое внимание в трансформере?
- Способность модели сосредоточиться на главном в тексте и отбросить второстепенное, как это делает читатель
- Набор весов важности: насколько каждое слово важно при обработке данного
- Правило, связывающее местоимение с подлежащим: его закладывают в модель при разметке корпуса
- Механизм запоминания длинных цепочек слов наизусть и подстановки их в ответ
Почему последовательный проход по словам мешал обучать модели на огромных корпусах?
- Он требовал слишком много памяти: всё состояние приходилось держать целиком для каждого слова корпуса
- Он терял смысл слов из начала предложения, из-за чего обучать модель можно было не длиннее чем на десятке слов
- Спор об этом открыт: единого объяснения у замедления не нашли
- Шаг нельзя начать, пока не закончен предыдущий, и видеокарты тут не помогают
В каком году предложена архитектура трансформера?
- 2017, через пять лет после AlexNet
- 2012, вместе с первой сетью, построенной на внимании
- 1986, в той же работе, что и обратное распространение ошибки
- 2022, в год выхода ChatGPT
Текст удлинили вдвое. Что происходит с работой на шаге внимания?
- Она удваивается
- Она не меняется
- Она вырастает примерно вчетверо
- Она сокращается за счёт параллельности
Модель верно разрешила местоимение, и на карте весов видно, что больше всего важности ушло к нужному слову. Что из этого следует?
- Что модель поняла смысл предложения, раз местоимение разрешено верно
- Что решение принято именно по этому весу: раз важность ушла туда, на то слово модель и опиралась
- Что карта внимания и есть полный отчёт о вычислении: по ней восстанавливается весь путь от входа к ответу
- Немногое: веса остаются частью вычисления, а не объяснением ответа
Ответы и разбор открываются в самопроверке урока: она считает результат и отмечает урок пройденным. Пройти самопроверку.
Что читать
- A. Vaswani et al., «Attention Is All You Need», 2017: Статья короткая и на удивление читаемая: устройство изложено на первых восьми страницах, дальше идут эксперименты.
- Тренажёр «К чему относится „она“» в этом уроке: Три предложения с местоимением. Решайте сами до того, как открыть веса: иначе ответ покажется очевидным задним числом.