Руководство по LLM, Часть 1 BERT

LLM Guide, Part 1 BERT

Понимание того, как BERT создает передовые векторные представления

Введение

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

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

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

Обзор на высоком уровне

Архитектура Transformer состоит из двух основных частей: энкодеров и декодеров. Задачей слоев энкодеров является создание осмысленного векторного представления для входных данных, сохраняя основной контекст. Выход последнего энкодера передается на вход всех декодеров, которые пытаются генерировать новую информацию.

BERT является наследником модели Transformer и наследует его стекированные двунаправленные энкодеры. Большая часть архитектурных принципов BERT идентична оригинальной модели Transformer.

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

Версии BERT

Существуют две основные версии BERT: Base и Large. Их архитектура абсолютно идентична, за исключением того, что они используют разное количество параметров. В целом, BERT Large имеет в 3.09 раза больше параметров для настройки, чем BERT Base.

Сравнение BERT Base и BERT Large

Двунаправленные представления

Из буквы «B» в названии BERT важно помнить, что BERT является двунаправленной моделью, что означает, что она может лучше улавливать связи между словами благодаря тому, что информация передается в обоих направлениях (слева направо и справа налево). Очевидно, что это требует больше ресурсов для обучения по сравнению с однонаправленными моделями, но в то же время приводит к более точным предсказаниям.

Для лучшего понимания мы можем визуализировать архитектуру BERT в сравнении с другими популярными моделями обработки естественного языка.

Сравнение архитектур BERT, OpenAI GPT и ElMo из оригинальной статьи. Автор адаптировал изображение.

Токенизация входных данных

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

  • [CLS] — передается перед первым предложением, указывая начало последовательности. В то же время [CLS] также используется для классификационной задачи во время обучения (рассмотрено в следующих разделах).
  • [SEP] — передается между предложениями, указывая конец первого предложения и начало второго.

Передача двух предложений позволяет BERT обрабатывать большое разнообразие задач, где ввод содержит два предложения (например, вопрос и ответ, гипотеза и предпосылка и т. д.).

Встраивание ввода

После токенизации для каждого токена создается встраивание. Чтобы сделать встраивания ввода более репрезентативными, BERT создает три типа встраиваний для каждого токена:

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

Эти встраивания суммируются и результат передается первому кодировщику модели BERT.

Вывод

Каждый кодировщик принимает на вход n встраиваний и затем выводит то же количество обработанных встраиваний той же размерности. В конечном итоге, весь вывод BERT также содержит n встраиваний, каждое из которых соответствует своему исходному токену.

Обучение

Обучение BERT состоит из двух этапов:

  1. Предварительное обучение. BERT обучается на непомеченных парах предложений для двух задач прогнозирования: маскированное моделирование языка (MLM) и естественное языковое умозаключение (NLI). Для каждой пары предложений модель делает прогнозы для этих двух задач, и на основе значений потерь она выполняет обратное распространение, чтобы обновить веса.
  2. Настройка. BERT инициализируется предобученными весами, которые затем оптимизируются для решения конкретной проблемы на помеченных данных.

Предварительное обучение

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

Мы рассмотрим подробнее обе проблемы, решаемые BERT во время предварительного обучения.

Маскированное моделирование языка

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

  1. После токенизации случайным образом выбирается 15% токенов для маскирования. Выбранные токены будут предсказаны в конце итерации.
  2. Выбранные токены заменяются одним из трех способов: – 80% токенов заменяются токеном [MASK]. Пример: Я купил книгу → Я купил [MASK]- 10% токенов заменяются случайным токеном. Пример: Он ест фрукт → Он рисует фрукт- 10% токенов остаются без изменений. Пример: Дом рядом со мной → Дом рядом со мной
  3. Все токены передаются модели BERT, которая выводит встраивание для каждого полученного входного токена.

4. Вывод встраиваний, соответствующих токенам, обработанным на шаге 2, независимо используется для предсказания маскированных токенов. Результат каждого предсказания – это вероятностное распределение по всем токенам в словаре.

5. Вычисляется потеря перекрестной энтропии путем сравнения вероятностных распределений с истинными маскированными токенами.

6. Веса модели обновляются с помощью обратного распространения.

Естественное языковое умозаключение

Для этой задачи классификации BERT пытается предсказать, следует ли второе предложение за первым. Весь прогноз делается только с использованием встраивания из конечного скрытого состояния токена [CLS], которое должно содержать агрегированную информацию из обоих предложений.

Аналогично MLM, созданное вероятностное распределение (в данном случае бинарное) используется для вычисления потери модели и обновления весов модели через обратное распространение.

Для NLI авторы рекомендуют выбирать 50% пар предложений, следующих друг за другом в корпусе (положительные пары), и 50% пар, в которых предложения выбираются случайным образом из корпуса (отрицательные пары).

Обучение BERT

Детали обучения

Согласно статье, BERT предварительно обучается на BooksCorpus (800 млн слов) и английской Википедии (2,5 млрд слов). Для извлечения более длинных непрерывных текстов авторы брали из Википедии только чтение, игнорируя таблицы, заголовки и списки.

BERT обучается на миллионе пакетов размером 256 последовательностей, что эквивалентно 40 эпохам на 3,3 млрд слов. Каждая последовательность содержит до 128 (90% времени) или 512 (10% времени) токенов.

