Gated DeltaNet
무엇을 해결하는가
Softmax attention은 무제한 노트다. 과거 모든 토큰을 KV 캐시에 보관하고 매번 다시 본다. 메모리가 선형으로 늘고, FLOPs는 제곱으로 늘어난다. 긴 컨텍스트에서 터진다.
Linear/recurrent attention은 고정 크기 스티커 메모다. Hidden state를 계속 덮어쓰면서 컨텍스트를 요약한다. 메모리는 O(1)이고 속도는 빠른데, 먼 과거 정보가 섞이거나 지워진다. 정확도가 떨어진다.
Gated DeltaNet(GDN)은 두 메커니즘을 합친다. Gating은 메모 전체를 빠르게 지운다. Delta rule은 하나의 사실만 골라서 고친다. 나머지는 건드리지 않는다. 메모리는 여전히 고정인데, 업데이트가 정밀해진다.
메커니즘
GDN의 핵심 직관은 다음과 같다.
State와 gated delta update
GDN은 hidden state S를 유지한다. 각 step마다 state는 두 과정을 거친다.
첫째, decay다. 이전 state를 α_t로 줄인다. 망각의 첫 단계다.
둘째, delta update다. 새 key-value (k, v)가 들어오면, state가 현재 예측하는 값 S^T k와 실제 값 v 사이의 오차를 계산한다.
e = v - S^T k
이 오차 e를 β_t 강도로 state에 쓴다. 핵심은 해당 key 방향으로만 업데이트한다는 점이다. 다른 key들은 영향받지 않는다. 이게 delta rule이다. 하나의 사실만 고치고 나머지는 보존한다.
출력은 y = S^T q로 현재 state를 query로 읽어낸다.
행렬 형태로 쓰면 다음과 같다.
S_t = α_t (I − β_t k k^T) S_{t-1} + β_t k v^T
이 식은 GDN 업데이트의 한 형태다. α_t가 전체 state를 줄이고, β_t k k^T 항이 특정 key 방향을 빠르게 지우며, β_t k v^T가 새 값을 쓴다.
Data-dependent gating
α_t와 β_t는 고정값이 아니다. 입력 x_t에 따라 달라진다.
α_t = σ(W_α x_t)
β_t = σ(W_β x_t)
Flash-Next는 이런 data-dependent gating을 사용한다. 중요한 정보가 들어올 때는 적게 지우고(α 높음), 덜 중요한 정보는 빠르게 지운다(α 낮음). Write 강도 β도 마찬가지로 조정된다.
결과적으로 GDN은 O(1) 메모리로 긴 컨텍스트를 다룬다. Softmax attention만큼 정확하진 않지만, 훨씬 빠르다.
Flash-Next에서의 사용
Qwen4 preview 모델인 Flash-Next는 GDN을 hybrid로 섞었다. 4-layer 블록마다 3개 GDN + 1개 full attention/QSA로 구성된다.
이 구조는 다음을 의미한다. 대부분 레이어는 고정 메모리 linear recurrence로 빠르게 처리한다. 4번에 한 번만 전체 컨텍스트를 본다. Full attention이 long-range dependency를 잡고, GDN이 local processing을 담당한다.
논문 자체는 이 비율을 제안하지 않았다. Flash-Next 배포에서 Qwen 팀이 선택한 설정이다. GDN 논문은 pure GDN 또는 GDN과 SWA(Sliding Window Attention)의 hybrid를 실험했다.
계보와 주변
이전 계보
GDN은 갑자기 나온 게 아니다. 다음 흐름에서 왔다.
- Linear Transformer (Katharopoulos et al., 2020): Softmax를 kernel feature로 근사. 선형 복잡도 첫 시도.
- Fast Weights (Schlag et al., 2021): Recurrent association 메모리. Delta rule의 전신.
- DeltaNet (이전 버전): Delta rule을 Transformer에 적용. Gating 없음.
GDN은 여기에 gating을 추가하고, forget rate를 정교하게 조정했다.
Mamba2와의 차이
Mamba2(Dao & Gu, 2024)는 SSM(State Space Model) 계열이다. 같은 O(1) 메모리 목표지만, 접근이 다르다.
- Mamba2는 structured state다. A 행렬이 continuous-time dynamics를 정의한다. Discretize해서 sequence로 적용한다.
- GDN은 associative memory다. Key-value 업데이트가 명시적이다. Delta rule로 직접 조정한다.
Mamba2는 시계열/신호 처리에서 출발했다. GDN은 attention 근사에서 출발했다. 둘 다 linear recurrence인데, 이론적 배경이 다르다. 어느 쪽이 더 나은가는 태스크에 따라 갈린다.
Hybrid 구조
GDN 논문 자체가 hybrid를 권장한다. Pure GDN은 long-range recall에서 softmax attention을 못 이긴다. 논문은 다음 조합을 실험했다.
- GDN + SWA (Sliding Window Attention): 최근 local window는 full attention, 먼 과거는 GDN.
- Alternating layers: 몇 개 GDN, 한 개 attention을 번갈아 배치.
Flash-Next의 3+1 구조는 논문의 GDN+attention/SWA hybrid와 같은 계열이다. Alternating layers 아이디어를 Qwen 팀이 production 규모로 적용한 설정이다.