Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
6.3.3.5 Вторая революция в NLP: трансформеры
Список моделей внимания можно продолжать ещё очень долго. Были изобретены латентное [latent] и активное [active] внимание, гауссовское [Gaussian] внимание, свёрточные нейронные сети на базе внимания (Attention Based Convolutional Neural Network, ABCNN), разложимая модель внимания [Decomposable Attention Model], областное внимание [Area Attention] и даже нейросетевой трансдьюсер (преобразователь) для онлайн-внимания [Neural Transducer for Online Attention]. Из описаний различных моделей на основе внимания и полученных при их помощи результатов можно было бы составить отдельную книгу, но здесь мы подробно остановимся лишь на одной из них, тем более что ей было суждено положить начало второй коннекционистской революции в области обработки естественного языка. Эта модель называется «трансформер» [transformer]. Она была представлена научному сообществу в 2017 г. в статье с программным названием «Внимание — это всё, что вам нужно» (Attention Is All You Need) [2161] , написанной группой исследователей из Google Brain и Google Research.
2161
Vaswani A., Shazeer N., Parmar N., Uszkoreit J., Jones L., Gomez A. N., Kaiser L., Polosukhin I. (2017). Attention Is All You Need / Proceedings of the 31st Conference on Neural Information Processing Systems (NIPS 2017) // https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf
Как
2162
Schmidhuber J. (1991). Learning to control fast-weight memories: An alternative to recurrent nets. Technical Report FKI147-91, Institut fur Informatik, Technische Universitat Munchen, March 1991 // https://people.idsia.ch/~juergen/FKI-147-91ocr.pdf
2163
Schmidhuber J. (1992). Learning to control fast-weight memories: An alternative to dynamic recurrent networks / Neural Computation, Vol. 4, Iss. 1, pp. 131–139 // https://doi.org/10.1162/neco.1992.4.1.131
2164
Schmidhuber J. (1993). Reducing the ratio between learning complexity and number of time varying variables in fully recurrent nets. / International Conference on Artificial Neural Networks (ICANN), pp. 460–463 // https://doi.org/10.1007/978-1-4471-2063-6_110
2165
Schlag I., Irie K., Schmidhuber J. (2021). Linear Transformers Are Secretly Fast Weight Programmers // https://arxiv.org/abs/2102.11174
Одна из проблем рекуррентных сетей заключается в том, что при их вычислении трудно добиться эффективного параллелизма. Действительно, для того чтобы вычислить следующее состояние сети, необходимо получить результат вычисления предыдущего состояния — сама природа рекуррентной сети последовательна, поэтому максимум, что можно сделать, это вычислять параллельно результаты для разных последовательностей либо выполнять параллельные вычисления в пределах одного состояния рекуррентной сети, однако оба этих подхода обычно не позволяют в полной мере использовать вычислительный потенциал тензорных процессоров. Нельзя ли вообще отказаться от рекуррентной сети в пользу нерекуррентной архитектуры, сохранив при этом механизм внимания, показавший свою эффективность? Оказывается, можно (именно на это ненавязчиво указывает нам заголовок статьи исследователей из Google).
Рассмотрим для примера предложение: «Люди одиноки, потому что вместо мостов они строят стены». Кто такие в данном случае «они»? Человек, прочитавший это предложение, без особого труда понимает, что в данном случае слово «они» относится к слову «люди». Можно сказать, что у нас в голове возникает представление о наличии определённого отношения (в данном случае — тождества) между словами «они» и «люди». Другое отношение связывает слова «они» и «строят», а также «люди» и «строят» — это отношения вида «A выполняет действие B». И так далее — слова в высказывании связаны определёнными отношениями. Идея multi-headed self-attention заключается в том, чтобы для разных типов отношений (за каждый из них отвечает отдельная «голова» сети внимания, так же как в свёрточной сети за каждый выявляемый слоем свёртки признак отвечает отдельный набор весов для свёрточного ядра) рассчитать матрицу выравниваний, то есть для каждой пары слов в предложении выяснить, в какой мере выражено для неё данное отношение.
На рисунке для всех слов предложения показаны отношения со словом «они» у разных «голов внимания» (обозначенных синим, зелёным и оранжевым цветом), насыщенность цвета показывает выраженность отношения. Пример условный, для упрощения показаны только три «головы», а не восемь.
Для вычисления матрицы выравниваний в трансформере используется довольно красивая матричная операция, имитирующая извлечение значения из таблицы по ключу. Так же как и в случае «обычного» внимания, каждый из векторов эмбеддингов слов (которые являются в нашем случае аналогами состояний кодировщика) при помощи трёх проекций превращается в три новых вектора одинаковой размерности: вектор запроса Q (от query), вектор ключа K (от key) и вектор значения V (от value). После этого создаётся матрица, элементы которой будут показывать «отношения» между различными словами предложения (эту матрицу называют «матрицей внимания» [attention matrix]). Для этого элемент матрицы с индексами i и j вычисляется как скалярное произведение вектора запроса Qi и вектора ключа Kj. Далее каждый элемент этой матрицы делится на квадратный корень из размерности вектора ключа K, а затем
Далее для каждого слова предложения все векторы значений V умножаются на коэффициенты соответствующей этому слову строки из матрицы выравниваний и складываются, тем самым формируя некий итоговый вектор значений V. Таким образом, в нём будут хорошо учтены слова, имеющие определённые «отношения» с рассматриваемым словом, а иные слова, напротив, будут учтены слабо. Это и будет выходом такой подсети для данного слова предложения.
Схема данных операций приводится ниже, для сложения векторов значений V используются двухслойные полносвязные подсети, вычисление которых может осуществляться параллельно.
На выходе подсетей возникает матрица той же размерности, что и на входе сети внимания. Однако такой выход у нас имеется для каждой из «голов внимания». Поэтому полученные матрицы мы склеиваем (конкатенируем) друг с другом, а затем превращаем в матрицу исходной размерности при помощи слоя проекции. Именно поэтому модель и называют трансформером — она трансформирует полученные на вход данные, не меняя их размерности. Благодаря этому свойству описанные нами блоки кодировщиков можно укладывать подобно стопке блинов — выходы одного блока становятся входами следующего. Для борьбы с исчезающими градиентами используются, как и в свёрточных сетях, перепрыгивающие связи.
Блок декодера в трансформерах устроен аналогичным образом за той лишь существенной разницей, что он имеет два входа: на один подаётся выход кодировщика, на второй — выход сети внимания, применённой к уже известной части выходной последовательности (этот тип внимания называется «многоголовым вниманием с маской» [masked multi-head attention], маска используется для исключения неизвестных на данный момент частей выходной последовательности).
Ещё одним интересным трюком, использованным в оригинальном трансформере, является применение так называемого позиционного кодирования. Дело в том, что сам по себе трансформер, подобно свёрточным сетям, теряет информацию о порядке следования слов, поэтому эту информацию следует добавлять к векторам эмбеддинга. Можно было бы добавить, например, порядковый номер слова в качестве ещё одной компоненты в эти векторы, но на практике лучше работают более хитрые способы. В оригинальной версии трансформера вычисляют так называемую матрицу позиционного кодирования [positional encoding] размером W x n, где W — размерность вектора эмбеддинга слова, а n — максимальное количество слов в обрабатываемом моделью тексте. В нечётные строки этой матрицы записываются значения, равные
Авторы оригинальной версии трансформера также исследовали подход, при котором модель сама выучивала матрицу позиционного кодирования. Каждому порядковому номеру токена в последовательности сопоставляется вектор, который на старте обучения инициализируется случайными значениями. Затем векторы эмбеддингов выучиваются одновременно с остальными параметрами сети, что позволяет в процессе обучения подстроить эмбеддинги так, чтобы они сочетались с временной компонентой наиболее полезным для модели образом. Такие эмбеддинги называют «абсолютными позиционными» (Absolute Positional Embeddings), а замена слова encoding на embedding подчёркивает особенность применяемого механизма (однако совпадение аббревиатур нередко служит источником непонимания для начинающих).
Обе версии трансформера показали в экспериментах примерно одинаковые результаты, поэтому авторы остановились на версии с синусоидальным кодированием, так как очевидным недостатком второго способа является то, что обученная модель будет способна работать только с последовательностями, длина которых не превышает количества выученных векторов позиционного эмбеддинга. Это, впрочем, не остановило создателей более поздних моделей на основе трансформерной архитектуры, например популярной и по сей день модели BERT (Bidirectional Encoder Representations from Transformers, Двунаправленный кодировщик представлений на основе трансформеров) [2166] , в которой для кодирования позиционной информации используются именно абсолютные позиционные эмбеддинги.
2166
Devlin J., Chang M.-W., Lee K., Toutanova K. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // https://arxiv.org/abs/1810.04805
На границе империй. Том 9. Часть 5
18. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
рейтинг книги
Господин моих ночей (Дилогия)
Маги Лагора
Любовные романы:
любовно-фантастические романы
рейтинг книги
Начальник милиции. Книга 4
4. Начальник милиции
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Сама себе хозяйка
Любовные романы:
любовно-фантастические романы
рейтинг книги
Кодекс Крови. Книга V
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Бастард Императора. Том 8
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Газлайтер. Том 10
10. История Телепата
Фантастика:
боевая фантастика
рейтинг книги
Новый Рал 4
4. Рал!
Фантастика:
попаданцы
рейтинг книги
Метаморфозы Катрин
Фантастика:
фэнтези
рейтинг книги
Возвышение Меркурия
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
рейтинг книги
Графиня Де Шарни
Приключения:
исторические приключения
рейтинг книги
