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

Токенизаторы

Первым шагом в любой задаче НЛП является преобразование заданного текста в токены. LLM используют 2 типа — BPE и Wordpiece.

BPE

Изначально каждый символ представляет собой отдельный токен. Затем смежные пары токенов сортируются по частоте их совпадения. Наиболее распространенная пара теперь объединяется, чтобы сформировать новый токен. Частота нового токена вычитается из частоты отдельных токенов. Повторяйте шаги для определенного количества итераций или до тех пор, пока не будет достигнут желаемый размер словаря. Каждое слияние записывается как правило, которое будет использоваться для токенизации текста во время логического вывода.

WordPiece

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

Модели на основе GPT используют BPE, а модели на основе BERT используют WordPiece.

Архитектура

Трансформаторный блок

Слой самоконтроля с несколькими заголовками, за которым следует полностью связанный слой, с нормами слоя после каждого и остаточным пропуском соединения. Существует только один полносвязный слой для всех токенов, а не по одному для каждого токена в последовательности. Это позволяет блокам преобразователя принимать входные данные любой длины последовательности. Норма слоя нормализуется по измерению токена.

О многоголовом и маскированном внимании можно прочитать здесь

Кодер

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

Декодер

Декодеры также представляют собой блоки преобразователей, сложенные вместе, но отличаются от кодировщиков способом их обучения и логического вывода.

Декодеры используются в генеративных задачах, таких как QnA, суммирование текста, быстрое завершение. И делается это последовательно. На шаге t, получив на вход последовательность из t ранее сгенерированных слов, декодер после логического вывода генерирует t+1-е слово. На следующем шаге к входным данным также добавляется t+1-е слово, и процесс продолжается до тех пор, пока не будет сгенерирован токен End of Sentence. Это осуществимо, потому что блоки преобразователя могут воздействовать на последовательности любой длины.

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

Кодер Декодер

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

BERT — двунаправленный преобразователь представления энкодера

Это модель только с энкодером. Есть 2 версии без изменений в архитектуре, а только с гиперпараметрами. Базовый и большой поставляются с 12 и 24 блоками-трансформерами, размерами жетонов 768 и 1024, 12 и 16 головками внимания соответственно.

Тренируется по 2 заданиям.

  1. Модель маскированного языка — 15% слов во входных данных случайным образом заменяются токеном [MASK] или случайным словом или не заменяются. Затем перед сетью ставится задача предсказать эти слова. Это позволяет сети использовать контекст как слева, так и справа, чтобы предсказать слово.
  2. Предсказание следующего предложения. Учитывая 2 предложения, сеть обучается классифицировать, принадлежит ли второе предложение к тому же контексту, что и первое, что заставляет сеть изучать долгосрочный контекст.

GPT — генеративный предварительно обученный преобразователь

Это модель только для декодера с 12 блоками преобразования, размером 768 жетонов и 12 головками внимания. В отличие от BERT, GPT обучался одновременно на неконтролируемом наборе данных для генеративной задачи и контролируемых наборах данных (хотя и меньшего размера) для таких задач, как классификация, сходство и ответы на вопросы MCQ.

Будущие версии GPT не имели изменений в архитектуре и представляли собой просто более крупные модели, обученные на гораздо больших наборах данных. GPT2 — это модель в 10 раз больше, с 48 трансформаторными блоками и размером 1600 жетонов. Модель GPT3 в 100 раз больше, имеет 96 блоков трансформаторов и размер токенов 12888.

Огромный размер позволил этим моделям разработать «передачу задач с нулевым выстрелом». Учитывая примеры задач, за которыми следует вопрос в качестве подсказки, модель смогла ее решить. Например, если модели была дана подсказка «Английское предложение 1: французский перевод 1 :: английское предложение 2», она выведет французский перевод 2.

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