
Memory Caching: RNNs with Growing Memory
핵심 포인트
- 1RNN의 고정 메모리 한계를 해결하기 위해, 이 논문은 시퀀스 길이에 따라 RNN의 유효 메모리 용량을 확장하는 Memory Caching (MC) 기술을 소개합니다.
- 2MC는 시퀀스를 세그먼트(segment)로 분할하여 메모리 상태(hidden states) 체크포인트를 캐싱하고, (Gated) Residual Memory, Memory Soup, Sparse Selective Caching (SSC)과 같은 새로운 전략으로 이를 활용합니다.
- 3실험 결과, MC는 언어 모델링 및 긴 컨텍스트 이해 태스크에서 RNN 성능을 향상시키며, O(L)과 O(L^2) 복잡도 사이의 유연한 절충을 제공하여 Transformer와의 성능 격차를 좁힘을 보여줍니다.
이 논문은 트랜스포머 (Transformers)의 주요 강점인 증가하는 메모리 용량 (growing memory capacity)이 야기하는 이차적인 복잡성 ( complexity)과, 반대로 순환 신경망 (RNNs)이 갖는 고정된 크기의 메모리 (fixed-size memory)로 인해 발생하는 장문맥에서의 성능 한계를 다룹니다. 특히, RNNs는 '잊기' 때문에 recall-intensive tasks에서 트랜스포머에 비해 불리한데, 이 문제를 해결하기 위해 메모리 캐싱 (Memory Caching, MC)이라는 간단하지만 효과적인 기술을 제안합니다. MC는 RNN의 메모리 상태 (memory states), 즉 은닉 상태 (hidden states)의 체크포인트 (checkpoints)를 캐싱함으로써 RNN의 유효 메모리 용량을 시퀀스 길이 (sequence length)에 따라 증가시킵니다. 이는 RNN의 복잡성과 트랜스포머의 복잡성 사이에서 유연한 trade-off를 제공합니다.
제안된 MC 프레임워크는 입력 시퀀스를 세그먼트 (segments) 로 분할하고, 각 세그먼트의 압축된 메모리 상태 를 캐싱합니다. 모델은 현재 토큰 (token)에 대한 온라인 메모리 (online memory) 뿐만 아니라 과거의 캐싱된 메모리들 까지 활용하여 출력을 계산합니다. 이를 위해, 임의의 aggregation function 을 사용하여 다음과 같이 출력을 계산합니다:
여기서 는 현재 쿼리 (query)를 나타냅니다. 메모리 업데이트 과정은 기존 RNN과 동일하게 의 형태로 이루어집니다. 이 방식은 메모리 업데이트에는 연산을, 검색 (retrieval)에는 캐싱된 메모리의 수에 비례하는 연산을 요구하므로, 전체 복잡성은 이 됩니다. 일 경우 표준 RNN에 해당하며, 일 경우 각 토큰이 독립적인 세그먼트가 되어 트랜스포머의 동작에 가까워집니다.
논문은 MC를 활용하는 네 가지 novel aggregation strategies를 제안합니다:
- Residual Memory: 가장 단순한 형태로, 현재 온라인 메모리에 이전 세그먼트의 캐싱된 메모리들을 단순히 합산하여 출력을 계산합니다:
선형 메모리 (linear memory)의 경우 수학적으로 표준 고정 크기 메모리와 동일하게 되지만, 실제로는 장기 기억 (long past)에 대한 접근성을 향상시키는 효과를 보입니다.
- Gated Residual Memory (GRM): Residual Memory의 한계를 극복하기 위해, 입력 의존적인 게이팅 (input-dependent gating) 파라미터 를 도입하여 각 세그먼트의 기여도를 조절합니다.
여기서 는 현재 입력 의 선형 투영 (linear projection) 와 -번째 세그먼트 의 문맥 (context)을 나타내는 간의 유사도 (similarity)를 통해 계산됩니다.
이 게이팅은 토큰마다 다시 계산되어야 하므로 선형 메모리에서도 고정 크기 메모리로 붕괴되지 않습니다.
- Memory Soup: Wortsman et al. (2022)의 weight souping에서 영감을 받아, 메모리 상태 (memory states) 자체의 파라미터 (parameters)를 조합하여 단일의 데이터 의존적인 메모리 를 생성합니다. 의 파라미터 집합을 라고 할 때, 의 파라미터는 게이팅 파라미터 를 사용하여 가중 평균됩니다:
그리고 출력을 계산합니다:
선형 메모리에서는 GRM과 수학적으로 동일하지만, 딥 메모리 모듈 (deep memory modules)에서는 가 새로운 비선형 검색 함수를 생성하므로 큰 차이를 보입니다.
- Sparse Selective Caching (SSC): 모든 캐싱된 메모리를 사용하는 것이 아닌, Mixtur of Experts (MoEs)에서 영감을 받은 라우터 (router)를 사용하여 문맥적으로 가장 관련성이 높은 개의 캐싱된 메모리만 선택적으로 사용합니다. 각 세그먼트 에 대한 관련성 점수 는 GRM과 유사하게 와 의 내적 (inner product)으로 계산됩니다:
라우터는 이 점수를 기반으로 상위 개의 세그먼트 를 선택하며, 검색 과정은 선택된 메모리에 대해서만 이루어집니다:
이는 메모리 소비를 효율적으로 관리하며, 특히 초장문맥 (ultra-long sequences)에서 유용합니다.
논문은 또한 메모리 캐싱의 두 가지 관점을 논의합니다: 단일 메모리의 체크포인트를 캐싱하는 것 (최적화 관점)과 각 세그먼트에 독립적인 메모리 모듈을 사용하는 것 (압축 관점). 전자는 과거 지식 망각 (forgetting past knowledge)을 방지하는 반면, 후자는 세그먼트 간 간섭 (interference)을 피하고 각 세그먼트의 정보를 독립적으로 압축하는 데 중점을 둡니다.
증명 개념 (proof of concept)으로서, MC 기술은 Linear Attention (LA), 딥 메모리 모듈인 Titans (Behrouz et al., 2025c), Sliding Window Linear Attention (SWLA) 및 Deep Linear Attention (DLA) (Behrouz et al., 2025a)과 같은 다양한 아키텍처에 적용되었습니다. 실험 결과는 언어 모델링 (language modeling), 장문맥 이해 (long-context understanding) 및 검색 작업 (retrieval tasks)에서 MC가 순환 모델의 성능을 향상시키고 유효 컨텍스트 길이 (effective context length)를 확장함을 보여주었습니다. 특히, in-context recall tasks에서 MC 변형 모델들은 트랜스포머에 준하는 경쟁력 있는 성능을 달성하여 최신 순환 모델과의 격차를 줄였습니다.