Найти тему
Nuances of programming

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

Оглавление

Источник: Nuances of Programming

BERT  —  сегодня это одна из самых популярных и универсальных моделей ИИ. Однако из-за зависимости от операций слоя dense, точность и гибкость этой модели сопряжены с высокими вычислительными затратами.

Пытаясь решить эту проблему, в Graphcore Research на основе BERT разработали новую модель GroupBERT с групповыми преобразованиями, делающими ее идеальной для интеллектуального процессора. В GroupBERT улучшенная структура Transformer сочетается с эффективными групповыми свертками и перемножениями матриц. Пользователям интеллектуального процессора это позволяет сократить параметры модели практически вдвое, а время обучения  —  на 50 % при том же уровне точности.

Улучшенная BERT с интеллектуальным процессором

Рис. 1. Принципиальная схема структуры модели GroupBERT (изображение автора)
Рис. 1. Принципиальная схема структуры модели GroupBERT (изображение автора)

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

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

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

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

Интеллектуальный процессор позволяет записывать все веса и активации на внутрипроцессорное статическое ОЗУ с очень высокой пропускной способностью 47,5 Тб/с. Поэтому теоретическое преимущество в эффективности GroupBERT можно перевести в практическое сокращение времени обучения на самых разных моделях.

Сгруппированные полносвязные слои

Исходный слой энкодера Transformer состоит из двух модулей: многоголового внимания и полносвязной сети.

Во многих работах акцент сделан на повышении эффективности этого слоя. Так, в работе Tay et al. (2020) описываются разнообразные подходы, большинство модификаций которых направлены на сокращение квадратичной вычислительной зависимости модуля многоголового внимания от длины последовательности.

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

Структура модуля полносвязной сети очень проста: две матрицы и нелинейность. В первой матрице представление проецируется на более крупную размерность  —  обычно в четыре раза большую, чем скрытое представление модели.

За этой операцией расширения размерности следует функция активации без насыщения, которой выполняется нелинейное преобразование представления и его разреживание.

Наконец  —  посредством матрицы, в которой осуществляется проецирование на меньшую размерность,  —  разреженное расширенное представление сжимается до размерности модели.

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

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

В целом эта схема сгруппированной полносвязной сети позволяет GroupBERT сократить число параметров слоя полносвязной сети на 25 % при минимальном снижении результатов выполнения задач. Она отличается от всех предыдущих методов, где делались попытки применять групповые преобразования, но к обеим матрицам. В результате получалось несвязное скрытое представление со значительным падением производительности:

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

Групповая свертка как дополнение к механизму внимания

Вычисление внимания «все со всеми» для длин последовательностей в BERT не приводит к значительным вычислительным затратам.

Однако в недавнем исследовании (Cordonnier et al. 2020) было показано, что использование только многоголового внимания может быть избыточным  —  в первую очередь для языковых моделей. Часть голов внимания в слое Transformer переходит в сверточный режим  —  для моделирования исключительно локальных взаимодействий токенов.

Чтобы уменьшить избыточность вычисления карт внимания слоя dense  —  для моделирования локального взаимодействия внутри последовательности  —  в GroupBERT появился специальный модуль свертки. Групповая свертка выступает в роли скользящего окна, смешивая информацию между близкими друг к другу лексемами слов.

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

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

На рисунке 3 показаны карты внимания по валидационному множеству предобучения из BERT и GroupBERT. Здесь четко видно, как свертки делают внимание более эффективным при дальних взаимодействиях  —  рисунок более плавный и равномерно распределенный:

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

Заставляем параметры модели считать

Нормализация

Во многих работах рассматривался лучший способ применения нормализации в Transformer. И хотя предпочтительный метод нормализации  —  это всегда нормализация слоя, есть два варианта ее применения: PreNorm и PostNorm.

В PostNorm нормализуется вывод суммы соединения быстрого доступа и блока residual, а в PreNorm  —  представление ветви блока residual перед применением любых проекций внутри (см. рисунок 4):

Рис. 4. В PostNorm (слева) и PreNorm (справа) функция нормализации слоя (LN) располагается в разных местах по отношению к соединениям быстрого доступа и блока residual (изображение автора)
Рис. 4. В PostNorm (слева) и PreNorm (справа) функция нормализации слоя (LN) располагается в разных местах по отношению к соединениям быстрого доступа и блока residual (изображение автора)

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

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

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

Прореживание

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

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

Хотя предобучение на наборе данных «Википедии» предпочтительно проводить без прореживания, последнее остается очень важным инструментом при дообучении GroupBERT: наборы данных дообучения на несколько порядков меньше, чем корпус предобучения.

GroupBERT  —  трансформер с интеллектуальным процессором

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

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

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

На рисунке 5 представлено исследование фрагментарной абляции каждого улучшения, появившегося в GroupBERT. При каждом добавлении в модель эффективность по Парето в сравнении с базовым уровнем BERT растет. А в базовой GroupBERT Base те же потери валидации MLM (моделей машинного обучения), что и в крупной модели BERT Large, хоть у нее и менее 50 % параметров:

Рис. 5. Исследование абляции GroupBERT. Все улучшения GroupBERT повышают эффективность по Парето BERT, снижая потери валидации (изображение автора)
Рис. 5. Исследование абляции GroupBERT. Все улучшения GroupBERT повышают эффективность по Парето BERT, снижая потери валидации (изображение автора)

Чтобы окончательно убедиться в неизменном превосходстве GroupBERT над BERT и другими моделями, где делались попытки применять групповые преобразования в Transformer, мы показываем на рисунке 6, что преимущество GroupBERT Base над BERT Large сохраняется в моделях разных масштабов. Для этого добавляем к базовой модели GroupBERT Base еще две отличающиеся по размерам, создавая сплошной Парето-фронт:

Рис. 6. Точность валидации предобучения относительно операций с плавающей точкой в секунду (изображение автора)
Рис. 6. Точность валидации предобучения относительно операций с плавающей точкой в секунду (изображение автора)

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

Рис. 7. Время обучения GroupBERT Base и BERT Large на разных оптимизаторах в интеллектуальном процессоре IPU-POD16. На всех моделях достигается эквивалентная точность валидации предобучения (изображение автора)
Рис. 7. Время обучения GroupBERT Base и BERT Large на разных оптимизаторах в интеллектуальном процессоре IPU-POD16. На всех моделях достигается эквивалентная точность валидации предобучения (изображение автора)

Главные выводы

Результаты показывают, что:

  • с помощью групповых преобразований могут создаваться гораздо более эффективные модели;
  • сочетание сверток со вниманием «все со всеми» слоя dense положительно сказывается даже на задачах, в которых требуются дальние взаимодействия;
  • с помощью интеллектуального процессора теоретическая экономия в операциях с плавающей точкой в секунду переводится в практическое сокращение вычислительного времени;
  • значительного роста производительности можно добиться скорее за счет улучшения архитектуры, нежели простого изменения масштабов модели.

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

Код доступен на GitHub.

Читайте также:

Читайте нас в Telegram, VK

Перевод статьи Ivan Chelombiev: Getting more bang for your buck out of pre-trained language models with GroupBERT