Нейролента - подборка новостей о нейронных сетях, ChatGPT

One Wide Feedforward is All You Need. Telmo...

One Wide Feedforward is All You Need
Telmo Pessoa Pires, António V. Lopes, Yannick Assogba, Hendra Setiawan
Статья: https://arxiv.org/abs/2309.01826

Забавная работа про трансформеры из серии, чего бы там можно было выкинуть.

Традиционные блоки трансформеров состоят из двух больших компонент: self-attention и полносвязный слой (FFN). Роль FFN типа в добавлении нелинейности в преобразования эмбеддингов токенов.

Но оказывается, скрипач не нужен. Можно выкинуть блок FFN из всего декодера, и оставить только один шаренный FFN в энкодере, и будет всё ок (с точки зрения точности на выходе). Ну и FFN можно сделать сильно шире, чтобы количество параметров итогового трансформера совпадало с исходным классической архитектуры. Такую конфигурацию называют One Wide FFN.

Проверяют соответственно на полном трансформере (encoder-decoder) на задаче перевода, оценивают по BLEU. Я бы для такой задачи выбрал что-то менее проблемное и более математически формализованное, честно говоря. Классификацию там какую-нибудь или предсказание какого-то ряда, или ещё что-то, но не перевод с BLEU.

Архитектура Transformer Big: N_enc = N_dec = 6, d_model = 1024, d_ff = 4096, 16 голов внимания. Есть вариант Base, где размерности (но не количество) слоёв и число голов в два раза меньше, а также глубокий энкодер и мелкий декодер, и на одном декодере тоже проверяли.

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

Она на 41% легче по параметрам, на 22% быстрее на инференс, и всё это ценой в -1.0 BLEU. А если теперь FFN расширить так, чтобы суммарно параметров осталось столько же, то +0.9 BLEU от базовой модели и почти такое же ускорение, как у предыдущей модели. Но ещё большее расширение FFN уже не помогает, списывают на маленький датасет.

Кроме точности смотрят также на похожесть внутренних репрезентаций (через Linear Centered Kernel Alignment, CKA) и семантических пространств (через Local Neighborhood Similarity, LNS). Тут в целом довольно близко всё к бейзлайну. Хотя у более широкой модели оно подальше, причем в основном в семантическом пространстве.

Заодно на хитмепах похожести репрезентаций видно, что соседние слои обычно имеют близкие репрезентации и наверное они избыточны, от выкидывания одного слоя сильно хуже не станет. У One Wide FFN этот паттерн интереснее, там проявляется шахматная картинка и близки оказываются слои через один. Хз что это значит, но авторы считают, что модель выучивает какие-то нетривиальные трансформации и избыточность сети понижается.

Не прорыв, но забавно в общем. Не удивлюсь, если однажды придём к какой-то одной универсально лучшей FFN, которую проще будет зашить в железо :)