Искусственный интеллект
NLP Rise with Transformer Models | A Comprehensive Analysis of T5, BERT, and GPT

Обработка естественного языка (NLP) пережила некоторые из наиболее значимых прорывов в последние годы, главным образом благодаря архитектуре трансформера. Эти прорывы не только повысили возможности машин понимать и генерировать человеческий язык, но также изменили ландшафт многочисленных приложений, от поисковых систем до разговорного ИИ.
Чтобы полностью оценить значение трансформеров, нам нужно сначала взглянуть на предшественников и строительные блоки, которые заложили основу для этой революционной архитектуры.
Ранние методы NLP: Основы до трансформеров
Встраивание слов: от One-Hot до Word2Vec
В традиционных подходах к NLP представление слов часто было буквальным и не имело никакой формы семантического или синтаксического понимания. Кодирование One-Hot является ярким примером этого ограничения.
Кодирование One-Hot – это процесс, при котором категориальные переменные преобразуются в бинарное векторное представление, где только один бит “горячий” (установлен в 1), а все остальные “холодные” (установлены в 0). В контексте NLP каждое слово в словаре представлено векторами One-Hot, где каждый вектор имеет размер словаря, и каждое слово представлено вектором со всеми 0 и одним 1 в индексе, соответствующем этому слову в списке словаря.
Пример кодирования One-Hot
Предположим, у нас есть крошечный словарь с только пятью словами: [“king”, “queen”, “man”, “woman”, “child”]. Векторы кодирования One-Hot для каждого слова будут выглядеть так:
- “king” -> [1, 0, 0, 0, 0]
- “queen” -> [0, 1, 0, 0, 0]
- “man” -> [0, 0, 1, 0, 0]
- “woman” -> [0, 0, 0, 1, 0]
- “child” -> [0, 0, 0, 0, 1]
Математическое представление
Если мы обозначим V как размер нашего словаря и wi как векторное представление i-го слова в словаре, математическое представление wi будет:
wi=[0,0,…,1,…,0,0] где i-я позиция равна 1, а все остальные позиции равны 0.где i-я позиция равна 1, а все остальные позиции равны 0.
Основным недостатком кодирования One-Hot является то, что оно рассматривает каждое слово как изолированную сущность, без отношения к другим словам. Это приводит к разреженным и высокоразмерным векторам, которые не отражают никакой семантической или синтаксической информации о словах.
Введение встраивания слов, наиболее заметным из которых является Word2Vec, стало поворотным моментом в NLP. Разработанный командой в Google под руководством Томаса Миколова в 2013 году, Word2Vec представлял слова в плотном векторном пространстве, отражая синтаксические и семантические отношения между словами на основе их контекста в больших корпорах текста.
В отличие от кодирования One-Hot, Word2Vec производит плотные векторы, обычно с сотнями измерений. Слова, которые появляются в подобных контекстах, такие как “king” и “queen”, будут иметь векторные представления, которые находятся ближе друг к другу в векторном пространстве.
Для иллюстрации давайте предположим, что мы обучили модель Word2Vec и теперь представляем слова в гипотетическом 3-мерном пространстве. Встраивания (которые обычно более 3D, но уменьшены здесь для простоты) могут выглядеть примерно так:
- “king” -> [0.2, 0.1, 0.9]
- “queen” -> [0.21, 0.13, 0.85]
- “man” -> [0.4, 0.3, 0.2]
- “woman” -> [0.41, 0.33, 0.27]
- “child” -> [0.5, 0.5, 0.1]
Хотя эти числа являются вымышленными, они иллюстрируют, как подобные слова имеют подобные векторы.
Математическое представление
Если мы представляем встраивание Word2Vec слова как vw, и наше пространство встраивания имеет d измерений, то vw можно представить как:
vw=[v1,v2,…,vd] где каждый vi является вещественным числом, представляющим особенность слова в пространстве встраивания.
Семантические отношения
Word2Vec может даже отражать сложные отношения, такие как аналогии. Например, знаменитое отношение, отраженное встраиваниями Word2Vec, является:
вектор(“king”) – вектор(“man”) + вектор(“woman”)≈вектор(“queen”)вектор(“king”) – вектор(“man”) + вектор(“woman”)≈вектор(“queen”)
Это возможно потому, что Word2Vec регулирует векторы слов во время обучения, чтобы слова, которые имеют общие контексты в корпусе, были расположены близко в векторном пространстве.
Word2Vec использует две основные архитектуры для получения распределенного представления слов: Continuous Bag-of-Words (CBOW) и Skip-Gram. CBOW предсказывает целевое слово из его контекстных слов, тогда как Skip-Gram делает обратное, предсказывая контекстные слова из целевого слова. Это позволило машинам начать понимать использование слов и их значение более тонким образом.
Моделирование последовательностей: RNN и LSTM
По мере развития области внимание сместилось в сторону понимания последовательностей текста, что было крайне важно для задач, таких как машинный перевод, суммаризация текста и анализ настроений. Рекуррентные нейронные сети (RNN) стали краеугольным камнем для этих приложений благодаря их способности обрабатывать последовательные данные, сохраняя форму памяти.
Однако RNN не были без ограничений. Они испытывали трудности с долгосрочными зависимостями из-за проблемы исчезающего градиента, когда информация теряется при длинных последовательностях, что затрудняло обучение корреляций между удаленными событиями.
Сети с долгой краткосрочной памятью (LSTM), введенные Сеппом Хохрайтером и Юргеном Шмидхубером в 1997 году, решили эту проблему с помощью более сложной архитектуры. LSTM имеют ворота, которые контролируют поток информации: входное ворота, забывающее ворота и выходное ворота. Эти ворота определяют, какая информация сохраняется, обновляется или отбрасывается, позволяя сети сохранять долгосрочные зависимости и значительно улучшая производительность на широком спектре задач NLP.
Архитектура трансформера
Ландшафт NLP претерпел драматические изменения с введением модели трансформера в знаковом документе “Attention is All You Need” Васвани и др. в 2017 году. Архитектура трансформера отклоняется от последовательной обработки RNN и LSTM и вместо этого использует механизм, называемый “само-вниманием”, чтобы взвесить влияние различных частей входных данных.
Основная идея трансформера заключается в том, что он может обрабатывать все входные данные одновременно, а не последовательно. Это позволяет для большей параллелизации и, как результат, значительного увеличения скорости обучения. Механизм само-внимания позволяет модели сосредоточиться на различных частях текста, когда она его обрабатывает, что крайне важно для понимания контекста и отношений между словами, независимо от их позиции в тексте.
Энкодер и декодер в трансформерах:
В оригинальной модели Трансформера, как описано в документе “Attention is All You Need” Васвани и др., архитектура делится на две основные части: энкодер и декодер. Обе части состоят из слоев, имеющих одинаковую общую структуру, но служащих разным целям.
Энкодер:
- Роль: Роль энкодера заключается в обработке входных данных и создании представления, которое отражает отношения между элементами (например, словами в предложении). Эта часть трансформера не генерирует никаких новых данных; она просто преобразует входные данные в состояние, которое может использовать декодер.
- Функциональность: Каждый слой энкодера имеет механизмы само-внимания и свёрточные нейронные сети. Механизм само-внимания позволяет каждой позиции в энкодере обращать внимание на все позиции в предыдущем слое энкодера, что позволяет ему учиться контексту вокруг каждого слова.
- Контекстные встраивания: Выход энкодера представляет собой ряд векторов, которые представляют входную последовательность в высокоразмерном пространстве. Эти векторы часто называются контекстными встраиваниями, поскольку они кодируют не только отдельные слова, но и их контекст внутри предложения.
Декодер:
- Роль: Роль декодера заключается в генерации выходных данных последовательно, часть за частью, на основе входных данных, которые он получает от энкодера, и того, что он уже сгенерировал. Он предназначен для задач, таких как генерация текста, где порядок генерации имеет решающее значение.
- Функциональность: Слои декодера также содержат механизмы само-внимания, но они маскируются, чтобы предотвратить обращение внимания на последующие позиции. Это гарантирует, что предсказание для определенной позиции может зависеть только от известных выходов на предыдущих позициях. Кроме того, слои декодера включают второй механизм внимания, который обращает внимание на выход энкодера, интегрируя контекст из входных данных в процесс генерации.
- Последовательные возможности генерации: Это относится к способности декодера генерировать последовательность элемент за элементом, основываясь на том, что он уже сгенерировал. Например, при генерации текста декодер предсказывает следующее слово на основе контекста, предоставленного энкодером, и последовательности слов, которую он уже сгенерировал.
Каждый из этих подслойев внутри энкодера и декодера крайне важен для способности модели обрабатывать сложные задачи NLP. Механизм много-голового внимания, в частности, позволяет модели селективно сосредотачиваться на различных частях последовательности, обеспечивая богатое понимание контекста.
Популярные модели, использующие трансформеры
После первоначального успеха модели трансформера было создано множество новых моделей, построенных на ее архитектуре, каждая со своими инновациями и оптимизациями для различных задач:
BERT (Bidirectional Encoder Representations from Transformers): Введенная Google в 2018 году, BERT революционизировала способ, которым контекстная информация интегрируется в представления языка. Обучаясь на большом корпусе текста с помощью модели языка с маскированными словами и предсказания следующего предложения, BERT захватывает богатые двунаправленные контексты и достигла результатов на уровне состояния искусства на широком спектре задач NLP.
T5 (Text-to-Text Transfer Transformer): Введенная Google в 2020 году, T5 переформулирует все задачи NLP как задачу “текст-в-текст”, используя унифицированный текстовый формат. Этот подход упрощает процесс применения модели к различным задачам, включая перевод, суммаризацию и ответы на вопросы.
GPT (Generative Pre-trained Transformer): Разработанная OpenAI, линия моделей GPT началась с GPT-1 и достигла GPT-4 к 2023 году. Эти модели предварительно обучались с помощью несупервизионного обучения на огромных объемах текстовых данных и дообучались для различных задач. Их способность генерировать связный и контекстно-релевантный текст сделала их чрезвычайно влиятельными в как академических, так и коммерческих приложениях ИИ.
Вот более подробное сравнение моделей T5, BERT и GPT по различным измерениям:
1. Токенизация и словарь
- BERT: Использует токенизацию WordPiece с размером словаря около 30 000 токенов.
- GPT: Использует кодирование BPE с большим размером словаря (например, GPT-3 имеет размер словаря 175 000).
- T5: Использует токенизацию SentencePiece, которая рассматривает текст как сырой и не требует предварительно сегментированных слов.
2. Цели предварительного обучения
- BERT: Модель языка с маскированными словами и предсказание следующего предложения.
- GPT: Кausalная модель языка, где каждый токен предсказывает следующий токен в последовательности.
- T5: Использует цель денойзинга, где случайные участки текста заменяются на токен-сентинел и модель учится восстанавливать исходный текст.
3. Представление входных данных
- BERT: Векторы токенов, сегментов и позиций объединяются для представления входных данных.
- GPT: Векторы токенов и позиций объединяются (без векторов сегментов, поскольку он не предназначен для задач пар предложений).
- T5: Только векторы токенов с добавленными относительными позиционными кодированиями во время операций внимания.
4. Механизм внимания
- BERT: Использует абсолютные позиционные кодирования и позволяет каждой позиции обращать внимание на все позиции слева и справа (двунаправленное внимание).
- GPT: Также использует абсолютные позиционные кодирования, но ограничивает внимание предыдущими токенами (одностороннее внимание).
- T5: Реализует вариант трансформера, который использует относительные позиционные смещения вместо позиционных кодирований.
5. Архитектура модели
- BERT: Только энкодер, с несколькими слоями блоков трансформера.
- GPT: Только декодер, также с несколькими слоями, но предназначенный для генеративных задач.
- T5: Энкодер-декодер, где и энкодер, и декодер состоят из слоев трансформера.
6. Подход дообучения
- BERT: Адаптирует конечные скрытые состояния предварительно обученной модели для задач нижнего уровня с дополнительными выходными слоями по мере необходимости.
- GPT: Добавляет линейный слой поверх трансформера и дообучает на задаче нижнего уровня, используя ту же цель каузальной модели языка.
- T5: Преобразует все задачи в формат “текст-в-текст” и дообучает модель для генерации целевой последовательности из входной последовательности.
7. Данные обучения и масштаб
- BERT: Обучается на BooksCorpus и английской Википедии.
- 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: Энкодер-декодер обеспечивает четкое разделение шагов обработки, но может быть более сложным для анализа из-за своей генеративной природы.
Влияние трансформеров на NLP
Трансформеры революционизировали область NLP, позволяя моделям обрабатывать последовательности данных параллельно, что значительно увеличило скорость и эффективность обучения больших нейронных сетей. Они ввели механизм само-внимания, позволяющий моделям взвешивать значимость каждой части входных данных, независимо от расстояния внутри последовательности. Это привело к беспрецедентным улучшениям в широком спектре задач NLP, включая перевод, ответы на вопросы и суммаризацию текста.
Исследования продолжают расширять границы того, чего могут достичь модели, основанные на трансформерах. GPT-4 и его современники не только больше по масштабу, но и более эффективны и способны благодаря достижениям в архитектуре и методах обучения. Техники, такие как обучение с несколькими примерами, где модели выполняют задачи с минимальными примерами, и методы для более эффективного переноса обучения находятся на переднем крае текущих исследований.
Языковые модели, такие как те, которые основаны на трансформерах, учатся на данных, которые могут содержать предубеждения. Исследователи и практики активно работают над выявлением, пониманием и смягчением этих предубеждений. Техники варьируются от тщательно подобранных наборов данных для обучения до пост-обучения корректировок, направленных на справедливость и нейтральность.