Согласно оригинальной статье, параметры обучения следующие:

  • Оптимизатор: Adam (скорость обучения l = 1e-4, весовое уменьшение L₂ = 0.01, β₁ = 0.9, β₂ = 0.999, ε = 1e-6).
  • Разогревка скорости обучения выполняется в течение первых 10 000 шагов, а затем линейно уменьшается.
  • На всех слоях используется слой исключения (α = 0.1).
  • Функция активации: GELU.
  • Функция потерь обучения – это сумма средних MLM и средних вероятностей предсказания следующего предложения.

Настройка

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

Формат данных

Благодаря надежности механизма самовнимания, BERT может быть легко настроен для конкретной задачи. Еще одним преимуществом BERT является возможность построения двунаправленных текстовых представлений. Это дает больше шансов обнаружить правильные отношения между двумя предложениями при работе с парами. Предыдущие подходы состояли в независимом кодировании обоих предложений, а затем применении двунаправленной кросс-внимательности к ним. BERT объединяет эти два этапа.

В зависимости от конкретной проблемы BERT принимает несколько форматов ввода. Фреймворк для решения всех последующих задач с BERT одинаков: принимая в качестве входа последовательность текста, BERT выводит набор вложений токенов, которые затем передаются модели. Большую часть времени не все выходные вложения используются.

Давайте рассмотрим общие проблемы и способы их решения при настройке BERT.

Классификация пар предложений

Цель классификации пар предложений – понять отношение между заданной парой предложений. Наиболее распространенные типы задач:

  • Естественный языковой вывод: определение, следует ли второе предложение за первым.
  • Анализ сходства: определение степени сходства между предложениями.
Классификация пар предложений

Для настройки оба предложения передаются в BERT. Как правило, встраивание выходного токена [CLS] затем используется для задачи классификации. Согласно исследователям, токен [CLS] предположительно содержит основную информацию о соотношении предложений.

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

Задача вопросно-ответного формата

Цель вопросно-ответного формата – найти ответ в текстовом абзаце, соответствующий определенному вопросу. Большую часть времени ответ дается в виде двух чисел: начальной и конечной позиций токенов в пассаже.

Задача вопросно-ответного формата

Для ввода BERT берет вопрос и абзац и выводит для них набор векторных представлений. Поскольку ответ содержится в абзаце, нас интересуют только векторные представления, соответствующие токенам абзаца.

Для нахождения позиции начального токена ответа в абзаце вычисляется скалярное произведение между каждым векторным представлением и специальным обучаемым вектором Tₛₜₐᵣₜ. В большинстве случаев, когда модель и вектор Tₛₜₐᵣₜ обучены соответствующим образом, скалярное произведение должно быть пропорционально вероятности того, что соответствующий токен на самом деле является начальным токеном ответа. Чтобы нормализовать скалярные произведения, они затем передаются функции softmax и могут рассматриваться как вероятности. Предсказывается токенное векторное представление с наивысшей вероятностью как начальный токен ответа. На основе истинного распределения вероятностей вычисляется значение потери, и выполняется обратное распространение. Аналогичный процесс выполняется с вектором Tₑₙ𝒹 для предсказания конечного токена.

Классификация одного предложения

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

  • Анализ тональности: определение, имеет ли предложение положительную или отрицательную оценку.
  • Классификация по тематике: классификация предложения в одну из нескольких категорий на основе его содержания.
Классификация одного предложения

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

Маркировка одного предложения

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

Маркировка одного предложения

Для этой задачи вычисляются векторные представления для токенов входного предложения, как обычно. Затем каждое векторное представление (кроме [CLS] и [SEP]) передается независимо модели, которая сопоставляет каждое из них заданному классу NER (или нет, если это невозможно).

Комбинирование BERT с другими характеристиками

Иногда мы имеем дело не только с текстом, но и с числовыми характеристиками, например. Естественно желательно построить векторные представления, которые могут включать информацию как из текста, так и из других не-текстовых характеристик. Вот рекомендуемые стратегии применения:

  • Конкатенация текста с не-текстовыми характеристиками. Например, если мы работаем с описаниями профилей людей в виде текста и имеются отдельные характеристики, такие как их имя или возраст, то новое текстовое описание можно получить в виде: “Меня зовут <имя>. <описание профиля>. Мне <возраст> лет”. Наконец, такое текстовое описание можно передать в модель BERT.
  • Конкатенация векторных представлений с характеристиками. Можно построить векторные представления BERT, как обсуждалось выше, а затем объединить их с другими характеристиками. Единственное, что меняется в конфигурации, это то, что модель классификации для задачи должна теперь принимать векторы входных данных большей размерности.

Заключение

В этой статье мы погрузились в процессы обучения и доводки BERT. Фактически, этого знания достаточно для решения большинства задач в NLP благодаря тому, что BERT позволяет почти полностью инкорпорировать текстовые данные в векторные представления.

В последнее время появились другие модели на основе BERT, такие как SBERT, RoBERTa и т. д. Существует даже специальная область исследований, называемая “BERTология”, которая глубоко анализирует возможности BERT для вывода новых высокопроизводительных моделей. Эти факты усиливают вывод о том, что BERT стал революцией в машинном обучении и позволил значительно продвинуться в NLP.

Ресурсы

  • BERT: Предварительное обучение глубоких двунаправленных трансформеров для понимания языка

Все изображения, если не указано иное, принадлежат автору