Снова на эту тему - с Телеграм-канала
DL Paper Reviews:
Цитата:
Leave No Context Behind: Efficient Infinite Context Transformers with Infini-attentionЧто?
Ну вот, оказывается, ребятам из Гугла пришло в голову обрубить затраты памяти, при этом не терять концы в бесконечно длинном тексте. В итоге они разработали такую вещь, как Infini-attention, чтобы прокачать свои трансформеры, делая их способными "видеть" и помнить огромные объемы информации без потери качества обработки.
Зачем?
Ребята явно заморочились вопросом, как обеспечить обработку текстов с лошадиными объемами данных, такие как целая книга или мега-длинная запись, не превращаясь в финансовую дыру из-за огромных затрат на память. Чтобы не превратиться в банкротов на этой золотой жиле, они и создали Infini-attention, который позволяет справляться с такими задачами более эффективно и экономно.
Как?
Какие-то маги связали стандартные механизмы внимания в трансформерах с короткозамкнутой памятью, чтобы держать весь пласт входящих данных постоянно на виду (а не забывать старое, как невнимательные ученики). Как по палочке, бац – и они создают составную память для аттеншн механизмов, позволяя трансформеру не потеряться и не утонуть в море данных. И всё это не превращая модель в суперкомпьютер из-за объемов памяти.
Что получилось?
Охереть, чего только они не достигли. Их модель не просто поддерживает память и делает свое дело, она это делает с несравненно меньшим использованием памяти, обрабатывая тексты до миллиона словил с небывалой точностью и качеством, расставляя новые стандарты и поднимая планку для отрасли.
В попытках найти эффективную альтернативу стандартному механизму внимания в трансфромере человечество перевело не одни джунгли в Амазонии, выбросило тучу CO2. За последние годы было предложено множество интересных механизмов эффективеого attention, state-space модели, и переосмыслены рекуррентные модели, но все подходы так или иначе уступали в выразительности первородному трансформеру.
И группа из Google предложила очередную модификацию внимания, способную работать с длинным контекстом с асимптотической линейной сложностью по вычислениям и компактной памятью, не зависящей от длины.
Метод
За основу берут еще старый добрый Transformer-XL (
https://arxiv.org/abs/1901.02860), который считает внимание в пределах некоторого сегмента фиксированного размера. Однако, ограниченность такого подхода в том, что k, v кэши считаются только для последнего сегмента, потому нет возможности учитывать контекст с прошлых окон, и суммарный контекст ограничен размером сегмента на глубину сети.
В данной работе предложили привнести рекуррентность в Transformer-XL и поддерживают два состояния памяти:
(1) M - размера IR d_key ×d_value в числителе
(2) z - размера IR dkey в знаменателе
И некая комбинация, составленная из этих сущностей и Query в текущем сегменте выступает в качестве одного из членов в итоговой формуле attention, которая будет определена чуть ниже.
Состояние M обновляется после каждого сегмента через некоторую формулу с внешним произведением key, valuе в текущем сегменте. А z - через сумму от ключей, к которым применили функцию активации (ELU + 1), в данном сегменте (т.е z - является по существу скользящей суммой).
Итоговый контекст получается как взвешенная сумма локального attention в данном окне и полученного выше контекста. Относительный вес каждого слагаемого получается из обучаемого скаляра (отдельного для каждой головы внимания).
Эксперименты
Метод валидируют на бенчмарках по языковому моделированию с длинным контекстом (PG-19, arXiv-math). passkey retrieval и суммаризации книг (500k контекста).
В первом эксперименте берут трансформер с 12 слоями и hidden_dim =1024.
По перплексии метод заметно опережает конкурентные подходы (Transformer-XL, Memorizing Transformers (
https://arxiv.org/abs/2203.08913)), при этом имея значительно меньшее потребление памяти.
Infini-Transformer c контекстом вплоть до 1M токенов.
На BookSum Infini-Transformer так же бьет BART (
https://arxiv.org/abs/1910.13461) и Primera (
https://arxiv.org/abs/2110.08499), и обе с опцией (+ Unlimiformer (
https://arxiv.org/abs/2305.01625)), будто бы существенно, но не радикально.
Выводы
Идея объединить локальное контекстное окно с рекуррентной памятью не выглядит принципиально новой. Экспериментальная валидация в статье недостаточна, не хватает очевидного сравнения с теми же state-space моделями. Как мне кажется, предложенный подход вряд ли сможет успешно решать с хорошей точность задачи, требующие селективности и способности запоминать несколько фактов одновременно из далекого прошлого, разнесенных по времени с произвольными интервалами между ними.