This media is not supported in your browser
VIEW IN TELEGRAM
Свежий обзор PEFT (Parameter-Efficient Fine-Tuning) алгоритмов для LLM.

Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey
Zeyu Han, Chao Gao, Jinyang Liu, Jeff Zhang, Sai Qian Zhang
https://arxiv.org/abs/2403.14608

Пересказывать не буду, читайте как справочник :)
This media is not supported in your browser
VIEW IN TELEGRAM
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://www.tg-me.com/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, где-то заметно, где-то не очень.

Ну то есть типа как бы работает. Но есть вопросы, и их много.
Во-первых, три года назад такое уже было (Анжела Фан, Эдуард Грейв и ко, https://www.tg-me.com/gonzo_ML/508), но авторы относят эту работу (как и Recurrent memory transformer, RMT, Миша Бурцев и ко) к категории, где верхний уровень залинкован на нижний, и нету связи между промежуточными нейронами. В случае RMT это наверное верно (Миша, поправь меня если что), но для работы Анжелы Фан это вообще говоря не так, так агрегируются репрезентации всех уровней и агрегат получают тоже все уровни (см. картинку тут https://www.tg-me.com/gonzo_ML/510). То есть в текущей работе как бы то же самое, но без агрегации всех уровней, только с агрегацией внутри уровня. Ещё это похоже на другую ещё более старую работу того же Эдуарда Грейва про Continuous Cache (https://www.tg-me.com/gonzo_ML/516), тогда это применялось ещё к RNN. Ещё одно, на что это всё похоже, это DeepMind’овский Compressive Transformer (https://www.tg-me.com/gonzo_ML/165), где память копилась внутри каждого слоя (см. https://www.tg-me.com/gonzo_ML/166). Выглядит всё в общем как вариация на тему и непонятно, почему этим работам отведено так мало места или они описаны как сильно другие. Про работу Анжелы Фан в двух местах вообще сказаны разные вещи (и обе неправильные):

“The first approach is linking the topmost layer to the bottommost (Fan et al., 2020; Bulatov et al., 2022). However, this cannot model feedback between interneurons, and this has only one global working memory.”

“There have been attempts to incorporate feedback mechanisms into the Transformer, but most of them involve feeding the output activations from the top layer to the bottom (Bulatov et al., 2022; Chevalier et al., 2023) or to intermediate layers (Fan et al., 2020).”

Во-вторых, ну классно, что сравнили с BSWA, но было бы реально интересно сравнить со всем перечисленным. Я ставлю на то, что оно не лучше, ибо и относительно BSWA разница не везде заметная. Уж Compressive Transformer то можно было бы проверить, как никак тоже внутри Гугла сделан. Про него сказано так:

“There were papers that compressed information blockwise (Rae et al., 2019; Guo et al., 2019; Gupta & Berant, 2020; Mohtashami & Jaggi, 2023; Mu et al., 2023). However, in those papers, the information was not propagated infinitely

Я честно говоря не понимаю, почему в Compressive Transformer информация распространяется менее infinitely. В деталях предложенный механизм конечно отличается, но я не удивлюсь, если математически он сводится к тому же, не чувствуется концептуальной разницы. Если кто более умный видит разницу, подсветите плиз.

Вторая работа “Leave No Context Behind: Efficient Infinite Context Transformers with Infini-attention” (https://arxiv.org/abs/2404.07143) делает что-то очень похожее. Она прям явно добавляет compressive memory к механизму внимания. Глубоко разбирать не хочется, вот тут есть готовый разбор: https://www.tg-me.com/quant_prune_distill/247.

Про Compressive Transformer в статье сказано:

“However, the previous segment-level compression methods, including Compressive Transformers (Rae et al., 2019) still discard the memory entries of old segments in order to free up space for the new ones, limiting their context window to the most recent segments. This is in contrast to our Infini-attention that computes incremental memory updates to a fixed amount of memory parameters in a recurrent fashion.“

При этом в самой работе про Compressive Transformer явно написано:

“The TransformerXL discards past activations when they become sufficiently old (controlled by the size of the memory). The key principle of the Compressive Transformer is to compress these old memories, instead of discarding them, and store them in an additional compressed memory.”

Сравнения с ним тоже конечно нет, даже на его родном датасете PG19.

Я не понял прикола. Такое чувство, что у авторов размер контекста относительно предыдущих работ стал ограниченным, и мы теперь пересказываем старые работы с небольшими изменениями. Это какие-то дежавю трансформеры, ей богу. Просветите меня, если я чего-то важного в этих работах не понимаю.
This media is not supported in your browser
VIEW IN TELEGRAM
Прекрасное на ночь.

https://www.sscardapane.it/alice-book

Book: Alice’s Adventures in a differentiable wonderlandPermalink
Neural networks surround us, in the form of large language models, speech transcription systems, molecular discovery algorithms, robotics, and much more. Stripped of anything else, neural networks are compositions of differentiable primitives, and studying them means learning how to program and how to interact with these models, a particular example of what is called differentiable programming.

This primer is an introduction to this fascinating field imagined for someone, like Alice, who has just ventured into this strange differentiable wonderland. I overview the basics of optimizing a function via automatic differentiation, and a selection of the most common designs for handling sequences, graphs, texts, and audios. The focus is on a intuitive, self-contained introduction to the most important design techniques, including convolutional, attentional, and recurrent blocks, hoping to bridge the gap between theory and code (PyTorch and JAX) and leaving the reader capable of understanding some of the most advanced models out there, such as large language models (LLMs) and multimodal architectures.

Table of contents

1. Foreword and introduction
2. Mathematical preliminaries
3. Datasets and losses
4. Linear models
5. Fully-connected layers
6. Automatic differentiation
7. Convolutive layers
8. Convolutions beyond images
9. Scaling up models
10. Transformer models
11. Transformers in practice
12. Graph layers
13. Recurrent layers
14. Appendix A: Probability theory
15. Appendix B: Universal approximation in 1D

Book draft: https://arxiv.org/abs/2404.17625
2024/05/03 04:31:12
Back to Top
HTML Embed Code: