트랜스포머(Transformer)는 컨텍스트 길이에 비례해 메모리가 늘어나는 덕분에 회상(recall) 집약적 태스크에서 강하지만, O(L²) 복잡도와 KV 캐시 메모리 폭증이라는 비용을 치른다. RNN 계열은 선형 복잡도를 갖지만 고정 크기 메모리로 인해 긴 시퀀스에서 회상 성능이 떨어진다는 한계가 있다.
Memory Caching(MC)은 RNN의 은닉 상태(hidden state) 체크포인트를 캐시함으로써 이 두 극단 사이를 유연하게 오가는 기법이다. Google Research 소속 Ali Behrouz 외 연구진이 arXiv에 발표했다(2602.24281).
핵심 아이디어
기존 RNN은 과거 전체를 단일 은닉 상태로 압축해 메모리 크기가 시퀀스 길이 L에 무관하게 일정하다. MC는 일정 간격마다 은닉 상태를 스냅샷으로 저장해 두고, 나중에 그 시점 이후의 내용을 참조할 때 해당 체크포인트를 불러온다.
일반 RNN: h_0 → h_1 → ... → h_t (메모리 O(1))
MC: h_0 h_k h_2k ... → h_t (체크포인트 캐시 O(L/k))체크포인트 간격 k를 조절하면 다음 두 극단 사이를 자유롭게 이동한다:
- k → ∞: 일반 RNN, O(L) 복잡도 (고정 메모리)
- k = 1: 모든 상태를 저장, O(L²) 복잡도 (Transformer에 근접)
네 가지 변형
| 변형 | 설명 |
|---|---|
| 기본 MC | 등간격으로 체크포인트 저장 |
| 게이트 집계(Gated Aggregation) | 체크포인트를 불러올 때 게이트 함수로 중요도 가중 |
| 희소 선택(Sparse Selective) | 중요한 상태만 선별해 캐시, 불필요한 저장 최소화 |
| 딥 메모리 모듈 적용 | 선형 메모리뿐 아니라 깊은 메모리 모듈에도 MC 적용 |
실험 결과
언어 모델링과 장문 컨텍스트 이해 태스크 모두에서 MC는 기존 RNN보다 높은 성능을 기록했다. 회상(in-context recall) 태스크에서는 Transformer가 여전히 최고 정확도를 보이지만, MC 변형들은 기존 최상위 순환 모델보다 개선된 결과를 보여주며 Transformer와의 격차를 크게 줄였다.
의의와 활용
- 추론 효율: 체크포인트 저장 비용은 있으나, 전체 KV 캐시 대비 메모리 사용량을 크게 줄인다.
- 유연한 트레이드오프: 서비스 요구에 따라 k를 조정해 메모리-정확도 균형을 동적으로 맞출 수 있다.
- 기존 RNN 호환: Mamba, RWKV 등 기존 순환 아키텍처에 MC를 플러그인 방식으로 결합 가능하다.
참고 자료
- Memory Caching: RNNs with Growing Memory — arXiv:2602.24281 (2026-02)