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, где-то заметно, где-то не очень.
Ну то есть типа как бы работает. Но есть вопросы, и их много.
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, где-то заметно, где-то не очень.
Ну то есть типа как бы работает. Но есть вопросы, и их много.
Источник: gonzo-обзоры ML статей
2024-05-01 12:02:47