Connect with us

Искусственный интеллект

UltraFastBERT: экспоненциально более быстрая модель языка

mm

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

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

Эта статья представляет UltraFastBERT, основанную на BERT框架, который соответствует эффективности ведущих моделей BERT, но использует только 0,3% нейронов во время интерференции, а именно 12 из 4095 в каждом слое. Мы рассмотрим архитектуру UltraFastBERT, функциональность и результаты. Давайте начнем.

UltraFastBERT : Введение в экспоненциально более быструю модель языка

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

В своей основе, фреймворк UltraFastBERT является вариантом фреймворка BERT, основан на этой концепции, и заменяет слои прямого распространения на более быстрые сети прямого распространения в своей архитектуре, что в конечном итоге приводит к тому, что фреймворк UltraFastBERT использует только 0,3% доступных нейронов, обеспечивая результаты, сравнимые с моделями BERT аналогичного размера и процесса обучения, особенно на задачах вниз по потоку. Благодаря своим реализациям, промежуточные слои в фреймворке UltraFastBERT экспоненциально быстрее,

Учитывая быструю сеть прямого распространения (FFF) и сеть прямого распространения (FF), каждую с n количеством нейронов, временная сложность прямого прохода в сети прямого распространения равна O(n), тогда как временная сложность равна O(log2n) для быстрой сети прямого распространения, и разница во временной сложности в основном обусловлена тем, что в быстрой сети прямого распространения нейроны организованы в сбалансированное бинарное дерево, и когда вводится вход, сеть выполняет только одну ветвь дерева условно. Кроме того, выполнение интерференции на быстрой сети прямого распространения приводит к CMM или условному умножению матриц, при котором входные строки точечно умножаются с естественными весовыми столбцами индивидуально, и выход предыдущей операции точечного произведения определяет вес столбцов для продолжения. В результате сеть использует все нейроны только для нескольких входов, и ни один вход не требует более чем нескольких нейронов для обработки сетью. Произведение CMM контрастирует с DMM или плотным умножением матриц, которое вычисляет произведение всех входов со всеми весовыми столбцами.

Вкратце, UltraFastBERT – это основанный на BERT фреймворк, который обеспечивает результаты, сравнимые с лучшими моделями BERT языка, который

  1. Использует только 0,3% доступных нейронов во время стадии интерференции и использует только 12 нейронов из общего количества 4095 нейронов для каждого слоя интерференции.
  2. Обеспечивает сильную производительность, сравнимую с лучшими моделями BERT, реализуя стратегии тонкой настройки на задачах вниз по потоку.
  3. Предоставляет родную реализацию CMM или условного умножения матриц, которая образует основу для быстрой сети прямого распространения, и в конечном итоге приводит к 78-кратному ускорению производительности по сравнению с родной оптимизированной DMM или плотным умножением матриц.

Сети прямого распространения

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

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

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

Фаза прямого распространения

В фазе прямого распространения вход подается в сеть, и она затем распространяется вперед. Скрытые слои вычисляют взвешенную сумму входов и вводят нелинейность в модель, передавая сумму входов через функцию активации, такую как ReLu, Sigmoid и TanH. Этот процесс повторяется снова и снова, пока веса не достигнут выходного слоя, и модель делает прогноз.

Фаза обратного распространения

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

UltraFastBERT : Архитектура модели и работа

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

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

Двигаясь дальше, во время обучения фреймворк UltraFastBERT следует процедуре обучения, используемой фреймворком crammedBERT, которая включает отключение dropout во время предварительного обучения и использование 1-цикличного треугольного графика скорости обучения. Модель затем донастраивается, чтобы максимизировать свою производительность на широком спектре задач, в основном из набора задач GLUE, в течение общего количества 5 эпох.

Интерференция

Интерференция является важной частью для быстрой сети прямого распространения, и эти быстрые сети прямого распространения сами по себе образуют значительную часть крупных языковых моделей, и они известны своим исключительным потенциалом ускорения. Чтобы понять этот потенциал ускорения, давайте рассмотрим пример одной из наиболее передовых языковых моделей, GPT-3, в которой сети прямого распространения в каждом трансформерном слое состоят из более 49 100 нейронов. Если бы их можно было обучить, быструю сеть прямого распространения (максимальная глубина 15) можно было бы заменить на исходную сеть прямого распространения. Введенная быстрая сеть прямого распространения будет иметь более 65 000 нейронов, но она будет использовать только 16 из этих нейронов для интерференции, что составляет примерно 0,03% от доступных нейронов GPT-3.

