NLP подъем с моделями-трансформерами| Комплексный анализ T5, BERT и GPT

Прогнозирование будущего модного тренда с помощью моделей-трансформеров NLP Комплексный анализ T5, BERT и GPT

Обработка естественного языка (Natural Language Processing, NLP) пережила некоторые из самых значимых прорывов за последние годы, прежде всего благодаря архитектуре “трансформер”. Эти прорывы не только расширили возможности машин для понимания и генерирования естественного языка, но и переопределили ландшафт множества приложений, от поисковых систем до разговорных ИИ.

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

Ранние техники NLP: основы перед “трансформерами”

Векторное представление слов: от One-Hot до Word2Vec

В традиционных подходах к NLP представление слов часто было прямолинейным и не включало семантического или синтаксического понимания. Одним из основных примеров такого ограничения является кодирование One-Hot.

One-Hot-кодирование – это процесс преобразования категориальных переменных в двоичное векторное представление, где только один бит “активен” (установлен в 1), а все остальные “неактивны” (установлены в 0). В контексте NLP каждое слово в словаре представляется векторами One-Hot, где каждый вектор имеет размер словаря, и каждое слово представлено вектором, состоящим из нулей и одной единицы в индексе, соответствующем этому слову в списке словаря.

Пример кодирования One-Hot

Предположим, у нас есть небольшой словарь из пяти слов: [«король», «королева», «мужчина», «женщина», «ребенок»]. Вектора One-Hot-кодирования для каждого слова будут выглядеть так:

  • «король» -> [1, 0, 0, 0, 0]
  • «королева» -> [0, 1, 0, 0, 0]
  • «мужчина» -> [0, 0, 1, 0, 0]
  • «женщина» -> [0, 0, 0, 1, 0]
  • «ребенок» -> [0, 0, 0, 0, 1]

Математическое представление

Если обозначить V как размер нашего словаря и wi​ как вектор One-Hot-представления i-го слова в словаре, математическое представление wi​ будет:

wi​=[0,0,…,1,…,0,0] где i-ая позиция равна 1, а все остальные позиции равны 0. где i-ая позиция равна 1, а все остальные позиции равны 0.

Основным недостатком кодирования One-Hot является то, что оно рассматривает каждое слово как изолированную сущность, не имеющую отношения к другим словам. В результате получаются разреженные и высокоразмерные векторы, которые не улавливают семантическую или синтаксическую информацию о словах.

Освоение векторных представлений слов, прежде всего Word2Vec, было переломным моментом в NLP. Разработанная командой Google под руководством Томаса Миколова в 2013 году, Word2Vec представляла слова в плотном векторном пространстве, улавливая синтаксические и семантические связи между словами на основе их контекста в больших корпусах текста.

В отличие от кодирования One-Hot, Word2Vec создает плотные векторы, обычно с сотнями измерений. Слова, которые встречаются в схожих контекстах, например “король” и “королева”, будут иметь векторные представления, более близкие друг к другу в векторном пространстве.

Для наглядности предположим, что мы обучили модель Word2Vec и теперь представляем слова в гипотетическом трехмерном пространстве. Векторные представления (обычно более 3D, но здесь упрощены) могут выглядеть примерно так:

  • «король» -> [0.2, 0.1, 0.9]
  • «королева» -> [0.21, 0.13, 0.85]
  • «мужчина» -> [0.4, 0.3, 0.2]
  • «женщина» -> [0.41, 0.33, 0.27]
  • «ребенок» -> [0.5, 0.5, 0.1]

Пусть эти числа являются вымышленными, они иллюстрируют, как похожие слова имеют похожие векторы.

Математическое представление

Если мы представим Word2Vec встраивание слова как vw​, и наше пространство встраивания имеет d измерений, тогда vw​ может быть представлено следующим образом:

vw​=[v1​,v2​,…,vd​], где каждый vi​ является плавающей точкой, представляющей функцию слова в пространстве встраивания.

Семантические отношения

Word2Vec может захватывать сложные отношения, такие как аналогии. Например, известное отношение, захваченное встраиваниями Word2Vec, это:

вектор(“король”) – вектор(“мужчина”) + вектор(“женщина”)≈вектор(“королева”)вектор(“король”) – вектор(“мужчина”) + вектор(“женщина”)≈вектор(“королева”)

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

Word2Vec использует две основные архитектуры для создания распределенного представления слов: Continuous Bag-of-Words (CBOW) и Skip-Gram. CBOW предсказывает целевое слово по окружающим его контекстным словам, тогда как Skip-Gram делает наоборот, предсказывая контекстные слова по целевому слову. Это позволило машинам начать понимать использование слов и их значения более тонким образом.

Моделирование последовательности: Рекуррентные нейронные сети (RNN) и долгая краткосрочная память (LSTM)

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

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

Нейронные сети с долгой краткосрочной памятью (LSTM), предложенные Сеппом Хохрайтером и Юргеном Шмидхубером в 1997 году, решали эту проблему более сложной архитектурой. LSTM имеют гейты, которые контролируют поток информации: гейт входа, гейт забывания и гейт выхода. Эти гейты определяют, какая информация сохраняется, обновляется или отбрасывается, позволяя сети сохранять долгосрочные зависимости и значительно улучшать производительность на широком спектре задач обработки естественного языка (Natural Language Processing, NLP).

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

Ландшафт NLP претерпел драматическое изменение с появлением модели Transformer в веховой статье «Внимание — это все, что вам нужно» Васвани и др. в 2017 году. Архитектура Transformer отличается от последовательной обработки RNN и LSTM и вместо этого использует механизм, называемый «само-внимание», для взвешивания влияния различных частей входных данных.

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

Encoder и Decoder в Transformer:

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

Энкодер:

  • Роль: Роль энкодера заключается в обработке входных данных и создании представления, которое отражает взаимосвязи между элементами (например, словами в предложении). Эта часть Transformer не генерирует новое содержимое; она просто преобразует вход в состояние, которое может использовать декодер.
  • Функциональность: Каждый слой энкодера имеет механизмы само-внимания и прямых нейронных сетей. Механизм само-внимания позволяет каждой позиции в энкодере обращаться ко всем позициям в предыдущем слое энкодера — таким образом, он может выявить контекст вокруг каждого слова.
  • Контекстные встраивания: Выход энкодера представляет собой серию векторов, которые представляют последовательность входа в пространстве высокой размерности. Эти векторы часто называют контекстными встраиваниями, потому что они кодируют не только отдельные слова, но и их контекст в предложении.

Декодер:

  • Роль: Роль декодера заключается в последовательной генерации выходных данных, по одной части за раз, на основе входных данных, полученных от кодера и того, что он уже сгенерировал. Он предназначен для задач, таких как генерация текста, где порядок генерации имеет ключевое значение.
  • Функциональность: Слой декодера также содержит механизмы само-внимания, но они маскируются, чтобы предотвратить внимание к последующим позициям. Это гарантирует, что прогноз для конкретной позиции может зависеть только от известных выходных данных на позициях перед ней. Кроме того, слои декодера включают второй механизм внимания, который обращается к выходу кодера, интегрируя контекст из входных данных в процесс генерации.
  • Возможность последовательной генерации: Это относится к способности декодера генерировать последовательность по одному элементу за раз, опираясь на то, что он уже создал. Например, при генерации текста декодер предсказывает следующее слово на основе контекста, предоставленного кодером, и последовательности слов, которую он уже сгенерировал.

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

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

BERT (Bidirectional Encoder Representations from Transformers): Представленный Google в 2018 году, BERT изменил способ интеграции контекстного информации в языковые представления. Благодаря предварительному обучению на большом корпусе текста с использованием модели маскированного языка и предсказания следующего предложения, BERT улавливает богатые контексты в обе стороны и достигает лучших результатов в широком спектре задач NLP.

BERT

BERT

T5 (Text-to-Text Transfer Transformer): Представлен Google в 2020 году, T5 переформулирует все задачи NLP как проблемы текст-текст, используя унифицированный текстовый формат. Этот подход упрощает процесс применения модели к различным задачам, включая перевод, суммаризацию и ответы на вопросы.

t5 Architecture

T5 Architecture

GPT (Generative Pre-trained Transformer): Разработанный OpenAI, серия моделей GPT началась с GPT-1 и достигла GPT-4 к 2023 году. Эти модели предварительно обучаются на огромных объемах текстовых данных с использованием безнадзорного обучения и дополнительно донастраиваются для разных задач. Их способность генерировать когерентный и контекстно связанный текст сделала их высоко влиятельными как в академических, так и в коммерческих приложениях искусственного интеллекта.

