Обзор модели Transformer и ее основных компонентов.

Введение

В этом сообщении в блоге я буду обсуждать самую революционную статью этого века Внимание — это все, что вам нужно (Васвани и др.). Сначала я расскажу о механизме внутреннего внимания, а затем перейду к архитектурным деталям Трансформера. В предыдущем сообщении в блоге От Seq2Seq к вниманию: революция в моделировании последовательностей я обсуждал происхождение механизма внимания и внимания Богданау. В этом блоге я буду опираться на предыдущую информацию. Так что, если вы не читали предыдущий пост, посмотрите его. Модель внимания Багданау использует 2 RNN и механизм внимания для присвоения весов скрытым состояниям кодировщика. В статье Внимание — это все, что вам нужно авторы избавились от всех RNN. Они представили новую архитектуру, которая не использует повторение, а полностью полагается на механизм самоконтроля. Позвольте мне объяснить, что такое механизм само-внимания:

Механизм самоконтроля

Механизм внутреннего внимания позволяет модели фиксировать зависимости между различными позициями в последовательности, одновременно обращаясь ко всем позициям. В предыдущем блоге мы обсуждали использование пар «запрос» и «ключ-значение» для расчета показателей внимания. Показатели внимания определяют важность или актуальность каждой пары ключ-значение для данного запроса. Само-внимание расширяет этот механизм, чтобы он работал в рамках одной последовательности, не требуя внешних воздействий.

На приведенном выше рисунке вы можете увидеть механизм внутреннего внимания. Поясню рисунок слева направо. Прежде всего, у нас есть ввод x. Мы умножаем эти входные данные на обучаемые весовые матрицы (Wq, Wk, Wv). На выходе мы получаем матрицы запроса, ключа и значения. Мы используем матрицы запросов и ключей, чтобы найти их сходство. На приведенном выше рисунке взято только скалярное произведение, но в архитектуре трансформатора мы также масштабируем его. Результатом этого скалярного произведения является вес внимания (a). Таким же образом мы рассчитаем веса внимания для всех входных данных x(t). Когда все веса внимания рассчитаны, применяется функция softmax для нормализации скалярных произведений, в результате чего веса внимания в сумме дают единицу. Веса внимания, полученные в результате операции softmax, используются для вычисления взвешенной суммы векторов значений. Эта взвешенная сумма представляет самообслуживаемое представление для каждой позиции во входной последовательности. Сила внутреннего внимания заключается в его способности моделировать как локальные, так и глобальные зависимости внутри последовательности. Он фиксирует контекстную информацию из всей последовательности, обеспечивая более полное понимание взаимосвязей между различными позициями.

Масштабированное скалярное произведение

Как упоминалось в предыдущем абзаце, мы используем скалярное произведение не только для поиска релевантности. Но мы также масштабируем его с помощью коэффициента квадратного корня из ключевого измерения (dk). Это помогает убедиться, что скалярные произведения между запросом и ключом не становятся слишком большими для больших dk. Если скалярное произведение станет слишком большим, вывод softmax будет очень маленьким. Чтобы избежать этого, мы масштабируем скалярный продукт.

Внимание нескольких пользователей

Multi-Head Attention — это просто дополнение к механизму самоконтроля. Это позволяет модели совместно обслуживать разные позиции и одновременно изучать несколько представлений входной последовательности. Выполняя несколько наборов вычислений внимания параллельно, внимание с несколькими головками захватывает различные аспекты входной последовательности и расширяет возможности модели для захвата сложных зависимостей. Каждая голова внимания имеет разные матрицы запросов, ключей и значений.

Выходные данные от разных головок внимания объединяются и преобразуются с помощью линейных проекций, в результате чего получается окончательное представление, объединяющее информацию с разных точек зрения.

Архитектура трансформатора

Архитектура Transformer, представленная в документе «Внимание — это все, что вам нужно», состоит из нескольких ключевых компонентов, которые работают вместе, чтобы обеспечить эффективное моделирование последовательности. Основными компонентами являются кодер, декодер, позиционное кодирование, остаточные соединения, нормализация уровня, блок внимания с несколькими головками, маскированный блок внимания с несколькими головками и сеть прямой связи.