Алгоритм и совместимость

Фреймворк UltraFastBERT использует рекурсивный псевдокодовый алгоритм для быстрой интерференции сети прямого распространения, и алгоритм изображен на изображении ниже.

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

Важно отметить, что в качестве части быстрой сети прямого распространения однопоточное плотное умножение матриц зависит от выполнения инструкций MAC или умножения и аккумуляции, и в результате замена DMM на подход CMM принесет пользу ЦП, поскольку для вычисления выхода слоя на элемент требуется меньше инструкций MAC. Следовательно, несмотря на использование условности, обычно связанной с ветвлением, “нейронное ветвление” действует как добавление к смещению памяти соответствующих указателей в фреймворке. Следовательно, в фреймворке UltraFastBERT предсказание ветвления инструкций никогда не полностью задействовано для облегчения условности CMM, и оно только загружает соответствующие столбцы матрицы весов индивидуально. Кроме того, поскольку фреймворк выполняет операции точечного произведения строк и столбцов, SIMD или векторная параллельная обработка все еще является хорошим вариантом для ускорения реализаций интерференции для конкретных устройств.

UltraFastBERT : Производительность и результаты

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

Результаты тонкой настройки

Следующая фигура демонстрирует производительность различных моделей на наборе тестовых данных GLUE-dev. Здесь N представляет количество нейронов, доступных фреймворкам для обучения, “Avg” представляет средний балл всех задач.

Как можно четко увидеть, фреймворк UltraFastBERT, обученный на GPU A6000 в течение более 24 часов, удерживает почти 96% прогностической производительности на задачах вниз по потоку GLUE по сравнению с исходным фреймворком BERT. Кроме того, можно увидеть, что с увеличением глубины быстрых сетей прямого распространения производительность фреймворков испытывает спад, хотя большинство ухудшений производительности происходит только для задачи CoLa. Если задачу CoLa暂енно отбросить, фреймворк UltraFastBERT возвращает балл прогностической производительности около 98,6%.

Результаты интерференции

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

  1. На уровне 1 реализация построена с использованием процедур BLAS уровня 1, а именно скалярно-векторного произведения и векторно-векторного точечного произведения.
  2. На уровне 2 реализации используют процедуры BLAS уровня 2, а именно пакетные скалярно-векторные произведения и пакетные матрично-векторные точечные произведения.
  3. На уровне 3 реализации используют неразбatched подход матрично-матричному умножению BLAS уровня 3, и хотя это самый быстрый доступный подход для сетей прямого распространения, такие реализации не доступны для быстрых сетей прямого распространения, поскольку библиотека не поддерживает векторную разреженность вычислительного умножения матриц.

Кроме того, фреймворк UltraFastBERT развертывает реализации GPU с использованием либо пользовательских ядер CUDA, либо ядер PyTorch.

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

Однако стоит отметить, что ускорения, сообщенные в таблице выше, предназначены для “справедливых сравнений”, т. е. как быстрые сети прямого распространения, так и сети прямого распространения используют одинаковые примитивы линейной алгебры. Кроме того, на уровне 1 и уровне 2 реализации быстрых сетей прямого распространения способны выполнять интерференцию в 48 и 78 раз быстрее, чем самая быстрая реализация сети прямого распространения соответственно.

Окончательные мысли

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

Благодаря своим реализациям промежуточные слои в фреймворке UltraFastBERT экспоненциально быстрее. Кроме того, сильная производительность, обеспеченная фреймворком UltraFastBERT, является доказательством того, что LLM могут обеспечить сильную производительность, используя только часть своих параметров для отдельных интерференций, поскольку фреймворк UltraFastBERT использует только 0,3% доступных нейронов во время интерференции и все же удается достичь 78-кратного ускорения времени интерференции.

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