RDA vs Gated DeltaNet 2

#1
by Data-vanOrtus - opened

The description of RDA and GDN 2 by Nvidia sound very similar. What is the difference? Do you parameterise it differently?

KRAFTON org

Thanks for the question! RDA and GDN-2 are closely related: both decouple the erase and write strengths that KDA ties to a single gate Ξ²t\beta_t. The difference is granularity.

  • GDN-2 makes both gates channel-wise: an erase gate bt∈Rdkb_t \in \mathbb{R}^{d_k} on the key and a write gate wt∈Rdvw_t \in \mathbb{R}^{d_v} on the value.
  • RDA keeps both gates as per-head scalars, et,wt∈Re_t, w_t \in \mathbb{R}, so erase and write are learned independently with almost no extra parameters. It starts exactly as KDA at initialization and learns to separate the two during training.

More precisely, the three state updates are:

KDA:St=(Iβˆ’Ξ²t ktkt⊀) Diag(Ξ±t) Stβˆ’1+Ξ²t ktvt⊀\textbf{KDA:}\quad S_t = (I - \beta_t\, k_t k_t^\top)\,\mathrm{Diag}(\alpha_t)\,S_{t-1} + \beta_t\, k_t v_t^\top

RDA:St=(Iβˆ’et ktkt⊀) Diag(Ξ±t) Stβˆ’1+wt ktvt⊀\textbf{RDA:}\quad S_t = (I - e_t\, k_t k_t^\top)\,\mathrm{Diag}(\alpha_t)\,S_{t-1} + w_t\, k_t v_t^\top

GDN-2:St=(Iβˆ’kt(btβŠ™kt)⊀) Diag(Ξ±t) Stβˆ’1+kt(wtβŠ™vt)⊀\textbf{GDN-2:}\quad S_t = (I - k_t (b_t \odot k_t)^\top)\,\mathrm{Diag}(\alpha_t)\,S_{t-1} + k_t (w_t \odot v_t)^\top

All three share KDA's channel-wise decay Ξ±t\alpha_t. RDA reduces to KDA when et=wte_t = w_t.
In our 1.3B ablations under the GDN-2 paper setup (recurrent-only models), RDA showed better long-context retrieval (NIAH) than both KDA and GDN-2.

Variant Decay Erase term Write term Key innovation
GDN scalar alpha_t scalar beta_t scalar beta_t Baseline: adaptive forgetting + tied delta edit
KDA vector alpha_t scalar beta_t scalar beta_t Channel-wise forgetting; finer decay granularity
RDA vector alpha_t scalar e_t scalar w_t Decoupled scalar erase/write; conceptual intermediate
GDN-2 vector alpha_t vector b_t vector w_t Full decoupling: channel-wise erase on key side and write on value side

Is this right?

KRAFTON org

Thanks for the nice summary!
Yes, that's right. In terms of gate granularity, RDA sits between KDA and GDN-2: it decouples erase from write like GDN-2, but keeps per-head scalar gates like KDA.

Ah ok that makes sense. Thank you very much. Althoug i find the better performance in ablations quite surprising, considering, at least intuitively, that a more fine grained edit should allow the model to better control the information in its state. Will there be a detailed tech report (including ablations)?

KRAFTON org

Thanks! We were also surprised at first. As a simple ablation, we tried to reproduce the MQAR experiment from the Kimi Linear paper under a fair setting for RDA, KDA and GDN-2. The code for that experiment was not released, so we wrote our own codebase and swept the same five learning rates for all three models. In our runs at L=2048 with 32 KV pairs, RDA reached ~97% accuracy while GDN-2 reached ~25% and KDA stayed near 0% at every learning rate. This does not match the trend in the Kimi Linear paper, especially for KDA, possibly because the original setup is not fully specified.

Like GDN-2, we think decoupling erase and write is the key idea. But in our experiments the granularity of KDA was already enough.

Yes, we also plan to release a technical report.

Sign up or log in to comment