Мы предлагаем новую простую сетевую архитектуру, Transformer, основанную исключительно на механизмах внимания.
На сервере препринтов arXiv 12 июня 2017 года, в одиннадцать часов девятнадцать минут вечера по нью-йоркскому времени, появилась статья на десять страниц. Восемь авторов, никто из них не был профессором, ни у кого даже не было привычного академического титула на главной странице. Только адреса электронной почты: у семерых — google.com, у восьмого — личный email. Заголовок статьи был коротким, чуть ироничным, как будто его авторы решили не делать вид, что они написали учебник. Attention Is All You Need.
Через семь лет эта статья станет одной из десяти самых цитируемых научных публикаций двадцать первого века. Её прочитают, в той или иной форме, миллионы инженеров и исследователей по всему миру. На предложенной в ней архитектуре будут построены все большие языковые модели, все основные системы машинного перевода, все системы преобразования текста в изображение, в музыку, в видео; на ней будут построены роботы, программирующие вместо человека, и врачи, ставящие диагнозы, и юристы, читающие договоры. Все восемь её авторов в ближайшие шесть лет уйдут из Google, и каждый из них запустит свой стартап. Кое-кто из них к моменту, когда вы читаете эту главу, уже стал миллиардером.
А в момент публикации никто из них точно не подозревал, что они только что сделали.
Якоб Узкорайт
Идея, в конечном счёте превратившаяся в трансформер, родилась в голове у одного человека. У этого человека была фамилия с лингвистическим оттенком: Ушкорайт.
Якоб Ушкорайт родился в Германии в 1981 году. Его отец, Ганс Ушкорайт, был и до сих пор является одним из самых известных в Европе специалистов по компьютерной лингвистике; в восьмидесятые-девяностые годы он много занимался формальными моделями грамматики, разрабатывал системы машинного перевода ранних поколений, основал лабораторию компьютерной лингвистики в немецком городе Саарбрюккен. Якоб вырос среди разговоров о синтаксисе, морфологии, парсерах и формальных языках, и к моменту окончания университета прекрасно понимал и любил эту область, но решил пойти в неё со стороны. Защитившись в Берлине по математике и информатике, он в 2008 году поступил в Google и быстро стал одним из главных людей, отвечавших за качество Google Translate.
К 2016 году Якобу было около тридцати пяти. Он успел поработать с архитектурами, основанными на статистических методах, потом с нейронными сетями на LSTM, видел в реальном времени, как Google Translate переходит на нейронные рельсы. У него к этому моменту накопилось определённое раздражение от LSTM-ной парадигмы. Слишком долгое обучение, слишком плохая параллелизация, слишком ограниченная архитектура.
В 2016 году в группе Якоба сделали небольшую, скромную, но важную работу. Они применили механизм внимания не как добавку к рекуррентной сети, а к простой нейросети без рекуррентности, на узкой лингвистической задаче (установить, следует ли одно утверждение из другого). Результаты их удивили. Их маленькая модель, без всяких LSTM, побила тогдашние state-of-the-art системы на этой задаче, причём имея в десять раз меньше параметров и обучаясь на порядок быстрее.
Якоб задумался. Если внимание само по себе, без рекуррентности, способно так хорошо работать на узкой задаче, что мешает применить ту же идею в полном объёме? Что если вообще выбросить LSTM из машинного перевода? Что если сделать модель, где есть только внимание, повторённое много раз, и больше ничего рекуррентного?
Эту гипотезу Якоб начал высказывать коллегам осенью 2016 года. Большинство кивало вежливо и относилось со скепсисом. Машинный перевод как задача казался слишком сложным; были устоявшиеся подходы, которые работали; зачем рисковать, чтобы заменить их на что-то непроверенное?
Даже отец Якоба, когда сын рассказал ему о своей идее в одном из телефонных разговоров, отнёсся скептически. Ганс Ушкорайт, человек, посвятивший пятьдесят лет жизни обработке естественного языка, ответил сыну примерно так: языковая структура слишком сложна, чтобы её можно было выучить одним только вниманием; ты, вероятно, упрощаешь. Якоб засмеялся, согласился, и продолжил уговаривать коллег по Google попробовать.
Ашиш Васвани
Илья Полосухин, основатель NEAR Protocol
Ноам Шазир
Никки Парма, ScaleUp 2023
Ллион Джоунз, CIC Tokyo
Лукаш Кайзер, TEDAI Vienna 2025
Эйдан Гомес, ALL IN 2025
К началу 2017 года вокруг идеи Якоба постепенно собралась небольшая группа.
Первым, кто всерьёз заинтересовался, был Ашиш Васвани, индиец по происхождению, защитившийся в Университете Южной Калифорнии, недавно перешедший в Google Brain. Васвани был педантичен, методичен, аккуратен в коде, любил долгие отладочные сессии до результата. Если Якоб был генератором идей, то Васвани был тем, кто эти идеи доводил до работающих систем.
К Васвани присоединился софтверный инженер из Украины по имени Илья Полосухин. Илья родился в Харькове в середине восьмидесятых, получил магистра по прикладной математике в Харьковском политехническом институте, в 2008 году переехал в США, а в начале 2014 года пришёл в Google — то есть к моменту работы над трансформером он был в Google уже три года. Молодой, с резкой манерой общения, не любил длинных дискуссий, очень быстро писал код. С Васвани они быстро сработались: один проектировал, другой реализовывал; через несколько недель у них была первая работающая прототипная модель, состоявшая только из слоёв внимания и обучавшаяся на маленьком наборе данных.
Параллельно идею Якоба услышал и заинтересовался ею Ноам Шазир. Шазир был ветераном Google в самом буквальном смысле: пришёл в компанию в начале двухтысячных и за пятнадцать лет успел оставить след во многих главных проектах: Google Search, Google Translate, в архитектурах ранних нейронных сетей. Среди коллег Шазир был знаменит способностью видеть, как нужно докрутить хорошую идею до отличной. У него был особый, ему одному свойственный стиль работы: он садился к проекту и за несколько дней предлагал три или четыре улучшения, каждое из которых увеличивало качество вдвое. Якоб, узнав, что Ноам интересуется, обрадовался: с Ноамом в команде шансы возрастали.
Постепенно к проекту присоединились и другие: Ники Пармар, ровесница Полосухина, отвечавшая за варианты моделей и кодовую базу; Лион Джонс, валлиец из британского отделения Google, занимавшийся аналогичной инфраструктурной работой; Лукаш Кайзер, польский математик, известный своими работами по компьютерной алгебре, к 2017 году переключившийся на нейронные сети и автор фреймворка tensor2tensor; Эйдан Гомес, тогда студент Университета Торонто, всю весну 2017 года стажировавшийся в Google и работавший с Кайзером над инфраструктурой обучения.
Восемь человек, разбросанных по разным группам Google: кто-то из Google Brain в Маунтин-Вью, кто-то из Google Research в Маунтин-Вью же, плюс Гомес, приехавший на стажировку из Торонто. Большая часть общей работы шла через еженедельные видео-конференции и обмен экспериментальными результатами в Google-овской системе.
Архитектура Transformer: энкодер и декодер
Архитектура, к которой они пришли весной 2017 года, выглядела одновременно странно и красиво.
В ней не было ни одной рекуррентной сети. Никакого LSTM. Никаких скрытых состояний, передающихся от шага к шагу. Вместо этого: стек из шести одинаковых блоков «энкодера» и шести одинаковых блоков «декодера». Каждый блок выглядел просто: слой внимания, потом слой обычной полносвязной сети, потом нормировка. Вход — последовательность векторов слов; выход — последовательность векторов того же размера.
Ключевой механизм назывался self-attention, само-вниманием. В нём каждое слово предложения, грубо говоря, обращалось ко всем словам того же предложения и спрашивало у них: «насколько ты для меня сейчас важно?» Получались веса. Слово смешивало векторы всех остальных слов с этими весами и формировало свой новый, обогащённый вектор.
Это была старая идея Богданау, но применённая по-другому. У Богданау attention был между двумя предложениями: декодировщик смотрел на исходник. Здесь attention был внутри одного и того же предложения, между его собственными словами. Каждое слово, в каком-то смысле, «слушало» все остальные.
Ноам Шазир улучшил эту идею двумя приёмами, которые стали потом каноническими. Первый: он предложил вместо одного механизма внимания запускать несколько одновременно, параллельно, по разным «направлениям». Идея была такая: пусть в одном направлении сеть учится обращать внимание на синтаксические связи (подлежащее—сказуемое), в другом — на семантические (что к чему относится), в третьем — на длинно-дистанционные (местоимение и его антецедент за десять слов до). По отдельности неясно, чему именно научится каждое направление, но в сумме они смогут уловить разные виды связей. Это назвали multi-head attention, многоголовое внимание. В исходной модели было восемь параллельных «голов».
Второй приём Ноам предложил для самого механизма вычисления весов внимания. Он математически обосновал, что если делить ключевые произведения на корень из размерности, обучение становится стабильнее. Эта мелочь, на первый взгляд техническая, на практике сильно влияла на сходимость. Её назвали scaled dot-product attention.
Оставалась одна философская проблема. Если ни в каком месте сети не сохраняется порядок слов, как сеть узнает, что «собака укусила человека» — это не то же самое, что «человек укусил собаку»? В рекуррентной сети порядок естественен: слова приходят по очереди. В архитектуре без рекуррентности — нет.
Чтобы это исправить, авторы добавили в каждый вектор слова небольшую сигнальную составляющую, кодирующую его позицию в предложении. Они придумали аккуратное математическое решение: использовать значения синусов и косинусов разных частот в зависимости от позиции. Это позволило сети различать слова, стоящие в разных местах, не делая никакой явной рекуррентной обработки. Изобретение это они назвали positional encoding, позиционное кодирование.
В мае 2017 года готовая архитектура была обучена на классической задаче машинного перевода — конкурсном наборе WMT 2014 для пары английский-французский. Большая версия модели содержала более двухсот миллионов параметров, что по тогдашним меркам было средним размером, но не выдающимся. Обучение шло на восьми видеокартах в течение трёх с половиной суток.
Полученные результаты были удивительны не столько абсолютной величиной, сколько отношением её к стоимости обучения. По стандартной метрике BLEU модель набрала 41,8 балла, что было новым state-of-the-art показателем. Лучшие на тот момент рекуррентные модели, обученные командами в Google и Facebook, набирали примерно столько же, но требовали для обучения недели или даже месяцы вычислений на сотнях видеокарт. Трансформер показывал ту же точность, обучаясь в десятки раз дешевле и быстрее.
Это означало, в принципе, две очень важные вещи. Первая: качество перевода в принципе достижимо без рекуррентных сетей. Гипотеза Якоба подтвердилась. Вторая, гораздо более далекоидущая: эту архитектуру можно масштабировать. Раз модель в двести с лишним миллионов параметров обучается за три с половиной дня, значит, модель в десять миллиардов параметров — потенциально за приемлемое время. На рекуррентных сетях о таком масштабе нельзя было даже мечтать.
Команда провела ещё несколько дополнительных экспериментов и убедила саму себя, что архитектура хорошо работает не только на машинном переводе. На задаче синтаксического парсинга английского языка трансформер также показал отличные результаты. Это, в общем-то, и решило: они написали полную статью, и решили публиковать её не только как работу по машинному переводу, а как работу о новой общеприменимой архитектуре нейронных сетей для последовательной обработки данных.
Когда статья была написана, оставался последний вопрос: как её назвать. Авторы сидели в одной из переговорных комнат в Маунтин-Вью и спорили несколько часов. У Лиона Джонса был хороший музыкальный вкус, и в какой-то момент он предложил вариант, по форме совпадавший с названием известной песни группы Beatles. В оригинале песня называлась All You Need Is Love. У них всё было про внимание, и Джонс сказал: давайте назовём Attention Is All You Need. Получится с одной стороны звучно, с другой — точно по сути.
Остальные согласились с улыбкой. Этот заголовок впоследствии станет одним из самых известных в истории компьютерных наук и, кстати, породит особый под-жанр научных статей с подобными названиями. К двадцать пятому году количество arXiv-препринтов, в названии которых будет фраза All You Need, превысит семьсот.
Имя самой архитектуры — Transformer — было предложено Якобом. Просто потому, что это слово ему нравилось как звучание. Никакого глубокого смысла за этим не было. В одной из позднейших бесед Якоб об этом так и сказал: Trans-former — слово, которое мне понравилось.
В нём, разумеется, можно было разглядеть и более глубокий смысл: трансформация одной последовательности в другую, transformation. Но семантически название было не более и не менее выбранным, чем когда-то «бит» (от binary digit) или «энтропия» (по совету фон Неймана во время одного из визитов Шеннона в Принстон). Имя — это имя; ему нужно, чтобы оно запоминалось и легко произносилось, а не чтобы оно описывало внутреннее устройство явления.
12 июня 2017 года статья появилась на arXiv. К тому моменту восемь её авторов уже отправили её на конференцию NIPS 2017 (которая через несколько лет будет переименована в NeurIPS), которая должна была проходить в Лонг-Бич в декабре. Препринт быстро начал расходиться. К утру следующего дня про него говорили в кулуарах нескольких крупных лабораторий по всему миру.
Реакция академического сообщества на трансформер не была мгновенной взрывной волной. Это позднейший миф. В первые недели после выхода статья воспринималась примерно так же, как любая хорошая публикация на NIPS: вот ещё одна новая архитектура для машинного перевода, у неё есть свои преимущества, она интересная.
Однако три вещи заметили сразу:
Во-первых, на исходный код. Команда вместе со статьёй выложила работающую реализацию на основе tensor2tensor от Лукаша Кайзера. Это означало, что любой исследователь в любой лаборатории мог в течение часа скачать код и запустить трансформер у себя. По меркам того времени это была редкость. Большинство ML-публикаций не приходило с прилагающимся кодом; результаты приходилось воспроизводить с нуля, что обычно занимало месяцы и часто заканчивалось неуспехом.
Во-вторых, на лёгкость параллелизации. Уже к осени 2017 года несколько групп воспроизвели трансформер, запустили его на больших кластерах в десятки и сотни GPU, и убедились, что он действительно отлично масштабируется. Удвоение количества видеокарт давало почти двукратное ускорение обучения. Этого нельзя было сказать о LSTM-моделях.
В-третьих, на качество. Через несколько месяцев на нескольких языковых парах трансформер показывал результаты, обходящие лучшие LSTM-системы, причём с гораздо меньшим временем обучения. К концу 2017 года в индустрии было ясно: новые модели машинного перевода нужно делать на трансформерах.
Что было гораздо менее очевидно тогда — это универсальность новой архитектуры. В исходной статье трансформер предложен в форме encoder-decoder, со специализацией на машинный перевод. Но почти сразу разные исследователи начали задаваться вопросом: а если использовать только энкодер, без декодера? Получится ли хорошая модель для классификации текстов? А если, наоборот, использовать только декодер, без энкодера? Получится ли что-то для свободной генерации текста?
Эти два вопроса — «только энкодер» и «только декодер» — через год превратятся в две главные ветви будущих больших языковых моделей. Первая ветвь породит BERT и его потомков; вторая — GPT и всю генеративную линию вплоть до ChatGPT. Но это случится в 2018 году, не в 2017.
Когда восемь авторов трансформера сдали статью на NIPS и потом разъехались каждый по своим обычным делам, никто из них точно не понимал, какого масштаба объект они только что выпустили в мир.
Они, конечно, знали, что архитектура хороша. Они знали, что она масштабируется. Они знали, что в Google её начнут применять ко всему, что движется, потому что Google любил трансформировать любые свои продукты с использованием новейших ML-моделей. Они знали, что статья будет много цитироваться.
Но было нечто, чего они в 2017 году знать ещё не могли.
Они не знали, что их архитектура переживёт следующие десять лет на переднем крае индустрии без серьёзных конкурентов. Ни одна другая архитектура нейронных сетей за это время не сможет с ними сравниться. Все попытки придумать что-то принципиально новое (а таких попыток будет десятки) будут давать улучшения на 5-10 процентов, но не вытеснят трансформеры из практики.
Они не знали, что через шесть лет трансформеры будут крутиться в каждом смартфоне планеты, поддерживая голосовых помощников, переводы, автокоррекцию.
Они не знали, что их архитектура станет основой не только для языковых моделей, но и для систем компьютерного зрения, генерации изображений, музыки, видео; для прогноза свёртывания белков; для управления роботами; для научных открытий в физике; для предсказания экономических временных рядов; и для дюжины других применений, к языку отношения не имеющих.
Они не знали, что к 2024 году все восемь авторов покинут Google. Что Васвани запустит компанию Adept (а потом Essential AI) с Пармар, что Шазир — Character.AI, что Полосухин — блокчейн-протокол NEAR, что Гомес — Cohere в Канаде, что Джонс — Sakana AI в Японии. Что коллективная стоимость основанных ими компаний к концу десятых годов превысит сто миллиардов долларов. Что они станут чем-то вроде современных «отцов-основателей» новой индустрии.
В июне 2017 года они были просто восемью инженерами, написавшими хорошую статью. Через неделю после публикации они уже занимались следующими проектами. Жизнь, как ей и положено, продолжалась.
А статья тем временем уходила в плавание. Через месяц после публикации её прочёл, в частности, один молодой исследователь из Сан-Франциско. Он работал в небольшой лаборатории под названием OpenAI, и в этой лаборатории, как мы помним, к лету 2017 года было много денег, много талантливых людей и совершенно отсутствовала ясная стратегия.
Молодого исследователя звали Алек Радфорд. Он прочитал препринт «Attention Is All You Need», подумал день или два, и понял, что у него появилась идея.
Алек Радфорд, OpenAI