Это была первая задача, на которой нейронные сети показали, что они умеют делать со словами что-то реальное.
В марте 2013 года Илья Суцкевер вышел из самолёта в международном аэропорту Сан-Франциско и сел в такси до Маунтин-Вью. В кармане у него лежало предложение от Google на работу в группе Google Brain, в Корпоративном кампусе с зелёной травой и бесплатными ресторанами. Он переходил из тихой академической лаборатории Хинтона в одну из самых мощных вычислительных инфраструктур мира. Его персональный счёт в банке за прошедшие три месяца увеличился на сумму с шестью нолями, и это была только начальная часть, остальное он должен был получать ежегодными траншами, привязанными к работе. Ему было двадцать шесть лет.
Алекс Крижевский ехал в то же место, в другом такси, с похожим контрактом. Хинтон, тоже подписавший с Google соглашение, поделил рабочее время между Маунтин-Вью и Торонто. Все трое стали сотрудниками одной из самых быстро растущих научных групп Кремниевой долины. Аукцион в Лейк Таху сделал из аспирантов корпоративных исследователей.
Google Brain тогда существовал три года, был детищем Джеффа Дина и Эндрю Ына, и занимался применением больших нейронных сетей к задачам распознавания речи, компьютерного зрения и рекомендательных систем. На балансе у группы стояла внутренняя облачная инфраструктура Google, что означало доступ к десяткам тысяч процессорных ядер и сотням видеокарт одновременно. Тому, кто до этого работал с двумя GTX 580, такие ресурсы казались сюрреалистическими.
Илью, едва он переехал, начали приглашать в разные внутренние проекты. Он отказывался от большинства. Его интересовало только одно: применить нейронные сети к языку.
Томаш Миколов, 2020
К моменту прихода Ильи в Google Brain в группе уже работал молодой чешский исследователь по имени Томаш Миколов. Он защитил докторскую в Брненском университете технологий по рекуррентным нейронным сетям, применённым к языковому моделированию, и в 2012 году переехал в США. К концу 2012 года вышла его первая опубликованная в Google работа, а к 2013 году он опубликовал серию статей, в которых сделал нечто, на первый взгляд скромное, но имевшее далеко идущие последствия.
Миколов развил идею Бенгио 2003 года про векторные представления слов и упростил её до неузнаваемости. Бенгио предлагал получать векторные представления как побочный продукт обучения полной нейросетевой языковой модели; это было дорого. Миколов показал, что вектора можно получить намного дешевле и быстрее, если использовать упрощённую модель: предсказывать соседние слова в окне из нескольких слов вокруг текущего, или, наоборот, по нескольким окружающим словам предсказывать центральное. Архитектура, которую он назвал word2vec, обучалась на гигабайтах текста за несколько часов на одной машине и выдавала вектора слов поразительного качества.
Что значит «поразительного качества»? Миколов и его коллеги показали публике несколько небольших арифметических трюков, которые мгновенно облетели весь мир. Если взять вектор слова «король», вычесть из него вектор слова «мужчина», прибавить вектор слова «женщина» и поискать в словаре ближайший к получившемуся, в большинстве случаев находился вектор слова «королева». Если из вектора «Париж» вычесть «Франция» и прибавить «Италия», получался «Рим». Из «иду» минус «идти» плюс «бегать» получалось «бегу». Эти соответствия модель никто не закладывал; она выучила их сама, по статистике совстречаемости слов в большом текстовом массиве.
Для людей, занимавшихся обработкой языка, это было поразительно. Получалось, что в самом подсчёте сочетаемостей слов скрыта геометрия, в которой слова, имеющие общие свойства, оказываются в одной плоскости. Пол: мужской-женский, единственное-множественное число, прошедшее-настоящее время, страна-столица; всё это автоматически выходило в виде определённых векторных направлений. Никаких лингвистических правил никто в модель не вкладывал; она сама их нашла, просто читая много текста.
word2vec за несколько месяцев стал самым популярным инструментом обработки естественного языка. Стартапы, исследовательские группы, поисковые компании начали повсеместно использовать его как первый шаг любой системы. Если до 2013 года слово в компьютере было индексом или мешком букв, то после 2013 года оно стало точкой в трёхсотмерном пространстве, и эта точка очень многое говорила о смысле.
Миколов, между тем, продолжал думать о том, что можно сделать с языком ещё. Векторы слов были началом, но они описывали изолированные единицы. Хотелось обрабатывать целые предложения, потом — целые тексты. Хотелось, чтобы машина могла читать одно предложение на одном языке и выдавать его перевод на другом. Хотелось перейти от изолированных слов к последовательностям.
Здесь начались разные истории, в зависимости от того, кто рассказывает. По версии Миколова, он несколько раз обсуждал такую идею с Ильёй и с другим коллегой по Google Brain по имени Куок Ле. По его собственным позднейшим словам, он предлагал: давайте обучим нейроязыковую модель на парах предложений из двух языков, а потом, увидев одно предложение, она будет генерировать его перевод. По версии Ильи и Куока, история выглядела иначе и Миколов в формировании идеи участвовал намного скромнее. Кто из них прав, мы точно не узнаем; научные приоритеты редко удаётся восстановить однозначно, особенно когда работа делалась в коридорных разговорах за обедом. Что известно точно: к лету 2014 года команда из трёх человек — Илья Суцкевер, Ориол Виньялс и Куок Ле — написала статью, которая называлась «Sequence to Sequence Learning with Neural Networks».
Идея, изложенная в этой статье, была элегантна и проста. Возьмём две нейронные сети. Назовём первую кодировщиком, вторую декодировщиком. Обе будут типа LSTM, особой разновидности рекуррентной нейронной сети, придуманной в 1997 году немецкими исследователями Юргеном Шмидхубером и Сеппом Хохрайтером.
Зепп Хохрайтер, 2025
Кодировщику будем подавать на вход слова исходного предложения, по одному. После каждого слова внутреннее состояние кодировщика обновляется: оно теперь содержит «суммарное значение» прочитанного. Когда исходное предложение закончилось, в скрытом состоянии кодировщика лежит, в каком-то смысле, его сжатое представление. Назовём этот вектор контекстом.
Дальше контекст подаётся декодировщику. Декодировщик по очереди генерирует слова целевого предложения, на другом языке. Каждое следующее слово зависит от контекста и от уже сгенерированной части перевода. Когда декодировщик решает, что предложение закончено, он выдаёт специальный символ конца.
Обе сети обучаются совместно на огромном двуязычном массиве данных: парах фраз вроде «I am tired» и «Я устал», «The dog barks» и «Собака лает», и так далее. В каждой обучающей паре сеть пробует предсказать русский перевод по английскому исходнику, считается ошибка, и веса обеих сетей корректируются по уже знакомому нам алгоритму обратного распространения.
Никаких лингвистических правил, никаких таблиц соответствия слов, никаких морфологических анализаторов. Просто две сети, читающие одна другой пары предложений из двух языков и постепенно осваивающие перевод между ними.
Когда Илья с коллегами обучили первую такую систему на стандартном наборе данных WMT — фактически это были записи заседаний Европейского парламента в нескольких языковых версиях, около двенадцати миллионов пар предложений на английском и французском, — она сразу показала результаты, сопоставимые с гораздо более старыми и сложными статистическими системами перевода. Цифры были скромные, точнее, средние, но не разгромные: лучшие на тот момент классические статистические системы перевода по-прежнему держали небольшое преимущество. Однако никто из тех, кто читал статью, не сомневался: это начало.
Статью представили на конференции NIPS 2014 в Монреале. После доклада Илью окружили коллеги. Многие сразу поняли значение происходящего. Машинный перевод после двадцати лет статистических методов выходил на новую территорию.
Дзмитрий Богданау
Пока в Маунтин-Вью обкатывали seq2seq, в Монреале происходило нечто параллельное. В группе у Бенгио — той самой группе, где в 2003 году была опубликована первая нейросетевая языковая модель — учился аспирант по имени Дмитрий Богданау. Дмитрий приехал из Беларуси, поступил к Бенгио и в 2014 году занялся той же задачей машинного перевода.
Богданау, читая параллельно статью Ильи и работы по seq2seq, заметил одну серьёзную слабость. Контекст, в который кодировщик сжимает всё исходное предложение, имеет фиксированный размер: скажем, тысячу чисел. Если исходное предложение короткое, проблем нет. Но если оно длинное, на тридцать или сорок слов, всё это богатство приходится упаковывать в те же самые тысячу чисел. Информация теряется. Качество перевода длинных предложений у seq2seq заметно деградировало по сравнению с короткими.
Дмитрий придумал, как с этим справиться. Что если декодировщик, генерируя каждое следующее слово перевода, мог бы заглядывать обратно в исходное предложение и обращать внимание на нужные его части? Скажем, переводя глагол, посмотреть на соответствующий глагол в исходнике; переводя подлежащее, посмотреть на подлежащее. Не на одно фиксированное «сжатое представление» всего предложения, а на динамически выбранные релевантные куски.
Для этого Богданау добавил в архитектуру seq2seq дополнительную небольшую нейронную сеть, которая в каждый момент времени, при генерации очередного слова перевода, оценивала: насколько важно сейчас каждое из слов исходника? Получались веса, по одному на каждое слово исходника, которые в сумме давали единицу. После этого декодировщик использовал не один вектор контекста, а взвешенную сумму всех векторов исходного предложения, с этими динамически вычисленными весами.
Этот механизм Богданау, его руководитель Бенгио и третий соавтор Кюнг-Хюн Чо назвали attention, что обычно переводится на русский как «внимание», но в специальной литературе чаще оставляют английский термин. Статья появилась на сервере препринтов arXiv в сентябре 2014 года, через несколько недель после публикации Илиной seq2seq, и под названием «Neural Machine Translation by Jointly Learning to Align and Translate». Через несколько месяцев её представили на конференции ICLR 2015.
Кёнхён Чо, NeurIPS 2025
Эффект был мгновенный. С добавлением механизма внимания качество перевода на длинных предложениях драматически выросло; нейронный машинный перевод по совокупности метрик впервые в истории сравнялся с лучшими статистическими системами, а на некоторых языковых парах — обошёл их. К концу 2014 года в академическом сообществе стало понятно, что эпоха статистических систем перевода идёт к концу.
Конкуренция между академическими публикациями была ничем по сравнению с тем, что происходило внутри корпоративного Google в 2014–2016 годах. Google Translate, запущенный в 2006 году и за восемь лет ставший самым популярным машинным переводчиком в мире, работал на статистической архитектуре, унаследованной от классических подходов IBM конца восьмидесятых — девяностых годов. Архитектура эта была сложной, многослойной, опиралась на десятки разных модулей и сотни эвристик, накопленных за годы инженерной работы. Заменить её на одну нейронную сеть, какой бы привлекательной ни выглядела идея, была авантюрой огромного масштаба.
Тем не менее, в 2015 году Google начал внутренний проект по полной перестройке Google Translate на нейронные рельсы. Возглавил его Майк Шустер вместе с командой, в которую входил Quoc Le, а в качестве научного советника — Илья. Архитектура называлась GNMT — Google Neural Machine Translation. Она использовала глубокий стек LSTM-сетей кодировщика и декодировщика, плюс механизм внимания Богданау. Обучали её на наборах данных размером в миллиарды пар фраз, на сотнях видеокарт, в течение недель.
В сентябре 2016 года Google объявил о переходе. Сначала на одну языковую пару, потом, в течение следующих месяцев, на десятки других. Результаты были поразительны. Качество перевода с китайского на английский, с японского на английский, с языков с богатой морфологией скакнуло в среднем на тридцать-сорок процентов по стандартной метрике BLEU. На некоторых парах ошибки в переводе уменьшились вдвое. Для пользователя это означало очень простую вещь: Google Translate перестал быть бессвязным набором подстановок и начал выдавать тексты, которые читались как тексты, а не как машинная труха.
Microsoft, Facebook, Baidu бросились повторять. К 2017 году весь индустриальный машинный перевод в мире перешёл на нейронные архитектуры. Целая отрасль инженеров, работавших с правилами и статистическими таблицами, должна была переучиваться. Многие переучились. Некоторые ушли в другие области.
Это была первая большая, общественно заметная победа нейронных сетей применительно к человеческому языку. Не на лабораторной задаче, а на массовом продукте, которым ежедневно пользовались сотни миллионов людей. Гипотеза Ильи 2010 года о том, что нейронные сети должны масштабироваться с данными, теперь подтвердилась ещё раз, на новом материале.
И в то же время в архитектуре seq2seq плюс attention начала просматриваться невидимая стена.
Сама идея LSTM-кодировщика и LSTM-декодировщика, при всей её гибкости, была в одном отношении неудобной. Рекуррентные сети по своей природе обрабатывают последовательности по очереди: чтобы получить состояние сети после десятого слова, нужно сначала обработать все девять предыдущих, шаг за шагом. Это плохо параллелизуется. На видеокарте, способной делать триллион операций в секунду, при обработке предложения процессор почти всё время простаивает, ожидая, когда закончится предыдущий шаг.
Это было ограничение принципиальное, не инженерное. Можно было купить больше видеокарт, можно было оптимизировать ядра CUDA, но саму последовательную природу LSTM нельзя было обойти. Это означало, что увеличить размер модели в десять или сто раз технически возможно, а на практике почти бессмысленно: обучение будет идти годами.
В нескольких командах в индустрии начали независимо думать, можно ли вообще обойтись без рекуррентности. Можно ли построить кодировщик-декодировщик, в котором каждое слово взаимодействует с каждым словом параллельно, без цепочки последовательных шагов? Идея витала в воздухе. В Facebook AI Research предложили заменить LSTM на свёрточные сети. В Google Brain несколько человек начали думать, нельзя ли применить механизм внимания не как добавку к LSTM, а как замену LSTM.
Среди этих людей был Якоб Ушкорайт, исследователь Google Brain, начавший карьеру в немецком офисе Google Research. Якоб был сыном известного лингвиста Ганса Ушкорайта, и язык интересовал его с детства. К началу 2017 года Якоб предложил коллегам поразмыслить над идеей радикальной: давайте полностью выбросим рекуррентность; пусть наша архитектура состоит из одного только внимания, повторённого несколько раз; вот посмотрите, какие у меня есть прикидки на доске.
Большинству коллег идея показалась интересной, но рискованной. Один из коллег, Ашиш Васвани, недавно перешедший в Google Brain после докторской в Университете Южной Калифорнии, отнёсся к ней серьёзнее остальных. Вместе с коллегами — Ильёй Полосухиным и Ники Пармар, — к которым присоединились ещё пятеро, Васвани с Ушкорайтом весной 2017 года начал делать прототип.
Они ещё не знали, что строят то, что через семь лет будет работать в каждом смартфоне планеты.
Пока в Google делали машинный перевод и закладывали основания для следующего архитектурного прорыва, у Ильи в Маунтин-Вью продолжалась другая, наполовину уже не научная жизнь. Он стал в Google Brain заметной фигурой, его приглашали на закрытые внутренние встречи, его кабинет на втором этаже корпуса был украшен подаренными постерами с пушистыми котами и шуточными плакатами от стажёров. Он не любил публичности, но соглашался изредка давать интервью, потому что Хинтон ему советовал: тебя должны знать, иначе тебя обойдут.
Илья начал думать о вещах, которые в Google не были приоритетом. О роботах. О физических системах. О том, что будет, когда нейронные сети станут ещё больше; о том, как с такими системами обращаться, чтобы они не вышли из-под контроля; о том, что произойдёт, если их научить не только переводить, но и думать. Эти темы Google как корпорация хорошо понимала только в очень узких прикладных рамках. Большие разговоры про будущее искусственного интеллекта в коридорах Маунтин-Вью велись, но не были основным занятием.
Летом 2015 года Илье позвонил человек, имя которого ему было смутно знакомо. Его звали Сэм Альтман. Он был тогда президентом Y Combinator, известного инкубатора стартапов, через который прошли Airbnb, Dropbox, Stripe и сотни других. Альтман попросил Илью прийти на ужин в одном отеле в Менло-Парке. Он сказал, что там будет ещё несколько интересных людей, что Илья, должно быть, слышал имя Илона Маска, и что в общем поговорить будет о чём.
Илья согласился. И вечером того дня вошёл в обеденный зал отеля Rosewood на Sand Hill Road, не подозревая, что именно ради этого вечера всё и затевалось.