EfficientViT Эффективный Vision Transformer с памятью для высокоразрешающего компьютерного зрения

EfficientViT Vision Transformer с памятью для высокоразрешающего компьютерного зрения

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

Работая над EfficientViT, разработчики обнаружили, что скорость текущих моделей трансформеров часто ограничивается неэффективными операциями памяти, особенно операциями поэлементных функций и изменением формы тензора в MHSA или много-головочной сети самообращения. Чтобы справиться с этими неэффективными операциями памяти, разработчики EfficientViT работали над новым строительным блоком, используя макет-сэндвич, то есть модель EfficientViT использует единственную много-головочную сеть самообращения, ограниченную памятью, между эффективными FFN-слоями, что помогает улучшить эффективность использования памяти, а также повышает общую связь между каналами. Кроме того, модель также обнаруживает, что карты внимания часто имеют высокую схожесть между головами, что приводит к вычислительной избыточности. Для решения проблемы избыточности модель EfficientViT представляет модуль группового внимания с каскадной структурой, который подает головкам внимания разные разделы полного признака. Этот метод не только помогает сэкономить вычислительные затраты, но и улучшает разнообразие внимания модели.

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

Введение в Визионные Трансформеры и EfficientViT

Визионные трансформеры остаются одной из самых популярных рамок в индустрии компьютерного зрения, потому что они обеспечивают превосходную производительность и высокие вычислительные возможности. Однако с постоянным улучшением точности и производительности моделей визионных трансформеров, операционные расходы и вычислительные накладные расходы также увеличиваются. Например, текущие модели, известные своей производительностью на наборах данных ImageNet, такие как SwinV2 и V-MoE, используют соответственно 3 миллиарда и 14,7 миллиарда параметров. Большие размеры этих моделей в сочетании с вычислительными затратами делают их практически непригодными для устройств и приложений в реальном времени.

Модель EfficientNet направлена на исследование того, как повысить производительность моделей визионных трансформеров и найти принципы, лежащие в основе проектирования эффективных и эффективных архитектур на основе трансформеров. Модель EfficientViT основана на существующих рамках визионных трансформеров, таких как Swim и DeiT, и анализирует три важных фактора, влияющих на скорость работы моделей, включая вычислительную избыточность, доступ к памяти и использование параметров. Кроме того, модель обнаруживает, что скорость моделей визионных трансформеров ограничена памятью, что означает, что полное использование вычислительной мощности в процессорах/графических процессорах ограничено или запрещено задержкой доступа к памяти, что отрицательно сказывается на скорости выполнения трансформеров. Операции поэлементных функций и изменение формы тензора в MHSA или много-головочной сети самообращения являются наиболее неэффективными операциями памяти. Модель также обнаруживает, что оптимальное регулирование соотношения между FFN (сеть прямого распространения) и MHSA может помочь существенно сократить время доступа к памяти без ущерба для производительности. Однако модель также обнаруживает некоторую избыточность в картах внимания в результате тенденции головок внимания к изучению похожих линейных проекций.

Модель является окончательным результатом исследовательской работы по EfficientViT. Модель представляет новый блок с чередующейся структурой, который применяет один памятью ограниченный слой MHSA между слоями Feed Forward Network или FFN. Этот подход не только сокращает время выполнения операций, связанных с памятью, в MHSA, но также делает весь процесс более эффективным с точки зрения использования памяти, позволяя использовать больше слоев FFN для облегчения связи между различными каналами. Модель также использует новый модуль CGA или Cascaded Group Attention, который направлен на то, чтобы сделать вычисления более эффективными, уменьшив вычислительную избыточность не только в головках внимания, но и увеличивая глубину сети, что приводит к повышению мощности модели. Наконец, модель расширяет ширину канала основных компонентов сети, включая проекции значений, одновременно уменьшая компоненты сети с низким значением, такие как скрытые размерности в сетях прямого распространения, чтобы перераспределить параметры в рамках.

Как видно на приведенном выше изображении, архитектура EfficientViT работает лучше, чем текущие передовые модели CNN и ViT как по точности, так и по скорости. Но как архитектура EfficientViT смогла превзойти некоторые из текущих передовых архитектур? Давайте разберемся.

EfficientViT: Улучшение эффективности моделей Визионных Трансформеров

Модель EfficientViT направлена на улучшение эффективности существующих моделей Визионных Трансформеров с помощью трех аспектов:

  1. Вычислительная избыточность.
  2. Доступ к памяти.
  3. Использование параметров.

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

Доступ к памяти и эффективность

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

Хотя существуют некоторые существующие методы, которые могут упростить стандартные операции само-внимания softmax, такие как аппроксимация низкого ранга и разреженное внимание, они часто предлагают ограниченное ускорение и снижают точность.

С другой стороны, фреймворк EfficientViT стремится сократить затраты на доступ к памяти путем уменьшения количества неэффективных по памяти слоев в фреймворке. Модель масштабирует модели DeiT-T и Swin-T до малых подсетей с более высокой пропускной способностью вмешательства 1,25X и 1,5X и сравнивает производительность этих подсетей с пропорциями слоев MHSA. Как видно на изображении ниже, при реализации такого подхода точность слоев MHSA повышается примерно на 20-40%.

Вычислительная эффективность

Слои MHSA имеют тенденцию вкладывать входную последовательность в несколько подпространств или головок и вычислять карты внимания индивидуально, что известно как подход, способствующий повышению производительности. Однако карты внимания не являются вычислительно дешевыми, и для изучения вычислительных затрат модель EfficientViT исследует, как уменьшить избыточность внимания в более легких моделях ViT. Модель измеряет максимальную косинусную сходство каждой головки с остальными головками в каждом блоке, обучая модели DeiT-T и Swim-T с уменьшенной пропускной способностью в 1,25×. Как можно видеть на изображении ниже, существует высокое сходство между головками внимания, что говорит о том, что модель имеет избыточность в вычислениях, поскольку множество головок склонны изучать похожие проекции полной характеристики.

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

