Большие модели языка, ALBERT — Lite BERT для самообучения.

ALBERT — Lite BERT большие модели языка для самообучения.

Понимание основных техник, лежащих в основе выбора архитектуры BERT для создания компактной и эффективной модели

Вступление

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

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

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

ALBERT

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

Процедуры обучения и настройки в ALBERT аналогичны тем, которые используются в BERT. Как и BERT, ALBERT предварительно обучается на английской Википедии (2500 млн. слов) и BookCorpus (800 млн. слов).

1. Факторизованное встраивание параметров

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

Пусть V – размер словаря (общее количество возможных встраиваний), а H – размерность встраивания. Тогда для каждого из V встраиваний нам нужно сохранить H значений, что приводит к матрице встраивания размером V x H. Как оказывается на практике, эта матрица обычно имеет большие размеры и требует много памяти для ее хранения. Но более глобальной проблемой является то, что большую часть времени элементы матрицы встраивания тренируются, и это требует множество ресурсов, чтобы модель могла научиться соответствующим параметрам.

Например, возьмем базовую модель BERT: у нее есть словарь из 30K токенов, каждый из которых представлен 768-компонентным встраиванием. В итоге это приводит к 23 млн весов, которые нужно хранить и обучать. Для более крупных моделей это число еще больше.

Эту проблему можно избежать с помощью матричной факторизации. Исходная матрица словаря V x H может быть разложена на пару более маленьких матриц размеров V x E и E x H.

Факторизация матрицы словаря

Таким образом, вместо использования O(V x H) параметров, декомпозиция приводит только к O(V x E + E x H) весам. Очевидно, что этот метод эффективен, когда H >> E.

Еще один важный аспект матричной факторизации заключается в том, что она не меняет процесс поиска для получения встраиваний токенов: каждая строка левой разложенной матрицы V x E отображает токен на его соответствующее встраивание таким же простым способом, как это было в исходной матрице V x H. Таким образом, размерность встраиваний уменьшается с H до E.

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

2. Параметрическое разделение между слоями

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

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

Упомянутая идея реализована в модели ALBERT, которая состоит из набора блоков-трансформеров с одной и той же структурой, что делает совместное использование параметров более эффективным. Фактически, существует несколько способов совместного использования параметров в трансформерах между слоями:

  • совместное использование только параметров внимания;
  • совместное использование только параметров прямой нейронной сети (FNN);
  • совместное использование всех параметров (используется в модели ALBERT).
Different parameter sharing strategies

В общем случае возможно разделить все слои трансформера на N групп размером M, где каждая группа совместно использует параметры внутри своих слоев. Исследователи обнаружили, что чем меньше размер группы M, тем лучше результаты. Однако, уменьшение размера группы M приводит к значительному увеличению общего количества параметров.

3. Прогнозирование порядка предложений

BERT сосредотачивается на освоении двух целей во время предварительного обучения: маскированное моделирование языка (MSM) и предсказание следующего предложения (NSP). В общем случае MSM было разработано для улучшения способности BERT приобретать лингвистические знания, а цель NSP заключалась в улучшении производительности BERT на конкретных вспомогательных задачах.

Тем не менее, множество исследований показало, что может быть полезно избавиться от задачи NSP, в основном из-за ее простоты по сравнению с MSM. Исходя из этой идеи, исследователи ALBERT также решили убрать задачу NSP и заменить ее проблемой прогнозирования порядка предложений (SOP), цель которой состоит в прогнозировании, находятся ли оба предложения в правильном или обратном порядке.

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

Composition of positive and negative training pairs in BERT and in ALBERT

Было показано, что модели, обученные с целью NSP, не могут точно решать задачи SOP, в то время как модели, обученные с целью SOP, хорошо справляются с задачами NSP. Эти эксперименты доказывают, что ALBERT лучше приспособлен для решения различных вспомогательных задач, чем BERT.

BERT против ALBERT

Подробное сравнение между BERT и ALBERT иллюстрировано на диаграмме ниже.

Comparison between different variations of BERT and ALBERT models. The speed measured under the same configurations shows how fast models iterated through the training data. The speed values are shown relatively for each model (BERT large is taken as a baseline whose speed equals 1x). The accuracy score was measured on GLUE, SQuAD and RACE benchmarks.

Вот наиболее интересные наблюдения:

  • За счет того, что ALBERT xxlarge использует всего 70% параметров BERT large, версия xxlarge ALBERT показывает лучшую производительность на вспомогательных задачах.
  • ALBERT large достигает сравнимой производительности по сравнению с BERT large и в 1,7 раза быстрее благодаря сжатию размера параметров.
  • Все модели ALBERT имеют размер вложений 128. Как было показано в абляционных исследованиях в статье, это оптимальное значение. Увеличение размера вложений, например, до 768, улучшает метрики, но не более чем на 1% в абсолютных значениях, что не так много с учетом возрастающей сложности модели.
  • Хотя ALBERT xxlarge обрабатывает одну итерацию данных в 3,3 раза медленнее, чем BERT large, эксперименты показали, что при тренировке обеих моделей в течение одинакового времени ALBERT xxlarge демонстрирует значительно более высокую производительность на наборах данных, чем BERT large (88,7% против 87,2%).
  • Эксперименты показали, что модели ALBERT с широкими размерами скрытых слоев (≥ 1024) не имеют множественных преимуществ от увеличения числа слоев. Это одна из причин, почему число слоев было сокращено с 24 в модели ALBERT large до 12 в версии xxlarge.
Производительность модели ALBERT large (18M параметров) с увеличением количества слоев. Модели на диаграмме с ≥ 3 слоями были дообучены из предыдущей модели. Можно заметить, что после достижения 12 слоев увеличение производительности замедляется и постепенно падает после 24 слоев.
  • Аналогичное явление наблюдается при увеличении размера скрытого слоя. При его увеличении значениями больше 4096 производительность модели ухудшается.
Производительность модели ALBERT large (конфигурация с 3 слоями из предыдущей диаграммы) с увеличением размера скрытого слоя. Оптимальное значение - размер скрытого слоя равный 4096.

Вывод

На первый взгляд ALBERT кажется предпочтительным выбором по сравнению с оригинальными моделями BERT, так как он превосходит их в задачах последующего применения. Однако, ALBERT требует гораздо больше вычислений из-за своей более длинной структуры. Хорошим примером этой проблемы является модель ALBERT xxlarge, которая имеет 235M параметров и 12 слоев. Большинство этих 235M весов относятся к одному блоку трансформера. Затем эти веса используются для каждого из 12 слоев. Таким образом, во время тренировки или вывода алгоритм должен выполняться на более чем 2 миллиардах параметров!

Из-за этих причин ALBERT лучше подходит для проблем, где скорость может быть жертвована для достижения более высокой точности. В конечном счете, сфера обработки естественного языка никогда не стоит на месте и постоянно прогрессирует в направлении новых техник оптимизации. Очень вероятно, что в скором будущем скорость в ALBERT будет улучшена. Авторы работы уже упомянули методы, такие как sparse attention и block attention, как потенциальные алгоритмы ускорения ALBERT.

Ресурсы

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