Sparse-MLP Архитектура полностью MLP с условным вычислением Vision MLP

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

Sparse-MLP Архитектура полностью MLP с условным вычислением Vision MLP

Оригинальный документ:у-у-у. yuque.com/pulllingheads/papers…

image.png

Читать статью из аннотации

Mixture-of-Experts (MoE) with sparse conditional computation has been proved an effective architecture for scaling attention-based models to more parameters with comparable computation cost. In this paper, we propose Sparse-MLP, scaling the recent MLP-Mixer model with sparse MoE layers, to achieve a more computation-efficient architecture.

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

We replace a subset of dense MLP blocks in the MLP-Mixer model with Sparse blocks. In each Sparse block, we apply two stages of MoE layers:

  1. one with MLP experts mixing information within channels along image patch dimension,
  2. one with MLP experts mixing information within patches along the channel dimension.

MoE используется для преобразования как для пространственного MLP, так и для канального MLP.

Besides, to reduce computational cost in routing and improve expert capacity, we design Re-represent layers in each Sparse block. These layers are to re-scale image representations by two simple but effective linear transformations.

Здесь вводится структура, которая масштабирует размер объекта, чтобы уменьшить объем вычислений.

When pre-training on ImageNet-1k with MoCo v3 algorithm, our models can outperform dense MLP models by 2.5% on ImageNet Top-1 accuracy with fewer parameters and computational cost. On small-scale downstream image classification tasks, i.e., Cifar10 and Cifar100, our Sparse-MLP can still achieve better performance than baselines.

основное содержание

image.png

  • Техника MoE введена в модель MLP для замены исходного уровня MLP. Среди них за счет построения нескольких экспертов с разными весами емкость и выразительная способность модели расширяются, а количество фактически используемых экспертов ограничивается механизмом закрытой маршрутизации, то есть так называемым условным вычислением. Чтобы не приносить слишком много вычислительных затрат и потери времени.
  • Из-за большой разницы между количеством исходных пространственных токенов и количеством каналов это приведет к несбалансированным вычислительным затратам при маршрутизации и экспертном прямом расчете Сбалансированный (перепроецированный с линейными слоями), что гарантирует более сбалансированный и эффективный процесс расчета .

Смесь экспертов

основная операция

MoE(x)=i=1NG(x)iEi(x),G(x)=TopK(softmax(Wg(x)+ϵ)):RDRN,Ei(x):RDRD.\text{MoE}(x) = \sum_{i=1}^{N}G(x)_iE_i(x), \, G(x) = \text{TopK}(\text{softmax}(W_g(x) + \epsilon)):\mathbb{R}^{D} \rightarrow \mathbb{R}^{N}, \, E_i(x):\mathbb{R}^D \rightarrow \mathbb{R}^D.

Здесь слева направо содержитсяNNОперация агрегирования уровней MoE экспертов для сети шлюзов, которая вычисляет веса маршрутизации, обусловленные входными данными (нормализованные веса генерируются с использованием softmax, здесь вводится шумϵN(0,1N2)\epsilon \sim \mathcal{N}(0, \frac{1}{N^2})для изучения лучших стратегий распределения), иiiслой экспертов.

Похожие работы

  • Идея MoE в основном исходит из статьи в ICLR 2017: НЕВЕРОЯТНО БОЛЬШИЕ НЕЙРОННЫЕ СЕТИ: РЕДКИЙ СБОРНЫЙ СМЕШАННЫЙ СЛОЙ ЭКСПЕРТОВ (Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton and Jeff Dean), в котором упоминается, что «The capacity of a neural network to absorb information is limited by its number of parameters. Conditional computation, where parts of the network are active on a per-example basis, has been proposed in theory as a way of dramatically increasing model capacity without a proportional increase in computation.В этом документе эксперты обучаются через обучаемую вентильную сеть, вставляя несколько экспертных структур в середину LSTM.редкая комбинация, тем самым увеличивая мощность модели более чем в 1000 раз с небольшой потерей эффективности. За исключением того, что основная идея аналогична этой статье, стратегия оптимизации структуры MoE в основном такая же.
  • Кроме того, у этой работы SparseMLP есть потенциальные общие черты с работой авторов по улучшению ViT, «Иди шире, а не глубже».

image.png

Go Wider Instead of Deeper

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

Подробности этой статьи

В этой статье в основном заменяются последние несколько слоев пространства и канала MLP в Mixer-MLP структурой MoE (включая структуры пространства и канала). Такая настройка помогает ввести больше параметров и улучшить возможности модели.

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

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

Убыток состоит из двух частей:

  • Потеря важности: цель состоит в том, чтобы максимально приблизить важность каждого эксперта в процессе распространения информации, чтобы гарантировать, что каждый эксперт может быть выбран в максимально возможной степени и полностью обучен.
    • С этой целью вводится определение значимости экспертов:Imp(X)={xеXsoftmax(Wgx)i}i=1N\text{Imp} (X) = \{\sum_{x \in X} \text{softmax} (W_gx)_i\}_{i=1}^{N}.
    • ВесаWgеRD×NW_g \in \mathbb{R}^{D \times N}Представляет матрицу весов стробирования слоя MoE, которая преобразует входныеDDобъемныйxxсопоставляется с количеством экспертовNN, каждый образец получается после обработки softmaxxxВес, присвоенный каждому эксперту. здесь будет сiiВеса, соответствующие каждому вводу, относящемуся к каждому эксперту, суммируются для получения их ввода для партии.XXмера важности. Это может отражать относительную роль каждого эксперта в процессе назначения и обработки общего ввода по сравнению с другими экспертами.
    • Поэтому, чтобы максимально уравновесить важность каждого эксперта, чтобы каждый мог «выступить» лучше, важность каждого эксперта должна быть максимально сбалансирована. Затем используйте квадрат коэффициента вариации важности (the squared coefficient of variation of the importance distribution over experts) как потеря значимости:Limp(X)=(std(Imp(X))mean(Imp(X)))2L_{imp}(X) = (\frac{\text{std}(\text{Imp}(X))}{\text{mean}(\text{Imp}(X))})^2.

