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

Dejavu Transformers. TransformerFAM: Feedback attention is working memory....

Dejavu Transformers

TransformerFAM: Feedback attention is working memory
Dongseong Hwang, Weiran Wang, Zhuoyuan Huo, Khe Chai Sim, Pedro Moreno Mengibar
Статья: https://arxiv.org/abs/2404.09173

Leave No Context Behind: Efficient Infinite Context Transformers with Infini-attention
Tsendsuren Munkhdalai, Manaal Faruqui, Siddharth Gopal
Статья: https://arxiv.org/abs/2404.07143

От Гугла вышли две в чём-то близкие статьи, написанные разными множествами людей, но вероятно всё-таки одной группой, потому что многие из них пересекаются в ещё одной близкой публикации https://arxiv.org/abs/2403.19709.

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

Первая работа про трансформер с Feedback Attention Memory (FAM) применяет механизм внимания к своим собственным латентным репрезентациям через обратную связь. Репрезентации каждого слоя подаются ему же при работе со следующим токеном. Авторы считают, что это ведёт к возникновению рабочей памяти в трансформере.

Про что они пишут, это как бы Block Sliding Window Attention (BSWA) по аналогии с Longformer (https://t.me/gonzo_ML/292), где в каждый блок добавлены виртуальные активации FAM. Механизм внимания смотрит теперь на текущий блок, предыдущие несколько сегментов (память) и предыдущий FAM (рабочая память, где потенциально всё может накапливаться бесконечно). Затем для текущего блока по его выходам и предыдущему FAM через внимание вычисляется новый FAM, то есть как бы происходит компрессия и обновление памяти. Это идейно напоминает memory tokens предложенные Мишей Бурцевым ещё давно, только с более хитрым механизмом расчёта.

Это похоже на много что известное. Transformer-XL тоже имел память в виде предыдущих сегментов и умел обращаться к активациям более низких уровней из прошлого. TransformerBSWA это практически то же самое, только в отличие от XL, здесь не используется ”stop gradient” на сегменте с памятью. А в TransformerFAM мы уже как бы обращаемся к активациям того же самого уровня.

Реализация этого достигается без добавления новых весов в трансформерные слои, всё работает на конкатенации входных данных блока и FAM, а также модификацией маски внимания, чтобы реализовать FAM. Ну если я правильно всё понял. Экспериментировали с блоками длины 1024 + FAM длины 64. Отдельная хитрая тема, как инициализировать начальный FAM. Сделали это через prompt tuning

Для экспериментов брали модели Flan-PaLM (1B, 8B, 24B). К ней добавляли BSWA или FAM и файнтюнили через LoRA. Для сравнения сделали ещё Transformer-XL, но он по результатам оказался неотличим от BSWA.

Проверяли на retrieval задаче PassKey, сравнивали с BSWA с разным количеством блоков памяти (M1-M12, от 1 до 12 блоков соответственно), FAM всех побил. Также проверили на куче требующих длинного контекста задач, использовавшихся при оценке Gemini. Тут FAM везде бьёт BSWA, где-то заметно, где-то не очень.

Ну то есть типа как бы работает. Но есть вопросы, и их много.