GPT

GPT Architecture

Вот более подробное сравнение моделей T5, BERT и GPT по разным параметрам:

1. Токенизация и словарь

  • BERT: Использует токенизацию WordPiece со словарем размером около 30 000 токенов.
  • GPT: Использует кодирование байт-парой (Byte Pair Encoding, BPE) с большим словарным запасом (например, GPT-3 имеет словарь размером 175 000).
  • T5: Использует токенизацию SentencePiece, которая рассматривает текст в виде необработанного и не требует предварительного разделения слов.

2. Цели предварительного обучения

  • BERT: Закрытая модель языка (MLM) и предсказание следующего предложения (NSP).
  • GPT: Моделирование причинно-следственной связи в языке (CLM), где каждый токен предсказывает следующий токен в последовательности.
  • T5: Использует денойзинговую задачу, при которой случайные фрагменты текста заменяются специальным токеном, а модель учится восстанавливать исходный текст.

3. Представление входных данных

  • BERT: Токены, сегменты и позиционные вложения объединяются для представления входных данных.
  • GPT: Токеновые и позиционные вложения объединяются (без сегментных вложений, поскольку модель не предназначена для задач с парами предложений).
  • T5: Используются только токеновые вложения с добавленными относительными позиционными кодированиями во время операций внимания.

4. Механизм внимания

  • BERT: Использует абсолютные позиционные кодирования и позволяет каждому токену обращаться ко всем токенам слева и справа (двунаправленное внимание).
  • GPT: Также использует абсолютные позиционные кодирования, но ограничивает внимание только на предыдущие токены (однонаправленное внимание).
  • T5: Реализует вариант трансформера, использующего относительные смещения позиций вместо позиционных кодирований.

5. Архитектура модели

  • BERT: Модель только для кодировщика с несколькими слоями трансформерных блоков.
  • GPT: Модель только для декодировщика, также с несколькими слоями, но созданная для генеративных задач.
  • T5: Модель с архитектурой кодировщика-декодировщика, где и кодировщик, и декодировщик состоят из слоев трансформера.

6. Подход к построению модели

  • BERT: Адаптирует конечные скрытые состояния предобученной модели для задач вторичной обработки с дополнительными выходными слоями при необходимости.
  • GPT: Добавляет линейный слой поверх трансформера и точно настраивает задачу с использованием той же целевой модели языкового моделирования.
  • T5: Преобразует все задачи в формат “текст-к тексту”, где модель настраивается для генерации целевой последовательности на основе входной последовательности.

7. Набор данных и масштабирование

  • BERT: Обучен на наборах данных BooksCorpus и English Wikipedia.
  • GPT: GPT-2 и GPT-3 были обучены на разнообразных наборах данных, извлеченных из Интернета, причем GPT-3 был обучен на еще большем корпусе, называемом Common Crawl.
  • T5: Обучен на “Colossal Clean Crawled Corpus”, который является большим и чистым вариантом Common Crawl.

8. Обработка контекста и двунаправленности

  • BERT: Разработана для понимания контекста одновременно в обоих направлениях.
  • GPT: Обучена понимать контекст в прямом направлении (слева направо).
  • T5: Может моделировать двунаправленный контекст в кодировщике и однонаправленный контекст в декодировщике, что соответствует задачам последовательности к последовательности.

9. Приспособляемость к задачам вторичной обработки

  • BERT: Требует задачно-специфичных слоев головки и точной настройки для каждой задачи вторичной обработки.
  • GPT: По своей сути является генеративной и может выполнять задачи с минимальными изменениями его структуры.
  • T5: Рассматривает каждую задачу как проблему “текст-к тексту”, что придает ему врожденную гибкость и приспособляемость к новым задачам.

10. Возможность интерпретации и пояснения

  • BERT: Двунаправленная природа позволяет получить богатое контекстное вложение, но может быть сложнее для интерпретации.
  • GPT: Однонаправленный контекст может быть более простым для понимания, но не имеет такой глубины двунаправленного контекста.
  • T5: Использование фреймворка кодировщика-декодировщика обеспечивает ясное разделение шагов обработки, но анализ его генеративной природы может быть сложным.

Влияние трансформеров на обработку естественного языка

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

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

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