image.png

бумагаScaling Vision with Sparse Mixture of Expertsтаблицы 4

  • Потеря нагрузки: Потеря важности направлена ​​на то, чтобы все эксперты имели в среднем одинаковые веса маршрутизации. Но, к сожалению, нетрудно представить себе эти конфигурации маршрутизации, которые, кажется, имеют в целом сбалансированные веса, и все же небольшое количество экспертов получает все назначения (см. таблицу выше, хотя сумма весов экспертов 1~4 равно 2, но в финальном отборе выбираются только эксперты 1 и 3, а 2 не может быть изучен должным образом).
    • Для этого здесь вводится определение экспертной нагрузки:Load(X)={xеXpi(x)}i=1N\text{Load}(X) = \{\sum_{x \in X} p_i(x)\}_{i=1}^{N}.
    • pi(x):=Pr(G(x)i>=thresholdk(G(x)))p_i(x) := Pr(G(x)_i >= threshold_k(G(x))), с указанием экспертаiiСумма вероятностей для каждой выборки, которая будет выбрана (стробированный маршрут больше порога, т. е. в топе k экспертов с максимальными весами) при вводе пакетных данных.
    • Эта вероятность не кажется простой в обращении, но авторы ввели здесь нормальное распределение шума, чтобы все можно было вычислить, примерно следующим образом, и, наконец, вычисление вероятности нормально распределенной переменной:
    pi(x):=Pr(G(x)i>=thresholdk(G(x)))=Pr(Wg(x)i+ϵ>=thresholdk(Wg(x)+ϵ))=Pr(ϵ>=thresholdk(Wg(x)+ϵ)Wg(x)i)p_i(x) := Pr(G(x)_i >= threshold_k(G(x))) = Pr(W_g(x)_i + \epsilon >= threshold_k(W_g(x) + \epsilon)) = Pr(\epsilon >= threshold_k(W_g(x) + \epsilon) - W_g(x)_i)
    • Потеря нагрузки выражается как квадрат коэффициента вариации распределения нагрузки:LLoad(X)=(std(Load(X))mean(Load(X)))2L_{Load}(X)=(\frac{\text{std}(\text{Load}(X))}{\text{mean}(\text{Load}(X))})^2.

Таким образом, потери на уровне MoE:Laux=λ(12Limp+12Lload)L_{aux} = \lambda(\frac{1}{2}L_{imp} + \frac{1}{2}L_{load}). Гиперпараметры здесьλ\lambdaИспользуется для управления балансом дополнительных потерь при поощрении маршрутизации между экспертами, а также для обеспечения того, чтобы они не превышали исходные потери модели. На самом деле он установлен на 0,01, как и в предыдущей рабочей настройке. Согласно предыдущей работе, влияние этого параметра на производительность неочевидно.

Помимо настройки самого уровня с несколькими экспертами, учтите, что в исходном MLP-Mixer метод обработки токенов на основе исправлений приводит к тому, что количество пространственных токенов составляет менее 1/3 от количества каналов. Для MOE, то есть уровня MOE на пространственном уровне, это приведет к несбалансированным затратам на вычисления между частью маршрутизации и экспертной частью. Поэтому авторы вводят слой репрезентации для масштабирования пространственных и канальных измерений ввода и вывода MOE. Среди них в основном обрабатывается через специальный линейный слой, псевдокод выглядит следующим образом:

image.png

фактическая установкаS1=2S,C1=C/2S_1 = 2S, C_1 = C/2.

Здесь есть два слоя, один для вывода и один для ввода. Они объединены в пару, чтобы сбалансировать работу MOE, заключенных в середине (уменьшить количество каналов и увеличить количество пространственных патчей при расчете MOE).

Результаты экспериментов

image.png

We find that scaling MLP models in parameters and training them from scratch with limited training data will lead to an overfitting problem. Such finding is consistent with previous work on MLP models (Tolstikhin et al. 2021) and attention based models (Chen, Xie, and He 2021; Dosovitskiy et al. 2020; Xue et al. 2021).

In order to better obtain model capacity, we adopt MoCo v3 algorithm as our default self-supervised training algorithm (He et al. 2019; Chen et al. 2020b; Chen, Xie, and He 2021), and fine-tune models on downstream image classification tasks.

image.png

Все модели контролируются с помощью MoCo V3.

image.png

Эксперименты по абляции в статье в основном обсуждают следующие четыре момента:

  • Влияние количества экспертов

image.png

Здесь мы фиксируем MoEs и MoEc соответственно для проведения эксперимента.Можно видеть, что увеличение MoEs может привести к улучшению производительности. Однако MoEc приведет к уменьшению, которое, по мнению авторов, вызвано переоснащением (о феномене, согласно которому увеличение числа экспертов по характеристикам канала приводит к переоснащению в предыдущей работе авторов).Go Wider Instead of Deeperтакже отражено в).

  • Количество экспертов для маршрутизации K

image.png

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

  • Расположение разреженных блоков, т. е. расположение структуры МО.

image.png

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

  • Роль слоя повторной характеристики

image.png

Видно, что хотя скорость и улучшается после использования слоя перехарактеризации, производительность не снижается, а улучшается. Это интересное явление. Но разумного объяснения и анализа автор не дал. Достаточно упомянуть его роль в балансировке маршрутизации и вычислительных затрат экспертов. Будет ли такая структура напрямую использоваться в MLP-Mixer для улучшения?

Ссылка на ссылку