Google похоронила трансформеры? Как Memory Caching возвращает RNN в большую игру

Последние семь лет вся индустрия фактически стояла на одной архитектуре. ChatGPT, Claude, Gemini, любая заметная модель внутри устроена одинаково: это трансформер. Он выиграл гонку, потому что умеет держать в памяти весь контекст и аккуратно сопоставлять каждое слово с каждым.

У этой красоты есть цена, и она квадратичная. Чтобы запомнить контекст, трансформер сравнивает каждое слово со всеми остальными. Удлиняете промпт вдвое, и вычислительные затраты растут вчетверо. Именно поэтому длинный контекст стоит так дорого и так быстро упирается в потолок по железу.

Альтернатива была всегда. Рекуррентные сети, те самые RNN, работают линейно и дешево: они читают текст по одному токену и обновляют компактное скрытое состояние. Проблема в том, что память у них фиксированного размера. Дайте RNN длинный документ, и она начинает забывать начало, грубо говоря, страдает от амнезии. Из-за этого в задачах на точное вспоминание фактов рекуррентные сети традиционно проигрывали трансформерам.

Исследователи Google Research вместе с коллегами из Cornell и USC предложили решение, которое выглядит почти обидно простым. Статья называется Memory Caching: RNNs with Growing Memory. Идея в том, чтобы дать рекуррентной сети кнопку «сохранить». Во время чтения модель кэширует контрольные точки своих скрытых состояний, и объем памяти перестает быть жестко фиксированным.

Получается гибкий компромисс между двумя крайностями. Чистая RNN живет со сложностью порядка O(L) и фиксированной памятью. Трансформер дает O(L в квадрате) и память, которая растет вместе с длиной. Memory Caching ставит регулятор между ними: память RNN теперь может расти по мере удлинения последовательности, но без взрывного квадратичного счета.

Авторы описывают четыре варианта механизма, среди них версии с гейтинговой агрегацией и с разреженным селективным отбором контрольных точек. Подход работает и на линейных, и на глубоких модулях памяти, то есть это не узкий трюк под одну архитектуру, а общий прием.

Что с результатами. На задачах языкового моделирования и понимания длинного контекста Memory Caching заметно подтягивает рекуррентные модели. На тестах на вспоминание фактов внутри контекста трансформер по-прежнему держит лучшую точность, но разрыв сокращается. Варианты с кэшированием памяти идут вплотную к трансформеру и обходят прежние лучшие рекуррентные архитектуры. Причем без квадратичной цены по вычислениям.

Почему это важно для тех, кто строит продукты на LLM. Большая часть бюджета на инференс уходит именно в обработку длинного контекста. Если часть нагрузки можно переложить на линейную модель с умным кэшем без сильной потери качества, то это прямой путь к более дешевому и быстрому инференсу. Для агентов, которые долго держат диалог или жуют огромные логи, вопрос стоимости памяти является ключевым.

Не стоит хоронить трансформер раньше времени. По чистой точности на ряде задач он пока впереди, и речь идет о сокращении разрыва, а не о полной победе. Но сама логика показательна: оказалось, что не обязательно каждый раз пересчитывать всю историю заново. Иногда достаточно просто более умной кэш-памяти.

Источник: Google Research, Cornell University и USC, статья Memory Caching: RNNs with Growing Memory (Ali Behrouz, Zeman Li, Yuan Deng, Peilin Zhong, Meisam Razaviyayn, Vahab Mirrokni).

1