Transformer의 메모리 문제, 그리고 선형 어텐션

현재 대부분의 언어모델은 Transformer 아키텍처를 사용합니다. 핵심인 어텐션 메커니즘은 모든 토큰 쌍의 관계를 계산하는데, 이 과정이 입력 길이에 대해 제곱에 비례(O(n²))해서 계산량이 늘어납니다. 문맥이 길어질수록 KV 캐시도 선형으로 커지고요.

이 문제를 해결하려는 접근이 선형 어텐션(linear attention)입니다. 핵심 아이디어는 간단합니다. 어텐션 계산을 위해 모든 과거 토큰을 저장하는 대신, 고정 크기의 반복 상태(recurrent state)에 압축해서 유지하는 겁니다. 그러면 계산이 O(n)이 되고, 디코딩 시 메모리도 일정하게 유지됩니다.

문제는 압축 과정에서 정보가 손실된다는 거죠. 메모리 용량이 정해져 있으니 오래된 정보를 지우고 새로운 정보를 써넣어야 하는데, 이 “지우기”와 “쓰기”를 어떻게 제어하느냐가 성능을 좌우합니다.

기존 모델들의 한계: 스칼라 묶음(Scalar Tie)

기존 선형 어텐션 모델들은 대부분 하나의 스칼라 값으로 삭제와 쓰기를 동시에 제어했습니다. 이걸 “스칼라 묶음(scalar tie)“이라고 부릅니다.

예를 들어 Mamba-2는 감쇠율(decay rate) 하나로 “얼마나 잊을지”를 정합니다. DeltaNet은 조금 더 나아가 델타 규칙(delta rule)을 도입했는데, 새 값을 쓰기 전에 기존에 읽은 값을 먼저 빼는 방식입니다. KDA(Kimi Delta Attention)는 여기에 채널별 감쇠를 추가해 더 정밀한 제어를 시도했습니다.

하지만 이 모델들도 근본적인 한계가 있었습니다. 삭제와 쓰기를 하나의 게이트로 묶어놓으니, “이 정보는 지워야 하는데 저 정보는 남겨둬야 한다” 같은 세밀한 제어가 어려웠습니다. 지우고 싶지 않은 것까지 지워지거나, 쓰고 싶지 않은 것까지 덮어씌워지는 간섭 문제가 발생했죠.

Gated DeltaNet-2: 삭제와 쓰기의 분리

NVIDIA Research가 발표한 Gated DeltaNet-2(GDN-2)는 이 스칼라 묶음을 풀어버립니다. 삭제를 담당하는 erase 게이트(b_t)와 쓰기를 담당하는 write 게이트(w_t)를 독립적인 채널별 벡터로 분리한 겁니다.

비유하자면 기존 모델은 하나의 볼륨 노브로 “지우기”와 “쓰기”를 동시에 조절하는 것이었고, GDN-2는 지우기 노브와 쓰기 노브를 따로 분리한 것입니다. 이렇게 하면:

  • 지울 필요가 없는 정보는 erase 게이트를 닫아둔 채로 유지
  • 새로 써야 할 정보만 write 게이트를 열어서 업데이트
  • 채널별로 독립적이라 각 차원이 서로 다른 전략을 가질 수 있음

수학적으로 GDN-2는 기존 Gated DeltaNet과 KDA를 모두 일반화하는 형태입니다. 두 게이트가 같은 스칼라로 수렴하면 KDA가 되고, 감쇠까지 하나로 합쳐지면 Gated DeltaNet이 됩니다. 즉, 더 넓은 표현 공간에서 최적의 지점을 찾을 수 있는 구조입니다.

효율적인 구현: WY 알고리즘

이론적으로 좋은 아이디어라도 GPU에서 느리면 실용성이 없습니다. GDN-2는 채널별 감쇠를 비대칭 erase 팩터에 흡수시키는 chunkwise WY 알고리즘을 도입해서, 게이트가 분리되었음에도 Tensor Core 친화적인 행렬 연산으로 훈련 가능하게 만들었습니다.

결과적으로 훈련 처리량 36.1 ktok/s를 달성했고, 선형 시간 훈련과 일정 메모리 디코딩이라는 선형 어텐션의 장점을 그대로 유지합니다.

성능: Mamba-3, KDA를 넘어서

1.3B 파라미터 규모에서 기존 최고 성능 순환 모델들과 비교한 결과가 인상적입니다.

언어모델링에서 GDN-2는 평균 상식 추론 정확도 53.11%로, Transformer(50.86%)와 Mamba-2(51.99%)를 넘어섰습니다. 순환 모델 중에서는 최고 수준입니다.

**긴 문맥 검색(RULER 벤치마크)**에서는 차이가 더 확실합니다. Multi-Key NIAH(4K 문맥)에서 GDN-2는 37.8점으로, Mamba-2의 21.4점, KDA의 28.0점을 크게 앞섰습니다. 문맥이 길어질수록 기존 모델들의 검색 능력이 급격히 떨어지는데, GDN-2는 훨씬 완만하게 감소합니다.

특히 8K 문맥의 Single-NIAH에서 GDN-2는 93.0%~97.8% 정확도를 유지하는 반면, Mamba-3(SISO)는 12.2%~27.8%까지 떨어집니다. 압축 메모리에서 정확한 검색이 가능하다는 건, 실제 서비스에서 긴 문서 처리에 유리하다는 뜻입니다.

실용적 의미

GDN-2가 시사하는 바는 명확합니다.

긴 컨텍스트를 다뤄야 하는 실제 서비스 — 긴 문서 요약, 코드 분석, 다중 턴 대화 — 에서 Transformer의 KV 캐시 메모리 문제는 현실적인 병목입니다. GDN-2 같은 순환 아키텍처는 고정 메모리로 디코딩하니, 컨텍스트가 아무리 길어도 메모리 사용량이 일정합니다.

삭제와 쓰기를 분리했다는 점은 모델이 “뭘 잊고 뭘 기억할지”를 더 잘 학습할 수 있게 한다는 의미이고, 이건 결국 더 나은 장기 기억으로 이어집니다.

물론 아직 1.3B 규모의 결과이고, 더 큰 스케일에서 Transformer 대비 우위가 유지될지는 더 지켜봐야 합니다. 하지만 선형 어텐션 연구가 꾸준히 실용적 성능을 쌓아가고 있다는 신호는 분명합니다.


참고자료