Как снизить вычислительные затраты визуального трансформера? Подход временной избыточности удивляет

После внесения изменений в языковое поле Transformer входит в визуальное поле, но у него также есть проблема высоких вычислительных затрат. Недавно исследовательская группа из Университета Висконсин-Мэдисон предложила Eventful Transformer, который может сэкономить затраты за счет использования избыточности времени в визуальном Transformer.

Источник изображения: Создано Unbounded AI

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

Основным недостатком визуального преобразователя является его высокая вычислительная стоимость. Типичным сверточным сетям (CNN) для обработки изображения требуются десятки гигафлопсов, тогда как визуальным трансформаторам часто требуется на порядок больше, достигая сотен гигафлопсов на изображение. При обработке видео эта проблема усугубляется из-за огромного количества данных. Высокие вычислительные затраты затрудняют развертывание Visual Transformer на устройствах с ограниченными ресурсами или строгими требованиями к задержке, что ограничивает сценарии применения этой технологии, иначе у нас уже было бы несколько интересных приложений.

В недавней статье трое исследователей из Университета Висконсин-Мэдисон, Мэтью Датсон, Инь Ли и Мохит Гупта, впервые предположили, что временная избыточность между последующими входными данными может использоваться для снижения стоимости визуальных преобразователей в видеоприложениях. Они также выпустили код модели, который включает модуль PyTorch, используемый для создания Eventful Transformer.

* Бумажный адрес:

  • адрес проекта:

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

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

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

Eventful Transformer: в этой статье предлагается Eventful Transformer, который может использовать временную избыточность между входными данными для достижения эффективных и адаптивных рассуждений. Термин «событийный» вдохновлен камерами событий — датчиками, которые дискретно записывают изображения при изменении сцены. Eventful Transformer отслеживает изменения на уровне токенов с течением времени и выборочно обновляет представления токенов и карты внутреннего внимания на каждом временном шаге. Модуль Eventful Transformer содержит модуль шлюзования, который используется для управления количеством токенов, обновляемых во время выполнения.

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

Событийный трансформер

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

контроль токена: обнаружение избыточности

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

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

Теперь пусть текущий входной сигнал на вентиле равен c. На каждом временном этапе выполняется следующий процесс для обновления состояния вентиля и определения его выходных данных (см. рисунок 2 ниже):

1. Вычислить общую ошибку e = u − c.

  1. Используйте стратегию выбора ошибки e. Стратегия выбора возвращает двоичную маску m (эквивалент списка индексов токенов), указывающую, какие M токенов следует обновить.

  2. Извлеките токен, выбранный с помощью описанной выше стратегии. На рисунке 2 это описано как произведение c × m; на практике это достигается путем выполнения операции «сбора» вдоль первой оси c. Собранные токены записываются здесь как

, который является выходом вентиля.

  1. Обновите эталонный токен до выбранного токена. Рисунок 2 описывает этот процесс как

;На практике используется операция «разброс». На первом временном шаге шлюз обновляет все токены (инициализируя u ← c и возвращая c˜ = c).

Буферный модуль: буферный модуль поддерживает тензор состояния.

, который отслеживает каждый входной токен

Когда буфер распределяет токены из f (c˜) в соответствующие позиции в b. Затем он возвращает обновленное значение b в качестве выходных данных, см. рисунок 3 ниже.

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

передается серии операций f (c˜) над каждым токеном, затем результирующий тензор

Передаётся в буфер, который восстановит полную форму.

Создайте трансформатор с возможностью резервирования

Чтобы воспользоваться вышеуказанной избыточностью времени, исследователи предложили схему модификации модуля «Трансформатор». На рисунке 4 ниже показана конструкция модуля Eventful Transformer. Этот метод может ускорить операции с отдельными токенами (например, MLP), а также значение ключа запроса и умножение значения внимания.

В модуле Operation Transformer для каждого токена выполняется множество операций для каждого токена, а значит, они не предполагают обмен информацией между токенами, в том числе линейные преобразования в MLP и MSA. Чтобы сэкономить вычислительные затраты, исследователи заявили, что операции, ориентированные на токены, не выбранные шлюзом, могут быть пропущены. Благодаря независимости между токенами это не меняет результат операции с выбранным токеном. См. рисунок 3.

В частности, исследователи использовали пару шлюзов-буферов для непрерывной последовательности операций над каждым токеном (включая преобразование W_qkv, преобразование W_p и MLP). Обратите внимание, что они также добавили буфер перед соединением пропуска, чтобы гарантировать правильное выравнивание токенов двух операндов сложения.

Стоимость операции для каждого токена пропорциональна количеству токенов. Шлюз может уменьшить это число с N до M, что также снижает вычислительные затраты на последующие операции для каждого токена в N/M раз.

Продукт «ключ-значение запроса». Теперь давайте посмотрим на продукт «ключ-значение запроса» B = qk^T.

На рисунке 5 ниже показан метод редкого обновления подмножества элементов в продукте запроса «ключ-значение» B.

Общая стоимость этих обновлений составляет 2NMD по сравнению со стоимостью вычисления B с нуля, которая составляет N^2D. Обратите внимание, что стоимость нового метода пропорциональна M — количеству токенов, выбранных гейтом. Когда M < N/2 (обновленные токены в это время составляют менее половины от общего количества), сумму расчета можно сохранить.

Продукт, ценящий внимание: исследователь предложил стратегию обновления, основанную на приращении Δ.

На рисунке 6 ниже показан недавно предложенный метод эффективного расчета трех дополнительных членов.

Аналогично, когда M < N/2, сумму расчета можно сохранить.

стратегия выбора токена

Важной особенностью Eventful Transformer является стратегия выбора токенов. Учитывая тензор ошибок шлюза e, цель такой политики — создать маску m, указывающую токены, которые следует обновить. Конкретные стратегии включают в себя:

Стратегия Top-r. Эта стратегия выбирает r токенов с наибольшей ошибкой e (здесь используется норма L2).

Пороговая стратегия: эта стратегия выбирает все токены, чья норма ошибки e превышает порог h.

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

Эксперимент

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

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

На рисунке 8 ниже показано сравнение методов и результаты экспериментов по абляции в задаче обнаружения видеоцелей.

На рисунке 9 ниже показаны экспериментальные результаты распознавания видеодействий.

В таблице 2 ниже показаны результаты времени работы (в миллисекундах) на центральном процессоре (Xeon Silver 4214, 2,2 ГГц) и графическом процессоре (NVIDIA RTX3090). Видно, что прирост скорости, вызванный избыточностью времени на графическом процессоре, может достигать 1,74. раз, а улучшение ЦП может достигать 2,47 раза.

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить