Оригинальный DeltaNet делает обновление ранга один, которое в некотором смысле затирает текущую ассоциацию с ключом k_t, и перезаписывает ее с новым value.
S_{t} = (1 - b_t k_t k_t^T) S_{t-1} + \beta_t k_t v_t^TGated DeltaNet навешивает еще скалярный forget gate на старое состояние.
S_{t} = \alpha_t (1 - b_t k_t k_t^T) S_{t-1} + \beta_t k_t v_t^TKDA (Kimi Delta Attention) заменяет скаляр \alpha_t на вектор D_t, так что каждый канал модулируется независимо.
S_{t} = (1 - b_t k_t k_t^T) D_t S_{t-1} + \beta_t k_t v_t^TВ Gated DeltaNet предложили развить идею из KDA и добавить еще две дополнительные векторные модуляции:
S_{t} = (1 - k_t (b_t ⊙ k_t)^T) D_t S_{t-1} + \beta_t k_t (w_t ⊙ v_t)^T
Как и в прошлых версиях DN, GDN работает почанковое обучение, чтобы не взрываться по памяти. Наличие дополнительных гейтов требует некоторой модификации обратного прохода, но не очень сложной.
🧪 Эксперименты
Для Gated DeltaNet-2 и бейзлайнов (Mamba-2, Mamba-3, GDN, KDA, Transformer) учат 1.3B модель 100B токенов (причем Адамом, не Мюоном). На перплексии и бенчах Gated DeltaNet-2 естественно лучше всех.
Гибридный вариант GDN-2 с Sliding Window Attention чуть лучше.
На NIAH (иголка в стоге сена) сырой GDN лучше линейных бейзлайнов, но чуть уступает трансформеру. Гибрид с SWA всех рвет.
По скорости (training throghput) довольно стабильна с длиной контекста. Несколько помедленнее GDN, KDA и Mamba-2, Mamba-3-SISO.
💡 Выводы
Будто бы логичное, но инкрементальное развитие Gated DeltaNet. Сохранится ли значимый прирост от нововведений на масштабе и перевесит ли некоторое замедление обучения 🤔?