Модели и платформы ИИ
Возрождение НЛП с помощью моделей трансформеров | Всесторонний анализ T5, BERT и GPT
Обработка естественного языка (НЛП) пережила некоторые из наиболее значимых прорывов в последние годы, в основном благодаря архитектуре трансформеров. Эти прорывы не только повысили возможности машин для понимания и генерации человеческого языка, но также изменили ландшафт различных приложений, от поисковых систем до разговорного ИИ.
Чтобы полностью оценить значение трансформеров, нам нужно сначала взглянуть на предшественников и строительные блоки, которые заложили основу для этой революционной архитектуры.
Ранние методы НЛП: Основы до трансформеров
Встраивание слов: От однократного кодирования до Word2Vec
В традиционных подходах к НЛП представление слов часто было буквальным и лишенным какого-либо семантического или синтаксического понимания. Однократное кодирование является ярким примером этого ограничения.
Однократное кодирование – это процесс, при котором категориальные переменные преобразуются в бинарное векторное представление, где только один бит “горячий” (установлен в 1), а все остальные “холодные” (установлены в 0). В контексте НЛП каждое слово в словаре представлено векторами однократного кодирования, где каждый вектор имеет размер словаря, и каждое слово представлено вектором со всеми 0 и 1 в позиции, соответствующей этому слову в списке словаря.
Пример однократного кодирования
Предположим, у нас есть крошечный словарь с только пятью словами: [“king”, “queen”, “man”, “woman”, “child”]. Векторы однократного кодирования для каждого слова будут выглядеть так:
- “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]
Математическое представление
Если мы обозначим как размер нашего словаря и как векторное представление i-го слова в словаре, математическое представление будет следующим:
где i-я позиция равна 1, а все остальные позиции равны 0.
Основным недостатком однократного кодирования является то, что оно рассматривает каждое слово как изолированную сущность, без связи с другими словами. Это приводит к разреженным и высокоразмерным векторам, которые не отражают никакой семантической или синтаксической информации о словах.
Введение встраивания слов, особенно Word2Vec, стало поворотным моментом в НЛП. Разработанный командой в Google (GOOGL ) под руководством Томаса Миколова в 2013 году, Word2Vec представлял слова в плотном векторном пространстве, отражая синтаксические и семантические отношения между словами на основе их контекста в больших корпусах текста.
В отличие от однократного кодирования, Word2Vec производит плотные векторы, обычно с сотнями измерений. Слова, которые появляются в подобных контекстах, такие как “king” и “queen”, будут иметь векторные представления, которые находятся ближе друг к другу в векторном пространстве.
Для иллюстрации предположим, что мы обучили модель Word2Vec и теперь представляем слова в гипотетическом трёхмерном пространстве. Встраивания (которые обычно более трёхмерны, но уменьшены здесь для простоты) могут выглядеть примерно так:
- “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 слова как , и наше векторное пространство имеет измерений, то можно представить как:
Семантические отношения
Word2Vec может даже захватывать сложные отношения, такие как аналогии. Например, знаменитое отношение, захваченное встраиваниями Word2Vec, является:
вектор(“king”) – вектор(“man”) + вектор(“woman”)≈вектор(“queen”)
Это возможно потому, что Word2Vec регулирует векторы слов во время обучения, так что слова, которые имеют общие контексты в корпусе, располагаются близко в векторном пространстве.
Word2Vec использует две основные архитектуры для получения распределенного представления слов: Continuous Bag-of-Words (CBOW) и Skip-Gram. CBOW предсказывает целевое слово из его контекстных слов, тогда как Skip-Gram делает обратное, предсказывая контекстные слова из целевого слова. Это позволило машинам начать понимать использование слов и их смысл более тонким образом.
Моделирование последовательностей: RNN и LSTM
По мере развития области внимание сместилось в сторону понимания последовательностей текста, что было крайне важно для задач, таких как машинный перевод, суммаризация текста и анализ настроений. Рекуррентные нейронные сети (RNN) стали краеугольным камнем для этих приложений благодаря их способности обрабатывать последовательные данные, сохраняя некоторую форму памяти.
Однако RNN не были без ограничений. Они испытывали трудности с долгосрочными зависимостями из-за проблемы исчезающего градиента, когда информация теряется при обработке длинных последовательностей, что делает трудным обучение корреляций между отдаленными событиями.
Сети с долгой краткосрочной памятью (LSTM), введенные Сеппом Хохрайтером и Юргеном Шмидхубером в 1997 году, решили эту проблему с помощью более сложной архитектуры. LSTM имеют ворота, которые контролируют поток информации: входное ворота, забывающее ворота и выходное ворота. Эти ворота определяют, какая информация сохраняется, обновляется или отбрасывается, что позволяет сети сохранять долгосрочные зависимости и значительно улучшать производительность на широком спектре задач НЛП.
Архитектура трансформера
Ландшафт НЛП претерпел драматические изменения с введением модели трансформера в знаковом документе “Attention is All You Need” Васвани и др. в 2017 году. Архитектура трансформера отклоняется от последовательной обработки RNN и LSTM и вместо этого использует механизм, называемый “само-вниманием”, чтобы взвесить влияние различных частей входных данных.
Основная идея трансформера заключается в том, что он может обрабатывать все входные данные одновременно, а не последовательно. Это позволяет для гораздо большей параллелизации и, как результат, значительного увеличения скорости обучения. Механизм само-внимания позволяет модели сосредоточиться на различных частях текста, когда она его обрабатывает, что крайне важно для понимания контекста и отношений между словами, независимо от их позиции в тексте.
Кодировщик и декодировщик в трансформерах:
В исходной модели трансформера, как описано в документе “Attention is All You Need” Васвани и др., архитектура делится на две основные части: кодировщик и декодировщик. Обе части состоят из слоев, имеющих одинаковую общую структуру, но служащих разным целям.
Кодировщик:
- Роль: Роль кодировщика заключается в обработке входных данных и создании представления, которое захватывает отношения между элементами (например, словами в предложении). Эта часть трансформера не генерирует никакого нового контента; она просто преобразует входные данные в состояние, которое декодировщик может использовать.
- Функциональность: Каждый слой кодировщика имеет механизмы само-внимания и нейронные сети прямого распространения. Механизм само-внимания позволяет каждой позиции в кодировщике обращать внимание на все позиции в предыдущем слое кодировщика, что позволяет ему учиться контексту вокруг каждого слова.
- Контекстные встраивания: Выход кодировщика представляет собой ряд векторов, которые представляют входную последовательность в высокоразмерном пространстве. Эти векторы часто называются контекстными встраиваниями, поскольку они кодируют не только отдельные слова, но и их контекст внутри предложения.
Декодировщик:
- Роль: Роль декодировщика заключается в генерации выходных данных последовательно, один элемент за раз, на основе входных данных, которые он получает от кодировщика, и того, что он сгенерировал до сих пор. Он предназначен для задач, таких как генерация текста, где порядок генерации имеет решающее значение.
- Функциональность: Слои декодировщика также содержат механизмы само-внимания, но они маскируются, чтобы предотвратить обращение внимания на последующие позиции. Это гарантирует, что предсказание для определенной позиции может зависеть только от известных выходов на предыдущих позициях. Кроме того, слои декодировщика включают второй механизм внимания, который обращает внимание на выход кодировщика, интегрируя контекст из входных данных в процесс генерации.
- Последовательная генерация: Это относится к способности декодировщика генерировать последовательность один элемент за раз, основываясь на том, что он уже сгенерировал. Например, при генерации текста декодировщик предсказывает следующее слово на основе контекста, предоставленного кодировщиком, и последовательности слов, которые он уже сгенерировал.
Каждый из этих подслойев внутри кодировщика и декодировщика имеет решающее значение для способности модели обрабатывать сложные задачи НЛП. Механизм много-голового внимания, в частности, позволяет модели выбирать, на какие части последовательности она должна сосредоточиться, предоставляя богатое понимание контекста.
Популярные модели, использующие трансформеры
После первоначального успеха модели трансформера было создано множество новых моделей, построенных на ее архитектуре, каждая со своими инновациями и оптимизациями для различных задач:
BERT (Bidirectional Encoder Representations from Transformers): Введенный Google в 2018 году, BERT революционизировал способ, которым контекстная информация интегрируется в представления языка. Обучаясь на большом корпусе текста с помощью модели языка с маскированными словами и предсказания следующего предложения, BERT захватывает богатые двунаправленные контексты и достигает результатов на уровне штата в широком спектре задач НЛП.
T5 (Text-to-Text Transfer Transformer): Введенный Google в 2020 году, T5 переформулирует все задачи НЛП как задачу текст-в-текст, используя унифицированный текстовый формат. Этот подход упрощает процесс применения модели к различным задачам, включая перевод, суммаризацию и ответы на вопросы.
GPT (Generative Pre-trained Transformer): Разработанный OpenAI, линия моделей GPT началась с GPT-1 и достигла GPT-4 к 2023 году. Эти модели предварительно обучаются с помощью обучения без учителя на огромных объемах текстовых данных и дообучаются для различных задач. Их способность генерировать связный и контекстно-релевантный текст сделала их высоко влиятельными в академических и коммерческих приложениях ИИ.
Вот более подробное сравнение моделей T5, BERT и GPT по различным измерениям:
1. Токенизация и словарь
- BERT: Использует токенизацию WordPiece с размером словаря около 30 000 токенов.
- GPT: Использует кодирование байтовых пар с большим размером словаря (например, GPT-3 имеет размер словаря 175 000).
- T5: Использует токенизацию SentencePiece, которая рассматривает текст как сырой и не требует предварительно сегментированных слов.
2. Предобучение
- BERT: Маскированное моделирование языка и предсказание следующего предложения.
- GPT: Причинное моделирование языка, где каждая токена предсказывает следующую токену в последовательности.
- 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: Кодировщик-декодировщик обеспечивает четкое разделение шагов обработки, но может быть сложным для анализа из-за своей генеративной природы.
Влияние трансформеров на НЛП
Трансформеры революционизировали область НЛП, позволяя моделям обрабатывать последовательности данных параллельно, что значительно увеличило скорость и эффективность обучения больших нейронных сетей. Они ввели механизм само-внимания, позволяющий моделям взвешивать значение каждой части входных данных, независимо от расстояния в последовательности. Это привело к беспрецедентным улучшениям в широком спектре задач НЛП, включая, но не ограничиваясь, перевод, ответы на вопросы и суммаризацию текста.
Исследования продолжают расширять границы того, что могут достичь модели на основе трансформеров. GPT-4 и его современники не только больше по масштабу, но и более эффективны и способны благодаря достижениям в архитектуре и методах обучения. Техники, такие как обучение с несколькими примерами, когда модели выполняют задачи с минимальными примерами, и методы для более эффективного обучения перевода, находятся на переднем крае текущих исследований.
Модели языка, такие как те, которые основаны на трансформерах, учатся на данных, которые могут содержать предвзятости. Исследователи и практики активно работают над выявлением, пониманием и смягчением этих предвзятостей. Техники варьируются от отобранных обучающих наборов данных до пост-обучения корректировок, направленных на справедливость и нейтральность.