Параметрическая эффективность

Средние модели ViT наследуют стратегии проекций с эквивалентной шириной, установки коэффициента расширения равного 4 в FFN и увеличения количества головок на стадиях от NLP-трансформеров. Конфигурации этих компонентов должны быть тщательно переработаны для легких модулей. Модель EfficientViT применяет структурированную обрезку Тейлора для автоматического поиска ключевых компонентов в слоях Swim-T и DeiT-T, а также исследует принципы распределения параметров. При определенных ограничениях ресурсов методы обрезки удаляют неважные каналы и сохраняют основные, чтобы обеспечить наивысшую возможную точность. На рисунке ниже сравнивается соотношение каналов к входным вложениям до и после обрезки в фреймворке Swin-T. Было обнаружено следующее: базовая точность: 79,1%; точность после обрезки: 76,5%.

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

Efficient Vision Transformer: Архитектура

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

Строительные блоки рамки EfficientViT

Строительный блок для более эффективной сети видового преобразователя показан на рисунке ниже.

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

Макет-сэндвич

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

Каскадное групповое внимание

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

Перераспределение параметров

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

Обзор рамки EfficientViT можно объяснить на приведенном выше изображении, где приведены части:

  1. Архитектура EfficientViT,
  2. Блок макета-сэндвича,
  3. Каскадное групповое внимание.

 

EfficientViT: Архитектура сети

На приведенном выше изображении представлена архитектура сети рамки EfficientViT. Модель использует перекрывающуюся вставку патчей [20,80], которая вставляет 16×16 патчей в токены размерности C1, что улучшает возможности модели в области обучения низкоуровневого визуального представления. Архитектура модели состоит из трех этапов, на каждом из которых стекируются предлагаемые строительные блоки рамки EfficientViT, и количество токенов на каждом слое поддискретизации (2× поддискретизация разрешения) уменьшается в 4 раза. Чтобы сделать поддискретизацию более эффективной, модель предлагает блок поддискретизации, который также имеет предложенный макет-сэндвич, за исключением того, что слой внимания заменяется блоком инвертированного остатка для уменьшения потери информации при выборке. Кроме того, вместо обычного LayerNorm(LN) модель использует BatchNorm(BN), потому что BN может быть встроен в предшествующие линейные или сверточные слои, что дает ему преимущество времени выполнения перед LN.

 

Семейство моделей EfficientViT

Семейство моделей EfficientViT состоит из 6 моделей с различными масштабами глубины и ширины, а также заданным числом головок для каждого этапа. Модели используют меньше блоков на начальных этапах по сравнению с конечными этапами, похожим образом на фреймворк MobileNetV3, потому что процесс обработки начальных этапов с более высоким разрешением занимает много времени. Ширина увеличивается на последующих этапах с небольшим коэффициентом, чтобы уменьшить избыточность на более поздних этапах. Приведенная ниже таблица предоставляет архитектурные детали семейства моделей EfficientViT, где C, L и H обозначают ширину, глубину и количество головок на конкретном этапе.

Реализация и результаты модели EfficientViT

Модель EfficientViT имеет общий размер пакета 2,048, создана с использованием Timm и PyTorch, обучается с нуля в течение 300 эпох с использованием 8 графических процессоров Nvidia V100, использует косинусный планировщик скорости обучения, оптимизатор AdamW и проводит эксперимент по классификации изображений на наборе данных ImageNet-1K. Входные изображения случайным образом обрезаются и изменяются до разрешения 224×224. Для экспериментов, связанных с классификацией изображений, фреймворк EfficientViT донастраивает модель в течение 300 эпох и использует оптимизатор AdamW с размером пакета 256. Модель использует RetineNet для обнаружения объектов на наборе данных COCO и продолжает обучать модели в течение дополнительных 12 эпох с идентичными настройками.

Результаты на наборе данных ImageNet

Для анализа производительности EfficientViT он сравнивается с текущими моделями ViT и CNN на наборе данных ImageNet. Результаты сравнения представлены на следующей диаграмме. Как видно, семейство моделей EfficientViT превосходит текущие фреймворки в большинстве случаев и достигает идеального баланса между скоростью и точностью.

Сравнение с эффективными сверточными нейронными сетями и эффективными моделями ViT

Сначала модель сравнивает свою производительность с эффективными сверточными нейронными сетями, такими как EfficientNet, и базовыми фреймворками сверточных нейронных сетей, такими как MobileNets. Как видно, по сравнению с фреймворками MobileNet модели EfficientViT получают лучший показатель точности top-1, при этом работая соответственно 3,0 раза и 2,5 раза быстрее на процессоре Intel CPU и графическом процессоре V100.

Вышеуказанная диаграмма сравнивает производительность модели EfficientViT с передовыми моделями ViT, работающими на наборе данных ImageNet-1K.

Классификация изображений вниз по течению

Модель EfficientViT применяется к различным задачам классификации изображений для изучения возможностей передачи обучения модели, и ниже приведена сводка результатов эксперимента. Как можно видеть, модель EfficientViT-M5 удается достичь лучших или схожих результатов на всех наборах данных при более высокой пропускной способности. Единственным исключением является набор данных Cars, где модель EfficientViT не достигает достаточной точности.

Обнаружение объектов

Для анализа способности EfficientViT обнаруживать объекты он сравнивается с эффективными моделями на задаче обнаружения объектов COCO, и ниже приведена сводка результатов сравнения.

Заключительные мысли

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