У Google вышла крутая статья про новую архитектуру Titan, которая может победить проблему забывания в трансформерахТрадиционные трансформеры очень прожорливы. Архитектура масштабируется квадратично по мере увеличения длины последовательности. Это приводит к проблеме невозможности увеличения контекстного окна и так называемому забыванию, потому что трансформеры также часто склонны аллоцировать внимание на нерелевантный контекст и, чем он больше, тем больше такая накапливаемая ошибка и
степень забывчивости модели.
В Titan же подход к памяти немного иной: помимо краткосрочной памяти attention
исследователи добавили в архитектуру долгосрочную память (
тут вы, возможно, поймали флешбек на LSTM, и не зря). То есть у нас есть некоторый core – стандартное внимание с ограниченным окном, и модуль, который хранит важную информацию из "далекого прошлого". Чтобы решать, какую информацию запоминать, в нем используется метрика сюрприза (чем "неожиданнее" новые данные для модели, тем важнее их запомнить) + есть коэффициент затухания. Все эффективно параллелится.
При этом в статье показали аж
три варианта соединить текущее внимание с долгосрочной памятью:
➖ Memory as Context: долгосрочная память используется как контекст для текущего внимания.
➖ Memory as Gating: здесь прямо максимальный мэтч с LSTM, тот же механизм гейтов
➖ Memory as Layer: самый простой вариант, вся память соединена как слой в сетке
MAC оказался лучше всего по перплексии, а MAL чуть быстрее, но теряет в эффективности. В целом
такая архитектура может легким движением руки масштабироваться до контекста в 2+ миллиона токенов, сохраняя стабильную точность (трансформеры начинают обычно фейлить уже после отметки 4096). Очень крутая работа получилась у Google, в общем.
Полный текст статьи здесьP.S. Очень подробный и понятный разбор архитектуры LSTM от нас можно почитать
здесь, а
вот тут лежит наша большая статья про другие архитектуры-альтернативы трансформеру