Источник: arXiv (препринт)
arXiv ID: 2105.03824v4 [cs.CL], 26 May 2022
Оригинальное название: FNet: Mixing Tokens with Fourier Transforms
Ссылка на препринт:
https://arxiv.org/abs/2105.03824
Код (как указано авторами):
https://github.com/google-research/google-research/tree/master/f_net
Лицензия оригинала: см. страницу arXiv для данной версии препринта.
Данный HTML-файл представляет собой неофициальный перевод статьи на русский язык,
выполненный для учебных/научно-образовательных целей. Перевод не является публикацией авторов оригинала.
FNET: СМЕШИВАНИЕ ТОКЕНОВ С ПОМОЩЬЮ ПРЕОБРАЗОВАНИЙ ФУРЬЕ
Первоисточник: Lee-Thorp J., Ainslie J., Eckstein I., Ontañón S. FNet: Mixing Tokens with Fourier Transforms. arXiv:2105.03824v4, 26 May 2022. arXiv.
James Lee-Thorp
Google Research
Joshua Ainslie
Google Research
Ilya Eckstein
Google Research
Santiago Ontañón
Google Research
В работе показано, что архитектуры Transformer-энкодеров можно заметно ускорить, если заменить подслои само-внимания (self-attention) на более простые операции «смешивания токенов» (token-mixing). Авторы рассматривают варианты смешивания на основе линейных преобразований, в частности — на основе дискретного преобразования Фурье (DFT) и его быстрого алгоритма (FFT). Предложенная модель FNet сохраняет ключевые элементы трансформера (нормализацию, остаточные связи, позиционные эмбеддинги и полносвязные FFN-блоки), но вместо внимания использует преобразование Фурье, которое выполняет глобальное смешивание признаков.
Эксперименты показывают, что при типичных задачах обучения с переносом (GLUE) FNet достигает близкого к BERT качества при существенно меньших вычислительных затратах: в ряде режимов обучение и вывод ускоряются примерно до ~1.7–1.9× для моделей «Base» и до ~1.4–1.8× для «Large». На бенчмарке длинных последовательностей Long-Range Arena (LRA) FNet демонстрирует сопоставимую точность с «vanilla Transformer», одновременно выигрывая по скорости и памяти (особенно на больших длинах).
Дополнительно исследуются гибридные конфигурации, в которых небольшое число слоёв внимания комбинируется со слоями Фурье-смешивания, что помогает частично «вернуть» точность BERT при сохранении значительной части ускорения.
Ключевые слова: Transformer, BERT, само-внимание, длинные последовательности, Fourier transform, FFT, token mixing, ускорение обучения.
1. Введение
Архитектуры Transformer стали базовым инструментом для обработки естественного языка и ряда смежных задач, обеспечив значительный прогресс в моделировании последовательностей. Однако практическое применение трансформеров ограничивается вычислительной стоимостью само-внимания: для последовательности длины \(n\) вычислительная сложность классического внимания масштабируется как \(O(n^2)\), что делает обучение и вывод дорогостоящими при больших \(n\).
Мотивация данной работы состоит в том, чтобы выделить и упростить ключевой «узел» трансформера: подслой, который отвечает за взаимодействия между токенами. В стандартном трансформере этим узлом выступает механизм внимания, но для некоторых задач можно заменить его на альтернативный слой «смешивания токенов» — функцию, которая глобально перемешивает представления токенов без вычисления матрицы внимания.
Авторы показывают, что такая замена может дать существенное ускорение при умеренной (а иногда и небольшой) потере качества. В частности, предлагается модель FNet, где вместо внимания используется дискретное преобразование Фурье (и на практике — FFT), выполняющее глобальное смешивание по оси токенов и по оси скрытых признаков.
Основные вклады работы:
- предложена простая архитектура FNet, где слой внимания заменён на преобразование Фурье как механизм глобального смешивания токенов;
- проведена оценка на задачах переноса (GLUE) и на Long-Range Arena (LRA), демонстрирующая практический компромисс «точность–скорость»;
- выполнен детальный анализ скорости и потребления памяти на разных аппаратных платформах (GPU/TPU) и при разных длинах последовательности;
- рассмотрены гибридные варианты (часть слоёв внимания + слои Фурье), а также альтернативные линейные преобразования.
2. Связанные работы
2.1. Преобразования Фурье в нейронных сетях
Преобразования Фурье и близкие ортогональные преобразования (например, дискретное косинусное преобразование) применялись в машинном обучении в разных контекстах — от обработки сигналов и изображений до построения признаковых представлений. В современных нейросетях Фурье-операторы встречаются как инструменты для эффективного глобального смешивания, а также как компоненты архитектур, которые заменяют или дополняют стандартные свёртки/внимание.
Важное преимущество FFT состоит в более благоприятной асимптотике по сравнению с прямым умножением на матрицу DFT: \(O(n \log n)\) вместо \(O(n^2)\). Это делает Фурье-подходы особенно интересными для длинных последовательностей.
2.2. Моделирование семантических отношений с помощью внимания
Само-внимание стало ключевым механизмом трансформера (Vaswani et al., 2017), позволяя модели строить контекстно-зависимые представления и обучать богатые зависимости между токенами. Тем не менее, матрица внимания вычисляется для каждой пары токенов, что и создаёт квадратичную стоимость по длине последовательности.
Различные работы предлагали модификации внимания, сокращающие стоимость или вводящие структурные ограничения (локальность, разреженность, аппроксимации ядра и т. п.). В данной статье рассматривается ещё более радикальный подход: заменить внимание на альтернативное, существенно более дешёвое смешивание токенов.
2.3. Эффективные модели для длинных последовательностей
Существует большая линия работ по «эффективным трансформерам», ориентированная на обработку длинных последовательностей: Longformer, Reformer, Performer, Linformer, BigBird и др. Эти модели сокращают асимптотику внимания либо за счёт разреженных паттернов внимания, либо за счёт низкоранговых/ядерных аппроксимаций.
На их фоне FNet интересен тем, что полностью исключает вычисление внимания и заменяет его крайне простой операцией, хорошо оптимизируемой на современных ускорителях.
3. Модель
3.1. Дискретное преобразование Фурье
Для сигнала (или вектора) длины \(N\) дискретное преобразование Фурье (DFT) определяется как:
DFT можно записать в матричной форме через матрицу Фурье \(W \in \mathbb{C}^{N \times N}\), где элементы имеют вид:
Тогда преобразование можно представить как умножение матриц. Прямое вычисление DFT требует \(O(N^2)\), но быстрый алгоритм FFT позволяет вычислять DFT за \(O(N \log N)\).
3.2. Архитектура FNet
FNet строится по мотивам BERT-подобного энкодера: входная последовательность токенов преобразуется в эмбеддинги (включая позиционные), далее проходит через стек одинаковых блоков. Отличие состоит в том, что подслой внимания заменён на слой Фурье-смешивания (Fourier mixing).
Пусть вход в блок имеет вид \(x \in \mathbb{R}^{n \times d_h}\), где \(n\) — длина последовательности, \(d_h\) — размерность скрытого пространства. В FNet смешивание определяется как применение двумерного преобразования Фурье (по оси токенов и по оси скрытых признаков) с последующим взятием действительной части:
Здесь \(\mathcal{F}_{\text{seq}}\) обозначает DFT/FFT по оси последовательности, а \(\mathcal{F}_{h}\) — DFT/FFT по оси скрытых признаков. В реализации применяются FFT-операторы.
Как и в стандартном Transformer/BERT-блоке, используются остаточные связи и слой нормализации, а также отдельный полносвязный подслой FFN (feed-forward network). В результате блок сохраняет общую структуру трансформера, но имеет значительно более дешёвый «mixing» подслой.
3.3. Реализация
На практике для вычисления преобразования Фурье используется FFT, что даёт выигрыш по времени на больших \(n\). Отдельно подчёркивается, что результат FFT комплекснозначный, но в FNet используется только действительная часть.
Важно также, что слой смешивания в базовой версии FNet не содержит обучаемых параметров (в отличие от внимания). Это влияет на размер модели и на стабильность обучения.
4. Результаты
Таблица 1 – Сложность слоя смешивания и размеры моделей
| Модель | Операции (на слой) | Параметры (Base) | Параметры (Large) |
|---|---|---|---|
| BERT | \(2 n^2 d_h + 4 n d_h^2\) | 112M | 339M |
| Linear | \(n^2 d_h + n d_h^2\) | 94M | 269M |
| FNet (mat) | \(n^2 d_h + n d_h^2\) | 83M | 238M |
| FNet (FFT) | \(n d_h \log(n) + n d_h \log(d_h)\) | 83M | 238M |
| Random | \(n^2 d_h + n d_h^2\) | 83M | 238M |
| FF-only | 0 | 83M | 238M |
4.1. Обучение с переносом (Transfer learning)
Авторы оценивают FNet в стандартной парадигме, аналогичной BERT: сначала предобучение (masked language modeling и next sentence prediction), затем дообучение на задачах GLUE. Рассматриваются модели размеров «Base» и «Large» и несколько базовых линий сравнения: (1) BERT как эталон, (2) Linear-смешивание, (3) Random-смешивание, (4) FF-only (без смешивания), а также (5) гибридные варианты FNet-Hybrid.
Таблица 2 – Результаты GLUE (точность/корреляция; выше — лучше)
| Модель | MNLI | QQP | QNLI | SST-2 | CoLA | STS-B | MRPC | RTE | Среднее |
|---|---|---|---|---|---|---|---|---|---|
| BERT-Base | 84/81 | 87 | 91 | 93 | 73 | 89 | 83 | 69 | 83.3 |
| Linear-Base | 74/75 | 84 | 80 | 94 | 67 | 67 | 83 | 69 | 77.0 |
| FNet-Base | 72/73 | 83 | 80 | 95 | 69 | 79 | 76 | 63 | 76.7 |
| Random-Base | 51/50 | 70 | 61 | 76 | 67 | 4 | 73 | 57 | 56.6 |
| FF-only-Base | 34/35 | 31 | 52 | 48 | 67 | FAIL | 73 | 54 | 49.3 |
| FNet-Hybrid-Base | 78/79 | 85 | 88 | 94 | 76 | 86 | 79 | 60 | 80.6 |
| BERT-Large | 88/88 | 88 | 92 | 95 | 71 | 88 | 86 | 66 | 84.7 |
| Linear-Large | 35/36 | 84 | 80 | 79 | 67 | 24 | 73 | 60 | 59.8 |
| FNet-Large | 78/76 | 85 | 85 | 94 | 78 | 84 | 88 | 69 | 81.9 |
| FNet-Hybrid-Large | 79/80 | 87 | 89 | 92 | 81 | 88 | 86 | 70 | 83.6 |
В целом FNet демонстрирует заметно более низкое качество по сравнению с BERT при чистом замещении внимания, но при этом выигрывает по скорости. Гибридные модели (FNet-Hybrid) частично компенсируют просадку качества, сохраняя при этом значительную долю ускорения.
Таблица 3 – Скорость предобучения и инференса (мс/батч; меньше — лучше)
| Модель | Предобучение (GPU) | Предобучение (TPU) | Инференс (GPU) | Инференс (TPU) | GFLOPS/пример |
|---|---|---|---|---|---|
| BERT-Base | 305 | 213 | 82 | 32 | 98 |
| Linear-Base | 199 (1.5×) | 149 (1.4×) | 52 (1.6×) | 20 (1.6×) | 71 (73%) |
| FNet-Base | 169 (1.8×) | 128 (1.7×) | 46 (1.8×) | 23 (1.4×) | 62 (63%) |
| Random-Base | 182 (1.7×) | 130 (1.6×) | 52 (1.6×) | 22 (1.4×) | 71 (73%) |
| FF-only-Base | 162 (1.9×) | 118 (1.8×) | 43 (1.9×) | 16 (2.0×) | 59 (60%) |
| FNet-Hybrid-Base | 198 (1.5×) | 149 (1.4×) | 51 (1.6×) | 24 (1.3×) | 68 (69%) |
| BERT-Large | OOM | 503 | 263 | 111 | 337 |
| Linear-Large | 592 | 397 (1.3×) | 170 (1.5×) | 108 (1.0×) | 247 (73%) |
| FNet-Large | 511 | 275 (1.8×) | 149 (1.8×) | 82 (1.4×) | 217 (64%) |
| FNet-Hybrid-Large | 541 | 294 (1.7×) | 157 (1.7×) | 84 (1.3×) | 227 (67%) |
Таблица показывает, что исключение внимания приводит к заметному ускорению. При этом абсолютные значения и относительные выигрыши зависят от аппаратной платформы и размера модели. Обозначение OOM означает, что запуск не помещается в память устройства.
4.2. Long-Range Arena (LRA)
Чтобы оценить пригодность FNet для длинных последовательностей, авторы используют набор задач Long-Range Arena (Tay et al., 2020), который включает различные типы входов (текст, последовательности токенов «ListOps», задачи поиска/извлечения, изображения и др.) и требует моделировать зависимости на больших расстояниях.
В таблице ниже приведено сравнение FNet с «vanilla Transformer» и рядом эффективных трансформеров. По точности FNet обычно сопоставим с базовым трансформером (а иногда и превосходит отдельные варианты), при этом демонстрирует лучшие масштабируемость и/или скорость при больших длинах.
Таблица 4(a) – LRA: точность по задачам (выше — лучше)
| Модель | ListOps | Text | Retrieval | Image | Pathfinder | Path-X | Среднее |
|---|---|---|---|---|---|---|---|
| Transformer (ours) | 36.06 | 61.54 | 59.67 | 41.51 | 80.38 | OOM | 55.83 |
| Linear (ours) | 33.75 | 53.35 | 58.95 | 41.04 | 83.69 | FAIL | 54.16 |
| FNet (ours) | 35.33 | 65.11 | 59.61 | 38.67 | 77.80 | FAIL | 55.30 |
| Transformer (*) | 36.37 | 64.27 | 57.46 | 42.44 | 71.40 | FAIL | 54.39 |
| Local Attention (*) | 15.82 | 52.98 | 53.39 | 41.46 | 66.63 | FAIL | 46.06 |
| Sparse Trans. (*) | 17.07 | 63.58 | 59.59 | 44.24 | 71.71 | FAIL | 51.24 |
| Longformer (*) | 35.63 | 62.85 | 56.89 | 42.22 | 69.71 | FAIL | 53.46 |
| Linformer (*) | 35.70 | 53.94 | 52.27 | 38.56 | 76.34 | FAIL | 51.36 |
| Reformer (*) | 37.27 | 56.10 | 53.40 | 38.07 | 68.50 | FAIL | 50.67 |
| Sinkhorn Trans. (*) | 33.67 | 61.20 | 53.83 | 41.23 | 67.45 | FAIL | 51.39 |
| Synthesizer (*) | 36.99 | 61.68 | 64.67 | 41.61 | 69.45 | FAIL | 52.88 |
| BigBird (*) | 36.05 | 64.02 | 59.29 | 40.83 | 74.87 | FAIL | 55.01 |
| Linear Trans. (*) | 16.13 | 65.90 | 53.09 | 42.34 | 75.30 | FAIL | 50.55 |
| Performer (*) | 18.01 | 65.40 | 53.82 | 42.77 | 77.05 | FAIL | 51.41 |
Примечание: в оригинале авторы отмечают, что по задаче Path-X многие модели либо не обучаются, либо показывают FAIL, а в ряде конфигураций возникают ограничения по памяти (OOM). Также «Среднее» не включает Path-X.
Таблица 4(b) – LRA (GPU): скорость обучения (steps/s) и пик памяти (GB) при росте длины
| Модель | Скорость обучения (steps/s) | Пиковая память (GB) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 512 | 1024 | 2048 | 4096 | 8192 | 512 | 1024 | 2048 | 4096 | 8192 | |
| Transformer | 21 | 10 | 4 | OOM | OOM | 1.6 | 4.0 | 12.2 | OOM | OOM |
| Linear | 34 (1.6×) | 19 (1.8×) | 9 (2.0×) | 4 | OOM | 0.9 | 1.6 | 2.8 | 6.9 | OOM |
| FNet (FFT) | 43 (2.0×) | 24 (2.3×) | 14 (3.2×) | 7 | 4 | 0.8 | 1.3 | 2.2 | 3.9 | 7.4 |
| Performer | 28 (1.3×) | 15 (1.5×) | 9 (1.9×) | 4 | 2 | 1.1 | 1.9 | 3.1 | 5.5 | 10.4 |
Таблица 4(c) – LRA (GPU): время инференса (мс/батч) для Text при росте длины
| Модель | 512 | 1024 | 2048 | 4096 | 8192 | 16384 |
|---|---|---|---|---|---|---|
| Transformer | 12 | 28 | 76 | 244 | OOM | OOM |
| Linear | 9 (1.4×) | 14 (2.0×) | 30 (2.6×) | 72 (3.4×) | 208 | OOM |
| FNet (FFT) | 8 (1.5×) | 12 (2.3×) | 23 (3.4×) | 43 (5.7×) | 83 | 164 |
| Performer | 11 (1.2×) | 17 (1.6×) | 32 (2.4×) | 60 (4.0×) | 116 | 238 |
5. Выводы
В статье предложена модель FNet, которая заменяет подслой само-внимания в Transformer-энкодере на слой смешивания токенов на основе преобразования Фурье. Такой подход радикально упрощает вычисления и снижает стоимость по времени и памяти, особенно заметно при длинных последовательностях.
Эксперименты на GLUE показывают, что FNet может достигать конкурентного качества при существенно меньших вычислительных затратах, а гибридные варианты позволяют приблизить качество к BERT, сохраняя ускорение. На LRA FNet демонстрирует сильные свойства масштабируемости: при росте длины последовательности выигрыши по скорости и памяти возрастают.
В качестве дальнейших направлений авторы рассматривают расширение гибридных схем, поиск более «информативных» безпараметрических mixing-преобразований и применение к другим модальностям.
Список литературы
- Joshua Ainslie, Santiago Ontañón, Chris Alberti, Vaclav Cvicek, and Philip Pham. 2020. ETC: Encoding long and structured data in transformers. In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 2680–2690.
- Iz Beltagy, Matthew E. Peters, and Arman Cohan. 2020. Longformer: The long-document transformer. arXiv preprint arXiv:2004.05150.
- Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan, Rewon Child, Aditya Rameshwari, Daniel M. Ziegler, Jeffrey Wu, Clemens Winter, Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, and Dario Amodei. 2020. Language models are few-shot learners. In Advances in Neural Information Processing Systems.
- Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc V. Le, and Ruslan Salakhutdinov. 2019. Transformer-XL: Attentive language models beyond a fixed-length context. In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, pages 2978–2988.
- Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of deep bidirectional transformers for language understanding. In Proceedings of NAACL-HLT, pages 4171–4186.
- Angela Fan, Edouard Grave, and Armand Joulin. 2021. Reducing transformer depth on demand with structured dropout. In International Conference on Learning Representations.
- Tianyu Gao, Xingcheng Yao, and Danqi Chen. 2021. SimCSE: Simple contrastive learning of sentence embeddings. In Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing, pages 6894–6910.
- James Lee-Thorp, Joshua Ainslie, Ilya Eckstein, and Santiago Ontañón. 2021. FNet: Mixing tokens with fourier transforms. arXiv preprint arXiv:2105.03824.
- Niki Parmar, Ashish Vaswani, Jakob Uszkoreit, Lukasz Kaiser, Noam Shazeer, Alexander Ku, and Dustin Tran. 2018. Image transformer. In International Conference on Machine Learning, pages 4055–4064.
- Nils Reimers and Iryna Gurevych. 2019. Sentence-BERT: Sentence embeddings using siamese BERT-networks. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing, pages 3982–3992.
- Kashif Rasul, Calvin Seward, and Dima Kuznetsov. 2021. Fastformer: Additive attention can be all you need. arXiv preprint arXiv:2108.09084.
- Roy Schwartz, Gabriel Stanovsky, Swabha Swayamdipta, Jesse Dodge, and Noah A. Smith. 2020. The right tool for the job: Matching model and instance complexities. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pages 6640–6651.
- Noam Shazeer. 2019. Fast transformer decoding: One write-head is all you need. arXiv preprint arXiv:1911.02150.
- Linfeng Song, Zhiguo Wang, Wael Hamza, Yue Zhang, and Daniel Gildea. 2019. Improving neural machine translation with multi-head attention. arXiv preprint arXiv:1905.05054.
- Yi Tay, Mostafa Dehghani, Dara Bahri, and Donald Metzler. 2020. Efficient transformers: A survey. arXiv preprint arXiv:2009.06732.
- Yi Tay, Mostafa Dehghani, Samira Abnar, Yikang Shen, Dara Bahri, Philip Pham, Jinfeng Rao, Liu Yang, Sebastian Ruder, and Donald Metzler. 2021. Long range arena: A benchmark for efficient transformers. In International Conference on Learning Representations.
- Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, pages 5998–6008.
- Sinong Wang, Belinda Z. Li, Madian Khabsa, Han Fang, and Hao Ma. 2020. Linformer: Self-attention with linear complexity. arXiv preprint arXiv:2006.04768.
- Yuhuai Wu, Mike Schuster, Zhifeng Chen, Quoc V. Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, Jeff Klingner, Apurva Shah, Melvin Johnson, Xiaobing Liu, Łukasz Kaiser, Stephan Gouws, Yoshikiyo Kato, Taku Kudo, Hideto Kazawa, Keith Stevens, George Kurian, Nishant Patil, Wei Wang, Cliff Young, Jason Smith, Jason Riesa, Alex Rudnick, Oriol Vinyals, Greg Corrado, Macduff Hughes, and Jeffrey Dean. 2016. Google’s neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144.
- Manzil Zaheer, Guru Guruganesh, Kumar Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontañón, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, and Amr Ahmed. 2020. Big bird: Transformers for longer sequences. In Advances in Neural Information Processing Systems, volume 33, pages 17283–17297.
A. Приложения
A.1. Подробности предобучения
Авторы используют те же «фиксированные» конфигурации (Base и Large), что и в оригинальном BERT: архитектурные параметры и базовые настройки оптимизации берутся из Devlin et al. (2019). Важно учитывать, что такая конфигурация исторически «настроена» под механизм внимания, поэтому результаты альтернативных mixing-слоёв могут быть частично смещены в пользу BERT.
В таблице 5 приведены метрики предобучения: значения функции потерь (Total/MLM/NSP) и точности по задачам MLM и NSP (на TPU). Несмотря на более слабые метрики точности, Linear и FNet обучаются существенно быстрее, чем BERT. Авторы также отмечают, что модели, у которых слой смешивания не содержит обучаемых параметров (FNet, Random, FF-only), демонстрируют более стабильную динамику обучения.
Таблица 5 – Метрики предобучения (как в PDF v4; TPU)
| Модель | Loss | Accuracy | |||
|---|---|---|---|---|---|
| Total | MLM | NSP | MLM | NSP | |
| BERT-B | 1.76 | 1.48 | 0.28 | 0.68 | 0.86 |
| Linear-B | 2.12 | 1.78 | 0.35 | 0.62 | 0.83 |
| FNet-B | 2.45 | 2.06 | 0.40 | 0.58 | 0.80 |
| Random-B | 5.02 | 4.48 | 0.55 | 0.26 | 0.70 |
| FF-only-B | 7.54 | 6.85 | 0.69 | 0.13 | 0.50 |
| FNet-H-B | 2.13 | 1.79 | 0.34 | 0.63 | 0.84 |
| BERT-L | 1.49 | 1.23 | 0.25 | 0.72 | 0.88 |
| Linear-L | 1.91 | 1.60 | 0.31 | 0.65 | 0.85 |
| FNet-L | 2.11 | 1.75 | 0.36 | 0.63 | 0.82 |
| FNet-H-L | 1.89 | 1.58 | 0.31 | 0.67 | 0.85 |
В таблице 6 приведены размеры моделей, использованные авторами для построения графиков (рисунки 2 и 3): скрытая размерность \(d_h\), число слоёв и количество параметров (в миллионах) для BERT, Linear, FNet и FNet-Hybrid (без учёта выходных проекционных слоёв).
Таблица 6 – Размеры моделей предобучения (строго как в PDF v4)
Примечание (как в оригинале): для всех моделей фиксируются \(d_{ff}=4d_h\) и число голов внимания \(h=d_h/64\). Каждая модель FNet-Hybrid («FNet-H») содержит 2 self-attention sublayers. Модели FNet-H с общим числом слоёв 2 исключены.
| Dimensions | Parameters (millions) | ||||
|---|---|---|---|---|---|
| \(d_h\) | Layers | BERT | Linear | FNet | FNet-H |
| 768 | 12 | 111 | 93 | 83 | 88 |
| 512 | 12 | 55 | 49 | 42 | 44 |
| 512 | 8 | 42 | 38 | 34 | 36 |
| 256 | 8 | 15 | 15 | 13 | 13 |
| 512 | 4 | 30 | 28 | 26 | 28 |
| 256 | 4 | 12 | 12 | 11 | 11 |
| 256 | 2 | 10 | 10 | 10 | - |
| 128 | 2 | 5 | 5 | 4 | - |
A.2. Результаты на TPU
Авторы отдельно анализируют характеристики FNet на TPU. В частности, отмечается, что для некоторых диапазонов длины последовательности реализация DFT через матричные операции (mat) может быть выгодной, тогда как FFT становится особенно полезной на больших длинах.
Таблица 7 – LRA Text (TPU): скорость обучения/инференса и пик памяти при росте длины
| Модель | Скорость обучения (steps/s) | |||||
|---|---|---|---|---|---|---|
| 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| Transformer | 8.0 | 5.6 | 1.7 | OOM | OOM | OOM |
| Linear | 9.4 (1.2×) | 9.1 (1.6×) | 7.6 (4.5×) | 3.9 | 1.4 | OOM |
| FNet (mat) | 9.5 (1.2×) | 9.1 (1.6×) | 6.1 (3.6×) | 3.0 | 0.8 | 0.2 |
| FNet (FFT) | 8.6 (1.1×) | 6.0 (1.1×) | 3.2 (1.9×) | 1.6 | 0.8 | 0.3 |
| Performer | 9.2 (1.2×) | 8.4 (1.5×) | 6.9 (4.1×) | 4.2 | 2.2 | 1.1 |
| Модель | Инференс (мс/батч) | |||||
|---|---|---|---|---|---|---|
| 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| Transformer | 7.0 | 13.2 | 39.4 | 129.9 | 490.2 | OOM |
| Linear | 5.6 (1.2×) | 6.5 (2.0×) | 9.6 (4.1×) | 20.4 (6.4×) | 54.6 (9.0×) | OOM |
| FNet (mat) | 6.0 (1.2×) | 7.7 (1.7×) | 15.4 (2.6×) | 40.7 (3.2×) | 137.0 (3.6×) | 454.5 |
| FNet (FFT) | 10.8 (0.7×) | 16.8 (0.8×) | 29.9 (1.3×) | 58.8 (2.2×) | 113.6 (4.3×) | 263.2 |
| Performer | 6.1 (1.2×) | 7.2 (1.8×) | 10.1 (3.9×) | 17.5 (7.4×) | 31.8 (15.4×) | 61.0 |
| Модель | Пиковая память (GB) | |||||
|---|---|---|---|---|---|---|
| 512 | 1024 | 2048 | 4096 | 8192 | 16384 | |
| Transformer | 1.1 | 2.1 | 5.8 | 9.1 | OOM | OOM |
| Linear | 0.9 | 1.1 | 1.9 | 4.9 | 14.8 | OOM |
| FNet (mat) | 0.8 | 0.9 | 1.3 | 2.2 | 4.8 | 11.9 |
| FNet (FFT) | 0.8 | 0.9 | 1.3 | 2.0 | 3.5 | 6.3 |
| Performer | 1.0 | 1.3 | 1.8 | 3.0 | 5.1 | 9.6 |
A.3. Альтернативные линейные преобразования
В качестве альтернативы DFT/FFT можно рассматривать другие ортогональные линейные преобразования (например, DCT, Hadamard, Hartley). Они также обеспечивают глобальное смешивание токенов, но по экспериментам авторов не дают заметного превосходства над Фурье-подходом в целевых настройках.
В частности, преобразование Хартли (Hartley transform) является вещественной альтернативой Фурье, что потенциально упрощает реализацию, однако практические результаты не показывают устойчивого выигрыша.
A.4. Профилирование скорости преобразования Фурье
Авторы отдельно профилируют скорость «mixing»-подслоя, чтобы понять, где именно возникает ускорение. В таблице 8 приведены времена выполнения только слоя смешивания (без FFN и прочих компонентов). Видно, что замена внимания на линейный слой и особенно на Фурье-смешивание резко уменьшает стоимость соответствующего подслоя.
Таблица 8 – Профилирование скорости слоя смешивания (мс)
| Mixing layer | Training (Base) | Inference (Base) | Training (Large) | Inference (Large) | ||||
|---|---|---|---|---|---|---|---|---|
| GPU | TPU | GPU | TPU | GPU | TPU | GPU | TPU | |
| Self-attention | 136 | 76 | 43 | 16 | 404 | 212 | 128 | 43 |
| Linear | 36 (3.7×) | 12 (6.1×) | 15 (2.8×) | 4 (3.9×) | 103 (3.9×) | 35 (6.1×) | 36 (3.6×) | 10 (4.5×) |
| FNet | 11 (12.2×) | 8 (9.9×) | 11 (4.0×) | 8 (2.1×) | 18 (22.2×) | 22 (9.7×) | 18 (7.3×) | 22 (2.0×) |
A.5. Гибридные модели
Гибридные модели (FNet-Hybrid) комбинируют небольшое число слоёв внимания со слоями Фурье-смешивания. Идея состоит в том, что внимание может давать критически важные «семантические» взаимодействия, а слои Фурье обеспечивают дешёвое глобальное смешивание на остальных уровнях.
Авторы исследуют, как расположение и число attention-слоёв влияет на метрики предобучения и скорость.
Таблица 9 – Абляции гибридной модели: число/расположение attention-слоёв
| Attention layers | Layout | Accuracy (MLM) | Accuracy (NSP) | Speed (ms/batch) |
|---|---|---|---|---|
| 2 | BOTTOM | 0.497 | 0.733 | 193 |
| 2 | MIDDLE | 0.499 | 0.686 | 196 |
| 2 | MIXED | 0.509 | 0.727 | 194 |
| 2 | TOP | 0.526 | 0.738 | 193 |
| 0 | TOP | 0.486 | 0.679 | 173 |
| 2 | TOP | 0.526 | 0.738 | 193 |
| 4 | TOP | 0.539 | 0.740 | 214 |
| 6 | TOP | 0.546 | 0.746 | 235 |
A.6. Сравнение с «vanilla Transformer» в LRA
В приложении авторы обсуждают различия между их собственной реализацией базового трансформера и реализациями/результатами, представленными в исходной работе по LRA и в последующих публикациях. Показатели скорости и памяти могут заметно отличаться из-за аппаратной платформы, деталей оптимизации, реализации слоёв внимания и особенностей батчинга.
Также подчёркивается, что «эффективные трансформеры» часто оптимизируются под конкретные диапазоны длины, а прямое сравнение требует аккуратного согласования конфигураций.
A.7. Код базовой модели (как в оригинале)
Ниже приведён листинг «ядра» модели (упрощённая иллюстрация основных классов и прямого прохода), как он представлен в приложении статьи.
# Listing 1: Core model code (from the paper)
import flax.linen as nn
import jax.numpy as jnp
from jax.numpy.fft import fft, fft2
class FourierTransformLayer(nn.Module):
def __call__(self, x):
# Apply 2D FFT along the last two dimensions.
return jnp.real(fft2(x))
class FeedForwardLayer(nn.Module):
hidden_dim: int
intermediate_dim: int
dropout_rate: float
def setup(self):
self.dense1 = nn.Dense(self.intermediate_dim)
self.dense2 = nn.Dense(self.hidden_dim)
self.dropout = nn.Dropout(self.dropout_rate)
def __call__(self, x, deterministic: bool):
x = self.dense1(x)
x = nn.gelu(x)
x = self.dropout(x, deterministic=deterministic)
x = self.dense2(x)
x = self.dropout(x, deterministic=deterministic)
return x
class FNetLayer(nn.Module):
hidden_dim: int
intermediate_dim: int
dropout_rate: float
def setup(self):
self.fourier = FourierTransformLayer()
self.ffn = FeedForwardLayer(self.hidden_dim, self.intermediate_dim, self.dropout_rate)
self.layer_norm1 = nn.LayerNorm()
self.layer_norm2 = nn.LayerNorm()
self.dropout = nn.Dropout(self.dropout_rate)
def __call__(self, x, deterministic: bool):
y = self.fourier(x)
x = x + self.dropout(y, deterministic=deterministic)
x = self.layer_norm1(x)
y = self.ffn(x, deterministic=deterministic)
x = x + self.dropout(y, deterministic=deterministic)
x = self.layer_norm2(x)
return x
class FNetEncoder(nn.Module):
num_layers: int
hidden_dim: int
intermediate_dim: int
dropout_rate: float
def setup(self):
self.layers = [
FNetLayer(self.hidden_dim, self.intermediate_dim, self.dropout_rate)
for _ in range(self.num_layers)
]
def __call__(self, x, deterministic: bool):
for layer in self.layers:
x = layer(x, deterministic=deterministic)
return x
Примечание: листинг воспроизведён по содержанию приложения статьи; для полной актуальной реализации см. репозиторий авторов (ссылка указана в начале документа).