Gated DeltaNet-2: как разделить стирание и запись в линейном внимании
Трансформеры доминируют в мире ИИ с 2017 года, но их ахиллесова пята остаётся неподвижной: квадратичная сложность внимания делает длинные контексты дорогими, а декодинг — медленным. Линейное внимание обещает спасение, заменяя бесконечный KV-кэш на компактное рекуррентное состояние фиксированного размера. Проблема в том, что сжатая память плохо справляется с точным извлечением: чем больше ассоциаций запихнуть в одно состояние, тем выше риск интерференции. Новая работа Gated DeltaNet-2 предлагает необычно простое решение — разделить решение о том, что стирать, от решения о том, что записывать.
Что такое линейное внимание и почему оно до сих пор отстаёт
Стандартное softmax-внимание вычисляет попарные скоры между всеми токенами последовательности. Это даёт феноменальное качество, но цена растёт как O(n²) — при миллионном контексте матрица внимания становится неподъёмной. Линейное внимание заменяет softmax на элементарное произведение, что позволяет свернуть всю историю в матричное состояние S размером dₖ × dᵥ и обновлять его за O(1) на токен. Память не растёт с длиной контекста, декодинг становится константным по памяти, а обучение — линейным по времени.
Но у этого подхода есть фундаментальное ограничение. Состояние S — это сжатая ключ-значение память, и каждая новая ассоциация добавляется к существующим через внешнее произведение k·vᵀ. Старые ассоциации остаются в состоянии до тех пор, пока не будут косвенно перезаписаны наложением новых. Это приводит к интерференции: похожие ключи конкурируют за одни и те же ячейки состояния, и точное извлечение старой информации деградирует. Именно поэтому линейные модели традиционно отстают от трансформеров на задачах in-context retrieval — способности находить иголку в стоге сена прямо внутри промпта.
Дельта-правило, популяризированное DeltaNet и его потомками, решает эту проблему иначе. Вместо того чтобы просто добавлять новое значение, модель сначала читает текущее состояние по ключу, вычисляет разницу между желаемым и фактическим значением, и записывает только эту дельту. Это аналог обучения по правилу Уидроу-Хоффа, перенесённый в онлайн-память языковой модели. Но даже дельта-правило имеет скрытый дефект.
Один скаляр не может решать два разных вопроса
В Gated DeltaNet и Kimi Delta Attention (KDA) активное редактирование памяти контролируется скалярным гейтом βₜ. Этот гейт решает сразу две задачи: сколько старого содержимого стереть на стороне ключа и сколько нового содержимого записать на стороне значения. Проблема в том, что эти два решения не обязаны совпадать. Может быть нужно агрессивно стереть устаревшую ассоциацию по одному ключу, но осторожно дописать новую информацию по другому значению. Или наоборот — сохранить старое, но интенсивно обновить новое.
Gated DeltaNet-2 устраняет это ограничение, вводя два независимых гейта. Гейт стирания bₜ работает на стороне ключа: он выбирает, какие координаты текущего чтения из состояния удалить. Гейт записи wₜ работает на стороне значения: он выбирает, какие координаты кандидатного значения фиксировать в памяти. Оба гейта канал-специфичны, то есть действуют независимо для каждого измерения скрытого пространства. Это позволяет модели одновременно забывать по одной оси и запоминать по другой — то, что было невозможно с одним скаляром.
Формально обновление состояния выглядит так. Сначала применяется канал-специфичное затухание αₜ к предыдущему состоянию. Затем вычисляется текущее чтение — проекция состояния на ключ kₜ. Гейт стирания bₜ взвешивает ключевые координаты, используемые для чтения, и эта взвешенная версия ключа определяет, какое старое содержимое удалить. Параллельно гейт записи wₜ взвешивает кандидатное значение zₜ — разницу между желаемым значением vₜ и прочитанным из состояния. Итоговое состояние обновляется через внешнее произведение взвешенного ключа и взвешенного значения. Критически важно, что bₜ и wₜ не связаны между собой: модель учится их независимо.
Как это реализуется на практике
Авторы сохраняют эффективную chunkwise-параллелизацию, которая делает линейные модели обучаемыми на современных ускорителях. Вместо токен-за-токеном рекуррентного обновления последовательность разбивается на чанки, и внутри чанка вычисления параллелизуются через матричные произведения. Ключевое отличие Gated DeltaNet-2 — gate-aware backward pass, где градиенты проходят через оба гейта на обратном распространении.
Внутри чанка модель строит вспомогательные матрицы W и Y, которые кодируют внутри-чанковые взаимодействия. Гейт стирания входит в матрицу E — взвешенную версию ключей, а гейт записи — в матрицу Z — взвешенную версию дельта-значений. Обратное распространение через эти матрицы требует аккумуляции градиентов с учётом обоих гейтов, и авторы показывают, что скалярная пост-масштабировка здесь некорректна: гейты должны участвовать внутри произведений, а не применяться после. Это тонкий, но важный момент для реализации: упрощённая версия backward pass теряет информацию о канал-специфичных решениях и сводит модель к менее выразительному варианту.
Архитектурно слой параметризуется следующим образом. Сначала вычисляются свёрточные проекции для запроса q, ключа k и значения v. Затем независимые проекции производят гейт стирания b и гейт записи w. Логарифм затухания g вычисляется вне ядра в fp32 для численной стабильности — локальная кумулятивная сумма экспонент чувствительна к точности мантиссы при длинных последовательностях. Запросы и ключи L2-нормализуются перед рекуррентным обновлением, что стабилизирует масштаб матриц A и T даже при несвязанных гейтах.
Цифры: где выигрывает разделение гейтов
Авторы обучают модели семейства Gated DeltaNet-2 с 1.3B параметров на 100B токенов из FineWeb-Edu, сравнивая с Mamba-2, Gated DeltaNet, KDA, Mamba-3 и Transformer baseline. Все рекуррентные модели используют 16 голов с dₖ = dᵥ = 128, что даёт рекуррентное состояние 128 × dₘᵒᵈᵉₗ floats на слой. Обучение проходит с learning rate 4×10⁻⁴, весовым распадом 0.1, градиентным клиппингом 1.0 и глобальным батчем 0.5M токенов.
На языковом моделировании Gated DeltaNet-2 показывает перплексию WikiText 15.90 против 16.40 у Gated DeltaNet и 16.81 у KDA. На LAMBADA перплексия падает до 11.41 — лучший результат среди всех рекуррентных моделей и даже ниже, чем у Transformer baseline (13.72). Средняя точность на common-sense бенчмарках (PIQA, HellaSwag, WinoGrande, ARC, OpenBookQA, SocialIQA, BoolQ) составляет 53.11% — выше, чем у Mamba-3 MIMO (52.39%) и KDA (52.28%).
Но самое впечатляющее — synthetic retrieval. На S-NIAH-2 (needle-in-haystack с двумя иголками) при контексте 4K токенов Gated DeltaNet-2 набирает 93.0% против 89.0% у KDA и 87.2% у Gated DeltaNet. На S-NIAH-3 (три иголки) при 2K — 89.8% против 63.2% у KDA и 54.2% у Gated DeltaNet. Это не маргинальное улучшение: разделение гейтов радикально повышает способность модели извлекать множественные факты из сжатого состояния. На MK-NIAH-1 (multi-key needle) при 4K — 72.6% против 54.0% у KDA и 58.0% у Gated DeltaNet.
Гибридные модели, где рекуррентный микшер сочетается со sliding-window attention размером 2K, показывают ещё более сильные результаты. Gated DeltaNet-2 hybrid достигает 15.54 WikiText perplexity и 54.13% средней common-sense точности — сопоставимо с лучшими Mamba-3 конфигурациями, но с более выразительным рекуррентным ядром. Черезput на H100 при обучении составляет 92% от baseline Gated DeltaNet — небольшая плата за дополнительную выразительность.
Абляции: что именно даёт прирост
Авторы проводят абляции в рекуррентном режиме, чтобы изолировать вклад каждого компонента. Вариант с канальным гейтом записи, но скалярным гейтом стирания (w-only) показывает WikiText 16.55 и средний common-sense 52.45%. Вариант с канальным гейтом стирания, но скалярным гейтом записи (b-only) — 16.12 и 52.79%. Полная модель с обоими канальными гейтами — 15.90 и 53.11%. Интересно, что гейт стирания даёт больший вклад, чем гейт записи: b-only ближе к полной модели, чем w-only. Это говорит о том, что точный контроль над тем, что удалять из сжатой памяти, важнее точного контроля над тем, что добавлять.
Авторы также тестируют расширенный диапазон стирания bₜ ∈ [0, 2] вместо стандартного [0, 1]. Результаты практически не меняются: 15.95 WikiText и 53.04% common-sense против 15.90 и 53.11% у базовой модели. Это означает, что модель сама находит оптимальные уровни стирания внутри единичного диапазона и не нуждается в расширенных границах.
Почему это важно для экосистемы
Линейное внимание переживает ренессанс. Mamba-3 вводит многовходовые SSM, KDA улучшает дельта-правило канальным затуханием, а Gated DeltaNet-2 показывает, что само дельта-правило можно сделать выразительнее, разделив две скрытые функции одного гейта. Все эти работы движутся к общей цели: сделать рекуррентные модели конкурентоспособными с трансформерами не только по скорости, но и по качеству.
Для практиков это означает, что выбор архитектуры становится менее однозначным. Если год назад линейные модели были интересны только для edge-устройств и сверхдлинных контекстов, сегодня они приближаются к качеству трансформеров даже на стандартных бенчмарках языкового моделирования. При этом они сохраняют фундаментальное преимущество: декодинг с постоянной памятью независимо от длины контекста. Для агентных систем, которые живут часами или днями, это может оказаться решающим фактором.
Для исследователей Gated DeltaNet-2 предлагает более широкий урок. Архитектурные ограничения часто маскируются под естественные компромиссы, но на самом деле являются артефактами конкретного дизайна. Скалярный гейт в Gated DeltaNet выглядел разумным упрощением — пока кто-то не спросил, а что если разделить? Иногда прогресс приходит не от добавления сложности, а от удаления необоснованного упрощения.
Часто задаваемые вопросы
Может ли Gated DeltaNet-2 заменить трансформеры в production?
Пока нет — работа оценена на 1.3B параметрах, и масштабирование до десятков миллиардов требует дополнительных исследований. Но тренд ясен: линейные модели сужают разрыв с трансформерами. Для задач с длинным контекстом и ограниченной памятью они уже могут быть предпочтительнее.
Какова вычислительная стоимость дополнительного гейта?
Незначительная. Черезput на H100 составляет 92% от baseline Gated DeltaNet. Дополнительные проекции для bₜ и wₜ добавляют небольшое число параметров, а gate-aware backward pass реализован через оптимизированные Triton-ядра с авто-тюнингом.
Что такое дельта-правило в контексте языковых моделей?
Это способ обновления рекуррентного состояния, при котором модель сначала читает текущее значение по ключу, вычисляет разницу между желаемым и фактическим, и записывает только эту дельту. Это предотвращает интерференцию между старыми и новыми ассоциациями в сжатой памяти.
Итог
Gated DeltaNet-2 доказывает, что линейное внимание способно на большее, чем считалось ещё год назад. Разделение гейтов стирания и записи — архитектурно простое изменение, но оно радикально улучшает способность модели к in-context retrieval и языковому моделированию. При перплексии 15.90 на WikiText и 93.0% на S-NIAH-2 при 4K контексте, эта модель устанавливает новый стандарт для рекуррентных архитектур. Вопрос теперь не в том, заменят ли линейные модели трансформеры, а в том, насколько быстро сократится разрыв между ними.