Русская Википедия:Трансформер (модель машинного обучения)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Значения Трансфо́рмер (Шаблон:Lang-en) — архитектура глубоких нейронных сетей, представленная в 2017 году исследователями из Google Brain[1].

По аналогии с рекуррентными нейронными сетями (РНС) трансформеры предназначены для обработки последовательностей, таких как текст на естественном языке, и решения таких задач как машинный перевод и автоматическое реферирование. В отличие от РНС, трансформеры не требуют обработки последовательностей по порядку. Например, если входные данные — это текст, то трансформеру не требуется обрабатывать конец текста после обработки его начала. Благодаря этому трансформеры распараллеливаются легче чем РНС и могут быть быстрее обучены[1].

Архитектура сети

Архитектура трансформера состоит из кодировщика и декодировщика. Кодировщик получает на вход векторизованую последовательность с позиционной информацией. Декодировщик получает на вход часть этой последовательности и выход кодировщика. Кодировщик и декодировщик состоят из слоев. Слои кодировщика последовательно передают результат следующему слою в качестве его входа. Слои декодировщика последовательно передают результат следующему слою вместе с результатом кодировщика в качестве его входа.

Каждый кодировщик состоит из механизма самовнимания (вход из предыдущего слоя) и нейронной сети с прямой связью (вход из механизма самовнимания). Каждый декодировщик состоит из механизма самовнимания (вход из предыдущего слоя), механизма внимания к результатам кодирования (вход из механизма самовнимания и кодировщика) и нейронной сети с прямой связью (вход из механизма внимания).

Внимание на основе скалярного произведения

Каждый механизм внимания параметризован матрицами весов запросов <math>W_Q</math>, весов ключей <math>W_K</math>, весов значений <math>W_V</math>. Для вычисления внимания входного вектора <math>X</math> к вектору <math>Y</math>, вычисляются вектора <math>Q=W_Q X</math>, <math>K=W_K X</math>, <math>V=W_V Y</math>. Эти вектора используются для вычисления результата внимания по формуле:

<math>\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\mathrm{T}}{\sqrt{d_k}}\right)V</math>

Использование

Трансформеры используются в Яндекс.Переводчике[2], Яндекс.Новостях[3], Google Переводчике[4], GPT-3.

Примечания

Шаблон:Примечания