Искусственный интеллект
НЛП: рост с моделями-трансформерами | Комплексный анализ T5, BERT и GPT

В последние годы в области обработки естественного языка (НЛП) произошли одни из самых значительных прорывов, в первую очередь благодаря архитектуре преобразователя. Эти прорывы не только расширили возможности машин понимать и генерировать человеческий язык, но и изменили представление о многочисленных приложениях — от поисковых систем до диалогового искусственного интеллекта.
Чтобы полностью оценить значение трансформеров, мы должны сначала оглянуться назад на предшественников и строительные блоки, которые заложили основу этой революционной архитектуры.
Ранние методы НЛП: основы до трансформации
Встраивание слов: от One-Hot до Word2Vec
В традиционных подходах НЛП представление слов часто было буквальным и не имело какой-либо формы семантического или синтаксического понимания. Горячее кодирование — яркий пример этого ограничения.
Горячее кодирование — это процесс, при котором категориальные переменные преобразуются в представление двоичного вектора, где только один бит является «горячим» (установлен в 1), а все остальные — «холодными» (установлены в 0). В контексте НЛП каждое слово в словаре представлено горячими векторами, где каждый вектор равен размеру словаря, а каждое слово представлено вектором со всеми нулями и одной единицей в индексе, соответствующем этому слову в словарный список.
Пример горячего кодирования
Предположим, у нас есть крошечный словарный запас, состоящий всего из пяти слов: [«король», «королева», «мужчина», «женщина», «дитя»]. Векторы горячего кодирования для каждого слова будут выглядеть следующим образом:
- «король» -> [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]
Математическое представление
Если мы обозначим как размер нашего словарного запаса и как горячее векторное представление i-го слова в словаре, математическое представление было бы:
где i-я позиция равна 1, а все остальные позиции равны 0.
Основным недостатком горячего кодирования является то, что оно рассматривает каждое слово как изолированный объект, не имеющий никакой связи с другими словами. В результате получаются разреженные и многомерные векторы, которые не содержат никакой семантической или синтаксической информации о словах.
Введение встраивания слов, особенно Word2Vec, стало поворотным моментом в НЛП. Word2013Vec, разработанный командой Google под руководством Томаса Миколова в 2 году, представляет слова в плотном векторном пространстве, фиксируя синтаксические и семантические отношения слов на основе их контекста в больших массивах текста.
В отличие от горячего кодирования, 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 как , и наше пространство вложения имеет размеры, то может быть представлен как:
Семантические отношения
Word2Vec может даже фиксировать сложные отношения, например аналогии. Например, известная связь, фиксируемая встраиваниями Word2Vec:
вектор («король») – вектор («мужчина») + вектор («женщина») ≈ вектор («королева»)
Это возможно, поскольку Word2Vec корректирует векторы слов во время обучения так, чтобы слова, имеющие общий контекст в корпусе, располагались близко в векторном пространстве.
Word2Vec использует две основные архитектуры для создания распределенного представления слов: Continuous Bag-of-Words (CBOW) и Skip-Gram. CBOW предсказывает целевое слово на основе окружающих его контекстных слов, тогда как Skip-Gram делает обратное, предсказывая контекстные слова на основе целевого слова. Это позволило машинам начать понимать использование и значение слов более детально.
Моделирование последовательностей: RNN и LSTM
По мере развития этой области фокус сместился в сторону понимания последовательностей текста, что имело решающее значение для таких задач, как машинный перевод, обобщение текста и анализ настроений. Рекуррентные нейронные сети (RNN) стали краеугольным камнем для этих приложений благодаря их способности обрабатывать последовательные данные, сохраняя определенную форму памяти.
Однако RNN не были без ограничений. Они боролись с долгосрочными зависимостями из-за проблемы исчезающего градиента, когда информация теряется в длинных последовательностях, что затрудняет изучение корреляций между отдаленными событиями.
Сети длинной краткосрочной памяти (LSTM), представленные Зепп Хохрайтер и Юрген Шмидхубер в 1997 году., решил эту проблему с помощью более сложной архитектуры. У LSTM есть ворота, которые управляют потоком информации: входные ворота, ворота забывания и выходные ворота. Эти ворота определяют, какая информация сохраняется, обновляется или отбрасывается, позволяя сети сохранять долгосрочные зависимости и значительно повышая производительность при выполнении широкого спектра задач НЛП.
Архитектура Трансформера
Ландшафт обработки естественного языка претерпел радикальные изменения с введением модели трансформатора в эпохальной статье «Внимание — все, что вам нужно» Васвани и соавторов в 2017 году. Архитектура трансформатора отходит от последовательной обработки RNN и LSTM и вместо этого использует механизм, называемый «самовниманием», для оценки влияния различных частей входных данных.
Основная идея преобразователя заключается в том, что он может обрабатывать все входные данные одновременно, а не последовательно. Это позволяет добиться гораздо большего распараллеливания и, как следствие, значительно увеличить скорость обучения. Механизм самообслуживания позволяет модели концентрироваться на различных частях текста во время его обработки, что имеет решающее значение для понимания контекста и связей между словами, независимо от их положения в тексте.
Кодер и декодер в трансформаторах:
В оригинальной модели Трансформера, описанной в статье «Внимание — это все, что вам нужноСогласно Васвани и др., архитектура разделена на две основные части: кодировщик и декодер. Обе части состоят из слоев, имеющих одинаковую общую структуру, но служащих разным целям.
Кодер:
- Роли: Роль кодера заключается в обработке входных данных и создании представления, отражающего взаимосвязи между элементами (например, словами в предложении). Эта часть преобразователя не генерирует никакого нового контента; она просто преобразует входные данные в состояние, пригодное для использования декодером.
- Функциональность системы: Каждый уровень кодера имеет механизмы самообслуживания и нейронные сети прямой связи. Механизм самообслуживания позволяет каждой позиции кодера обрабатывать все позиции предыдущего уровня кодера — таким образом, он может изучать контекст вокруг каждого слова.
- Контекстные встраивания: Выходные данные кодера представляют собой серию векторов, которые представляют входную последовательность в многомерном пространстве. Эти векторы часто называют контекстными вложениями, поскольку они кодируют не только отдельные слова, но и их контекст внутри предложения.
декодер:
- Роли: Роль декодера заключается в последовательной генерации выходных данных, по одной части за раз, на основе входных данных, полученных от кодера, и уже сгенерированных данных. Он предназначен для таких задач, как генерация текста, где порядок генерации имеет решающее значение.
- Функциональность системы: Слои декодера также содержат механизмы самоконтроля, но они замаскированы, чтобы предотвратить попадание позиций в последующие позиции. Это гарантирует, что прогноз для конкретной позиции может зависеть только от известных выходных данных в позициях до нее. Кроме того, уровни декодера включают в себя второй механизм внимания, который обрабатывает выходные данные кодера, интегрируя контекст из входных данных в процесс генерации.
- Возможности последовательной генерации: Это относится к способности декодера генерировать последовательность по одному элементу за раз, основываясь на том, что он уже создал. Например, при генерации текста декодер прогнозирует следующее слово на основе контекста, предоставленного кодером, и последовательности слов, которые он уже сгенерировал.
Каждый из этих подуровней в кодере и декодере критически важен для способности модели решать сложные задачи обработки естественного языка. В частности, механизм многоголового внимания позволяет модели выборочно фокусироваться на различных частях последовательности, обеспечивая глубокое понимание контекста.
Популярные модели с использованием трансформаторов
После первоначального успеха модели-трансформера произошел взрывной рост числа новых моделей, построенных на ее архитектуре, каждая со своими инновациями и оптимизациями для различных задач:
BERT (представление двунаправленного кодировщика от трансформаторов): Представленный Google в 2018 году, BERT произвел революцию в способах интеграции контекстной информации в языковые представления. Путем предварительной тренировки на большом массиве текста с использованием маскировочной языковой модели и прогнозирования следующего предложения BERT фиксирует богатый двунаправленный контекст и достигает самых современных результатов в широком спектре задач НЛП.
T5 (преобразователь передачи текста в текст): Представлен Google в 2020 году, T5 переосмысливает все задачи НЛП как задачу преобразования текста в текст, используя единый текстовый формат. Такой подход упрощает процесс применения модели к различным задачам, включая перевод, обобщение и ответы на вопросы.
GPT (генеративный предварительно обученный преобразователь): Разработан OpenAI, линейка моделей GPT началась с GPT-1 и достигла GPT-4 к 2023 году. Эти модели предварительно обучаются с использованием неконтролируемого обучения на огромных объемах текстовых данных и настраиваются для различных задач. Их способность генерировать связный и контекстуально релевантный текст сделала их очень влиятельными как в академических, так и в коммерческих приложениях искусственного интеллекта.
Ниже представлено более подробное сравнение моделей T5, BERT и GPT по различным параметрам:
1. Токенизация и словарь
- БЕРТ: использует токенизацию WordPiece с размером словаря около 30,000 XNUMX токенов.
- GPT: использует кодировку пар байтов (BPE) с большим размером словаря (например, GPT-3 имеет размер словаря 175,000 XNUMX).
- T5: использует токенизацию SentencePiece, которая рассматривает текст как необработанный и не требует предварительно сегментированных слов.
2. Цели предварительной подготовки
- БЕРТ: Моделирование языка в масках (MLM) и прогнозирование следующего предложения (NSP).
- GPT: причинно-языковое моделирование (CLM), где каждый токен предсказывает следующий токен в последовательности.
- T5: использует цель шумоподавления, при которой случайные фрагменты текста заменяются контрольным токеном, и модель учится восстанавливать исходный текст.
3. Входное представление
- БЕРТ: токен, сегмент и позиционное внедрение объединяются для представления входных данных.
- GPT: токен и позиционное встраивание объединены (без встраивания сегментов, поскольку оно не предназначено для задач с парами предложений).
- T5: Только встраивания токенов с добавленными относительными позиционными кодировками во время операций внимания.
4. Механизм внимания
- БЕРТ: использует абсолютное позиционное кодирование и позволяет каждому токену обслуживать все токены слева и справа (двунаправленное внимание).
- GPT: также использует абсолютную позиционную кодировку, но ограничивает внимание только предыдущими токенами (однонаправленное внимание).
- T5: реализует вариант преобразователя, который использует смещения относительного положения вместо позиционных вложений.
5. Модельная архитектура
- БЕРТ: Архитектура только для энкодера с несколькими уровнями блоков преобразователей.
- GPT: Архитектура только для декодера, также с несколькими уровнями, но предназначенная для генеративных задач.
- T5: Архитектура кодировщика-декодера, в которой и кодер, и декодер состоят из слоев преобразователя.
6. Подход тонкой настройки
- БЕРТ: адаптирует окончательные скрытые состояния предварительно обученной модели для последующих задач с дополнительными выходными слоями по мере необходимости.
- GPT: добавляет линейный слой поверх преобразователя и выполняет точную настройку последующей задачи, используя ту же цель моделирования причинного языка.
- T5: преобразует все задачи в текстовый формат, в котором модель точно настраивается для создания целевой последовательности из входной последовательности.
7. Данные обучения и масштаб
- БЕРТ: Обучался BooksCorpus и английской Википедии.
- GPT: GPT-2 и GPT-3 были обучены на различных наборах данных, извлеченных из Интернета, а GPT-3 обучался на еще большем корпусе под названием Common Crawl.
- T5: прошел обучение на «Колоссальном чистом ползающем корпусе», который представляет собой большую и чистую версию «Общего сканирования».
8. Обработка контекста и двунаправленности
- БЕРТ: Предназначен для одновременного понимания контекста в обоих направлениях.
- GPT: обучен понимать контекст в прямом направлении (слева направо).
- T5: Может моделировать двунаправленный контекст в кодере и однонаправленный в декодере, что подходит для задач преобразования последовательности в последовательность.
9. Адаптивность к последующим задачам
- БЕРТ: Требуются головные уровни для конкретной задачи и точная настройка для каждой последующей задачи.
- GPT: носит генеративный характер и может быть предложен к выполнению задач с минимальными изменениями в своей структуре.
- T5: Рассматривает каждую задачу как задачу «текст в текст», что делает ее по своей сути гибкой и адаптируемой к новым задачам.
10. Интерпретируемость и объяснимость
- БЕРТ: Двунаправленный характер обеспечивает богатые контекстные вложения, но его сложнее интерпретировать.
- GPT: Однонаправленный контекст может быть более простым для понимания, но ему не хватает глубины двунаправленного контекста.
- T5: Структура кодера-декодера обеспечивает четкое разделение этапов обработки, но может быть сложной для анализа из-за ее генеративного характера.
Влияние Трансформеров на НЛП
Трансформеры произвели революцию в области НЛП, позволив моделям параллельно обрабатывать последовательности данных, что значительно увеличило скорость и эффективность обучения больших нейронных сетей. Они представили механизм самообслуживания, позволяющий моделям взвешивать значимость каждой части входных данных, независимо от расстояния внутри последовательности. Это привело к беспрецедентным улучшениям в широком спектре задач НЛП, включая, помимо прочего, перевод, ответы на вопросы и обобщение текста.
Исследования продолжают расширять границы того, чего могут достичь модели на основе трансформаторов. GPT-4 и его современники не только больше по размеру, но также более эффективны и функциональны благодаря достижениям в архитектуре и методах обучения. Такие методы, как обучение в несколько этапов, когда модели выполняют задачи с минимальным количеством примеров, и методы более эффективного трансферного обучения находятся в авангарде текущих исследований.
Языковые модели, подобные моделям, основанным на преобразователях, обучаются на данных, которые могут содержать предвзятости. Исследователи и практики активно работают над выявлением, пониманием и смягчением этих предубеждений. Методы варьируются от тщательно подобранных наборов обучающих данных до корректировок после обучения, направленных на справедливость и нейтральность.