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

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

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

Рис. 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. В новой схеме сгруппированной полносвязной сети применяются групповые перемножения матриц (производительность сохраняется, вычислительные затраты сокращаются). Изображение автора

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 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, снижая потери валидации (изображение автора)

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

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

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

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

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

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

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

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

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

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

Читайте нас в TelegramVK и Яндекс.Дзен


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

Предыдущая статьяОбзор инструментов для автоформатирования кода Python
Следующая статьяОбзор 8 ключевых команд Npm и Yarn