Мы уже обсуждали блок внимания с несколькими головками. Внимание нескольких голов в маске — это то же самое, но с одним изменением. Маскируем последующие элементы последовательности. т. е. разрешать посещать только позиции до текущей позиции включительно. Это достигается установкой значений softmax для них на отрицательную бесконечность.

Кодировщик. Левая часть архитектуры преобразователя — это часть кодировщика. Он состоит из одного блока внимания с несколькими головками, одной сети прямой связи и нескольких остаточных соединений и нормализации уровня. Он принимает вложения входной последовательности вместе с добавленными к ней позиционными кодировками. В оригинальной статье они использовали 6 энкодеров.

Декодер. Правая часть в архитектуре преобразователя — это часть декодера. Он состоит из одного маскированного блока внимания с несколькими головками, одного простого блока внимания с несколькими головками, одной сети прямой связи и множества остаточных соединений и нормализации уровней. Он принимает вложения выходной последовательности вместе с добавленными к ней позиционными кодировками. В исходной статье они использовали 6 декодеров.

Остаточные соединения и нормализация слоев. Остаточные соединения, также известные как пропущенные соединения, представляют собой прямые соединения, которые обходят один или несколько слоев в нейронной сети. В контексте архитектуры Transformer остаточные соединения используются для подключения выхода подуровня к его входу, позволяя исходному входу проходить через слой без изменений. Нормализация слоя — это метод, используемый для нормализации активаций внутри слоя нейрона сеть. Он направлен на повышение стабильности обучения и обобщения за счет уменьшения внутреннего ковариатного сдвига, который относится к изменению распределения активаций по мере обучения сети. Нормализация слоя применяется независимо к каждому нейрону или признаку, нормализуя его значения в мини-пакетном измерении.

Сеть с прямой связью. В архитектуре Transformer сеть с прямой связью — это компонент, который работает на каждой позиции независимо и одинаково на каждом уровне. Он отвечает за преобразование представлений входной последовательности в рамках механизма внутреннего внимания и подуровней прямой связи с учетом положения. К выходу механизма внутреннего внимания с функцией активации Relu применяются два линейных преобразования после первого преобразования.

Позиционное кодирование. Встраивание входных и выходных последовательностей объединяется с позиционным кодированием. Эти кодировки вводят информацию об относительных позициях элементов в последовательности.

Выученные позиционные вложения и вложения с помощью функций синуса и косинуса дали почти одинаковые результаты во время языковых задач.

Я расскажу о метриках оценки, методах обучения, методах декодирования при выводе и других мелких деталях в другом сообщении в блоге, в котором буду реализовывать архитектуру Transformer с нуля.

Заключительные замечания

В заключение, в документе «Внимание — это все, что вам нужно» представлена ​​новаторская архитектура, известная как Transformer, которая произвела революцию в области моделирования последовательностей. Эта архитектура в значительной степени опирается на концепцию внутреннего внимания, что позволяет ей фиксировать зависимости между различными позициями во входной последовательности. Механизм внимания Transformer позволяет ему моделировать долгосрочные зависимости, обрабатывать входные данные переменной длины и достигать современной производительности в различных задачах обработки естественного языка. Архитектура, представленная в этой статье, использовалась многими языковыми моделями, которые я буду обсуждать в следующих блогах. В следующем сообщении блога я подробно расскажу о моделях авторегрессии, таких как GPT, GPT-2 и GPT-3.

Спасибо, что прочитали!

Подпишитесь на меня в LinkedIn!

Ссылки

  1. Внимание — это все, что вам нужно
  2. Погружение в глубокое обучение
  3. Иллюстрированный трансформер
  4. Модель повествовательного языка-трансформера
  5. RNN и преобразователи для моделирования последовательностей
  6. Нормализация слоя
  7. Глубокое остаточное обучение