3. RetNet 상세
한 줄 요약
"Transformer 처럼 병렬로 훈련하고, RNN 처럼 O(1) 로 추론하고, 청크 단위로 긴 시퀀스도 효율적으로 처리하는 3-모드 호환 믹서."
어떻게 동작하나요?
Transformer 와 RNN 의 장단점을 한 마디로 요약하면:
- Transformer: 훈련 시 모든 토큰 병렬 계산 (빠름) / 추론 시 O(N²) 메모리 (느림)
- RNN: 훈련 시 순차 계산 (느림) / 추론 시 O(1) state 업데이트 (빠름)
RetNet 은 "둘 다 좋게 해보자" 라는 아이디어에서 출발합니다. 핵심은 "retention" 이라는 연산 — Attention 의 softmax 를 제거하고 고정된 지수 감쇠(exponential decay) 를 곱해서 나오는 연산입니다. 이렇게 하면 수학적으로 3가지 형태로 동일한 값을 계산할 수 있습니다:
- 병렬 모드 (parallel): Transformer 처럼 (Q·Kᵀ)·V — 훈련에 사용.
- 순환 모드 (recurrent): RNN 처럼 state 하나만 업데이트 — 한 토큰씩 추론에 사용.
- 청크 모드 (chunkwise): 긴 시퀀스를 청크로 나눠서 청크 내부는 병렬, 청크 사이는 순환 — 훈련과 긴 문맥 추론의 절충.
각 헤드에는 서로 다른 감쇠율 γ 가 할당되어 (감마 집합) 멀티스케일 시간 해상도를 제공합니다.
장점
- 훈련 병렬성: Transformer 수준의 훈련 속도.
- O(1) 추론: RNN 처럼 상수 메모리 + 상수 시간 per step.
- 청크 모드: 긴 컨텍스트를 병렬 + 순환 하이브리드로 효율 처리.
- 훈련-추론 일관성: 3개 모드가 수학적으로 동일한 결과 → 오차 없음.
- RoPE 호환: 위치 인코딩 자연스럽게 통합.
단점
- softmax 제거의 품질 영향: 초기 RetNet 은 같은 파라미터에서 Transformer 보다 약간 약했음. (최근 변형들로 많이 좁혀짐.)
- 하드웨어 커널 성숙도: FlashAttention 수준의 범용 최적화 아직 덜 됨.
- 청크 크기 튜닝: chunk_size 선택이 성능/메모리 트레이드오프에 영향.
실제 적용 예
- RetNet (Sun et al., Microsoft, 2023) — 원 논문. 6.7B 모델 발표.
- Jamba-1.5 의 일부 설계 영감 — 청크 단위 retention 개념이 하이브리드 설계에 영향.
- 연구용 하이브리드 스택에서 attention/mamba 와 섞어서 "제3의 축" 으로 자주 사용됨.
Attention, Mamba 와의 관계
| 측면 | Attention | Mamba | RetNet |
|---|---|---|---|
| 훈련 복잡도 | O(N²) | O(N) | O(N) (병렬 모드) |
| 추론 복잡도 | O(N²) KV 캐시 | O(1) state | O(1) state (순환 모드) |
| 위치 인코딩 | RoPE 외부 | 컨볼루션 내재 | RoPE + 지수 감쇠 |
| 강점 | 정확한 ICL recall | 긴 문맥 요약 | 훈련-추론 동시 효율 |
| 최신 연구 활용 | 주력 | 주력 | 하이브리드 3번째 축 |
어떤 상황에 유리한가?
| 상황 | RetNet 이 좋은가? |
|---|---|
| 훈련 속도 + 긴 컨텍스트 추론 | ★★★★★ 청크 모드로 최적 |
| 실시간 스트리밍 (O(1) 추론) | ★★★★★ 순환 모드 활용 |
| 하이브리드 스택의 3번째 축 | ★★★★★ Attention/Mamba 보완 |
| 순수 RetNet 만으로 SOTA 추구 | ★★★ (최근엔 하이브리드가 유리) |
EulerStack YAML 예시
layer_templates:
retnet_layer:
mixer:
type: retnet
retnet:
chunkwise: true # 청크 모드 사용 (훈련 권장)
chunk_size: 128 # 청크 크기
rope: true # RoPE 사용
ffn:
type: gated_mlp
activation: swiglu
state:
kv_cache: true # 청크 state 를 KV 캐시 슬롯에 저장
Tri-mixer (attention + mamba + retnet) 스케줄 예시:
layer_schedule:
- template: mamba_layer
repeat: 1
- template: retnet_layer
repeat: 1
- template: attn_layer
repeat: 1
# ... 반복 → 3가지 귀납적 편향 동시 활용
EulerStack 의 arch_expert_research 프리셋이 바로 이런 구성입니다.
논문 출처
- Sun et al., 2023. "Retentive Network: A Successor to Transformer for Large Language Models." Microsoft Research. (원 RetNet 논문)
- Arora et al., 2024. "Simple Linear Attention Language Models Balance the Recall-Throughput Tradeoff." (하이브리드 타당성 분석, "mixture of sequence models")