ChatGPT набирает обороты по всему миру, привлекая более 1 миллиона пользователей в рекордно короткие сроки. Как технический директор стартапов, я ежедневно обсуждаю эту революционную технологию из-за постоянного ажиотажа вокруг нее. Применение GPT безгранично, но лишь немногим нужно время, чтобы понять, как работают эти модели. Этот пост в блоге направлен на то, чтобы демистифицировать языковую модель OpenAI GPT (Generative Pre-trained Transformer).

GPT (Generative Pre-trained Transformer) — это тип языковой модели, который в последние годы привлек значительное внимание благодаря своей способности выполнять различные задачи обработки естественных языков, такие как генерация текста, суммирование и ответы на вопросы.

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

Давайте начнем с понимания того, что такое большие языковые модели (LLM).

Большие языковые модели (LLM)

Модели больших языков (LLM) обучаются на огромных объемах текстовых данных. В результате они могут генерировать связный и беглый текст. LLM хорошо справляются с различными задачами обработки естественных языков, такими как языковой перевод, суммирование текста и диалоговые агенты. LLM работают так хорошо, потому что они предварительно обучены на большом корпусе текстовых данных и могут быть точно настроены для конкретных задач. GPT — это пример большой языковой модели. Эти модели называются «большими», потому что они имеют миллиарды параметров, формирующих их отклики. Например, GPT-3, самая большая версия GPT, имеет 175 миллиардов параметров и была обучена на массивном корпусе текстовых данных.

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

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

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

Архитектура-трансформер: строительный блок

Архитектура преобразователя является фундаментальным строительным блоком всех языковых моделей с преобразователями (LLM). Архитектура трансформатора была представлена ​​в статье Внимание — это все, что вам нужно, опубликованной в декабре 2017 года. Упрощенная версия Архитектуры Трансформера выглядит так:

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

  1. Входные данные и встраивание входных данных. Токены, введенные пользователем, считаются входными данными для моделей машинного обучения. Однако модели понимают только числа, а не текст, поэтому эти входные данные необходимо преобразовать в числовой формат, называемый «внедрением входных данных». Входные вложения представляют слова в виде чисел, которые затем могут обрабатываться моделями машинного обучения. Эти вложения подобны словарю, который помогает модели понять значение слов, помещая их в математическое пространство, где похожие слова расположены рядом друг с другом. Во время обучения модель учится создавать эти вложения, чтобы похожие векторы представляли слова с похожими значениями.
  2. Позиционное кодирование. При обработке естественного языка порядок слов в предложении имеет решающее значение для определения смысла предложения. Однако традиционные модели машинного обучения, такие как нейронные сети, по своей природе не понимают порядок входных данных. Чтобы решить эту проблему, можно использовать позиционное кодирование для кодирования положения каждого слова во входной последовательности в виде набора чисел. Эти числа могут быть введены в модель Transformer вместе с входными вложениями. Включив позиционное кодирование в архитектуру Transformer, GPT может более эффективно понимать порядок слов в предложении и генерировать грамматически правильный и семантически значимый вывод.
  3. Кодировщик. Кодировщик является частью нейронной сети, которая обрабатывает входной текст и создает ряд скрытых состояний, которые фиксируют смысл и контекст текста. Кодер в GPT сначала разбивает входной текст на последовательность токенов, таких как отдельные слова или подслова. Затем он применяет ряд слоев само-внимания; подумайте об этом как о магии вуду, чтобы создать серию скрытых состояний, которые представляют входной текст на разных уровнях абстракции. В преобразователе используется несколько слоев кодировщика.
  4. Выходные данные (смещено вправо): во время обучения декодер учится угадывать следующее слово, просматривая слова перед ним. Для этого мы перемещаем выходную последовательность на одно место вправо. Таким образом, декодер может использовать только предыдущие слова. С помощью GPT мы обучаем его на тонне текстовых данных, что помогает ему понять, когда он пишет. Самая большая версия, GPT-3, имеет 175 миллиардов параметров и была обучена на огромном количестве текстовых данных. Некоторые текстовые корпуса, которые мы использовали для обучения GPT, включают веб-корпус Common Crawl, набор данных BooksCorpus и английскую Википедию. Эти корпуса содержат миллиарды слов и предложений, поэтому в GPT есть много языковых данных для изучения.
  5. Внедрение выходных данных. Модели могут понимать только числа, а не текст, как встраивание входных данных. Таким образом, вывод должен быть преобразован в числовой формат, известный как «внедрение вывода». Выходные вложения аналогичны входным вложениям и проходят позиционное кодирование, что помогает модели понять порядок слов в предложении. Функция потерь используется в машинном обучении, которая измеряет разницу между прогнозами модели и фактическими целевыми значениями. Функция потерь особенно важна для сложных моделей, таких как языковые модели GPT. Функция потерь корректирует некоторые части модели для повышения точности за счет уменьшения разницы между прогнозами и целями. Регулировка в конечном итоге улучшает общую производительность модели, и это здорово! Встраивания вывода используются как во время обучения, так и во время логического вывода в GPT. Во время обучения они вычисляют функцию потерь и обновляют параметры модели. Во время вывода они генерируют выходной текст, сопоставляя предсказанные моделью вероятности каждого токена с соответствующим токеном в словаре.
  6. Декодер: позиционно закодированное входное представление и позиционно закодированные выходные вложения проходят через декодер. Декодер является частью модели, которая генерирует выходную последовательность на основе закодированной входной последовательности. Во время обучения декодер учится угадывать следующее слово, просматривая слова перед ним. Декодер в GPT генерирует текст на естественном языке на основе входной последовательности и контекста, изученного кодировщиком. Как и в кодере, в преобразователе используется несколько уровней декодеров.
  7. Линейный слой и Softmax: после того, как декодер создаст выходные вложения, линейный слой сопоставляет их с многомерным пространством. Этот шаг необходим для преобразования выходных вложений в исходное входное пространство. Затем мы используем функцию softmax для создания распределения вероятностей для каждого выходного токена в словаре, что позволяет нам генерировать выходные токены с вероятностями.

