Конец эпохи Attention? Как Google заменил внимание школьной математикой

Yannic Kilcher 30 тыс. 34 мин 4 мин 21.05.2021
Главное

Исследователи из Google Research предложили радикальный подход к оптимизации нейросетевых архитектур, заменив классический механизм внимания в трансформерах на стандартное преобразование Фурье. В своем видео популярный AI-блогер Янник Килчер (Yannic Kilcher) подробно разбирает научную статью «FNet: Mixing Tokens with Fourier Transforms». Он приходит к выводу, что для успеха современных моделей последовательностей критически важно эффективное перемешивание информации между токенами, а не точечная, ресурсоемкая маршрутизация.

⚠️ Проблема квадратичной сложности и тупик традиционного внимания 0:00

Янник Килчер отмечает, что долгое время в сфере глубокого обучения доминировали трансформеры, базовые слои которых состоят из подслоев внимания (attention) и полносвязных подслоев (feed-forward). Полносвязные слои работают индивидуально для каждого токена, благодаря чему их веса легко масштабировать и параллелить. Однако сам механизм внимания всегда оставался «костью в горле» для разработчиков из-за огромных требований к вычислительным ресурсам и памяти. Задача внимания — выполнять функцию маршрутизации, определяя, какие данные из текущего слоя должны перейти в определенные участки следующего.

Вычислительная и пространственная сложность этого алгоритма составляет $O(N^2)$, где $N$ — длина последовательности. Это жестко ограничивает размер контекста, который способна обработать нейросеть. По словам ведущего, именно это ограничение долгое время мешало применять трансформеры в компьютерном зрении, пока инженеры не догадались разбивать изображения на отдельные патчи вместо попиксельного анализа. В течение последних двух лет исследователи пытались линеаризовать внимание, создавая такие архитектуры, как Linformer, Longformer, Reformer, Performer и другие, чтобы снизить сложность до $O(N)$ или $O(N \log N)$. Теперь же, как утверждает Янник Килчер, наступила новая эра: ученые задались вопросом, нужен ли нам механизм внимания вообще.

🧬 Архитектура FNet: как заменить внимание на математическую функцию 4:59

Вместо привычного блока внимания авторы статьи из Google Research предлагают использовать архитектуру FNet. На первый взгляд модель выглядит идентично классическому BERT: на входе текст разбивается на токены, преобразуется в эмбеддинги слов, позиций и типов, а затем передается в стек из $N$ одинаковых слоев. Разница кроется исключительно в одном подслое — вместо механизма внимания там находится слой Фурье.

На вход подается серия векторов (токенов), к которым применяется дискретное преобразование Фурье. Сначала одномерное преобразование Фурье выполняется по скрытому измерению (hidden domain), а затем — по измерению последовательности (sequence domain). При этом от результата берется только вещественная (реальная) часть. Янник Килчер подчеркивает критически важную деталь: в самом слое Фурье нет абсолютно никаких обучаемых параметров. Преобразование Фурье — это просто фиксированная обратимая линейная трансформация данных, которую можно представить в виде умножения на заранее построенную матрицу синусов и косинусов. Единственными обучаемыми весами в этой части сети остаются параметры последующего полносвязного слоя (feed-forward).

🔄 Философия «перемешивания токенов» против точной маршрутизации 11:16

По мнению Янника Килчера, главная ценность статьи заключается не в самом преобразовании Фурье, а в концепции «перемешивания токенов» (token mixing). Для понимания всей последовательности информация должна циркулировать между ее элементами. В сверточных нейросетях (CNN) этот поток ограничен локальной окрестностью, что логично для изображений, где соседние пиксели связаны сильнее всего. Но в текстах локальность часто не работает. Ведущий приводит пример из немецкого языка, где глагол в самом конце предложения может напрямую ссылаться на второе слово в предложении.

Механизм внимания анализировал абсолютно все попарные связи и выбирал лучшие из них. Однако новые исследования (включая архитектуры класса MLP-Mixer) показывают, что для большинства задач точная маршрутизация может быть не так важна, как сам факт того, что информация просто перемешивается. Преобразование Фурье разрушает временную область и распределяет влияние каждого токена по всем частотам последовательности. Когда затем применяется полносвязный слой, он работает уже не с изолированными токенами, а с частотами, отражающими структуру всей строки целиком. Это позволяет эффективно передавать информацию из любого конца последовательности в другой всего за два шага вместо одного сложного. Преобразование Фурье было выбрано авторами просто потому, что оно доступно в любой математической библиотеке, однако, как считает ведущий, могут существовать и более эффективные линейные трансформации.

📊 Результаты тестов: скорость в обмен на точность 21:52

Янник Килчер заявляет, что эпоха погони за абсолютным рекордом точности (SOTA) постепенно сменяется эпохой компромиссов, когда модели работают чуть хуже, но значительно быстрее. В экспериментах авторы сравнивали базовый BERT со следующими альтернативами:

На этапе предобучения (в задачах маскированного языкового моделирования) классический BERT безоговорочно побеждает по точности. За ним следует Linear Encoder, а FNet обходит случайный энкодер, что доказывает: структура преобразования Фурье имеет значение и это не просто случайный шум. Однако на стороне FNet колоссальное преимущество в скорости: модель демонстрирует приличный прирост на TPU и огромный — на GPU.

На бенчмарке GLUE классический BERT также лидирует в большинстве задач, хотя гибридная версия FNet Hybrid и линейный энкодер идут следом с минимальным отставанием. Ведущий призывает относиться к этим бенчмаркам с осторожностью из-за высокой дисперсии результатов между разными запусками обучения. В тестах на длинный контекст Long-Range Arena (LRA) трансформеры по-прежнему точнее, но альтернативные модели вроде FNet расходуют значительно меньше памяти и вычислительных ресурсов, благодаря чему не падают с ошибками нехватки памяти (OOM) и обучаются кратно быстрее. В конечном итоге, для многих практических задач архитектуры без внимания могут стать отличной альтернативой.

💬 Цитаты

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

Янник Килчер 15:40

«Мы вышли из эры «я хочу новый SOTA» и перешли в эру «это работает почти так же хорошо, но в разы быстрее».»

Янник Килчер 21:52
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Механизм внимания (Attention)
Компонент нейросети, определяющий степень связи и важности одних токенов последовательности для других при формировании контекста.
Преобразование Фурье
Математическая операция, раскладывающая сигнал или последовательность данных на набор частотных компонентов.
Токен
Минимальная единица текста (слово или его часть), обрабатываемая языковой моделью.
Бенчмарк GLUE
Набор разнообразных стандартизированных тестов для оценки качества понимания естественного языка ИИ-моделями.
SOTA (State-of-the-Art)
Наивысший достигнутый уровень технологического или научного развития в определенной области на текущий момент.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект FNet Преобразование Фурье Transformers Янник Кильхер Google Research