Концепция механизма внимания

Внимание — это все, что вам нужно.

Архитектура преобразователя превосходит другие, такие как рекуррентные нейронные сети (RNN) или долговременная кратковременная память (LSTM) для обработки естественного языка. Причина превосходной производительности в основном связана с концепцией «механизма внимания», которую использует преобразователь. Механизм внимания позволяет модели сосредоточиться на разных частях входной последовательности при создании каждого выходного токена.

  • RNN не заботятся о механизме внимания. Вместо этого они просто просматривают ввод по одному слову за раз. С другой стороны, Transformers могут обрабатывать весь ввод одновременно. Обработка всей входной последовательности одновременно означает, что преобразователи выполняют работу быстрее и могут обрабатывать более сложные связи между словами во входной последовательности.
  • LSTM используют скрытое состояние, чтобы помнить, что произошло в прошлом. Тем не менее, они могут с трудом учиться, когда слоев слишком много (так называемая проблема исчезающего градиента). Между тем, трансформеры работают лучше, потому что они могут одновременно просматривать все входные и выходные слова и выяснять, как они связаны (благодаря их причудливому механизму внимания). Благодаря механизму внимания они действительно хорошо понимают долгосрочные связи между словами.

Подведем итог:

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

Заключение

Эта запись в блоге представляет собой введение в модели больших языков (LLM) и архитектуру Transformer, на которой основаны LLM, такие как GPT. Модели большого языка (LLM) произвели революцию в обработке естественного языка, предоставив модели, которые генерируют связный и беглый текст. Они предварительно обучены работе с огромными объемами текстовых данных и могут быть настроены для конкретных задач. Архитектура Transformer является фундаментальным строительным блоком всех LLM. Это позволило таким моделям, как GPT, генерировать более точные и контекстуально релевантные выходные данные. Обладая способностью выполнять различные задачи обработки естественного языка, такие как генерация текста, обобщение и ответы на вопросы, LLM, такие как GPT, открывают новые возможности для общения и взаимодействия человека с машиной. Короче говоря, LLM значительно улучшили обработку естественного языка. У них есть потенциал для улучшения взаимодействия человека и машины захватывающими способами.

Рекомендации

1. Внимание — это все, что вам нужно

2. Представляем ChatGPT (openai.com)

3. Объяснение трансформаторов: понимание модели GPT-3, BERT и T5 (daleonai.com)

4. Что такое нейронные сети-трансформеры? — YouTube

5. Стэнфордский вебинар — GPT-3 и не только