> EulerStack > 튜토리얼 > 믹서 > 3. RetNet 상세

3. RetNet 상세

한 줄 요약

"Transformer 처럼 병렬로 훈련하고, RNN 처럼 O(1) 로 추론하고, 청크 단위로 긴 시퀀스도 효율적으로 처리하는 3-모드 호환 믹서."

어떻게 동작하나요?

Transformer 와 RNN 의 장단점을 한 마디로 요약하면:

RetNet 은 "둘 다 좋게 해보자" 라는 아이디어에서 출발합니다. 핵심은 "retention" 이라는 연산 — Attention 의 softmax 를 제거하고 고정된 지수 감쇠(exponential decay) 를 곱해서 나오는 연산입니다. 이렇게 하면 수학적으로 3가지 형태로 동일한 값을 계산할 수 있습니다:

  1. 병렬 모드 (parallel): Transformer 처럼 (Q·Kᵀ)·V — 훈련에 사용.
  2. 순환 모드 (recurrent): RNN 처럼 state 하나만 업데이트 — 한 토큰씩 추론에 사용.
  3. 청크 모드 (chunkwise): 긴 시퀀스를 청크로 나눠서 청크 내부는 병렬, 청크 사이는 순환 — 훈련과 긴 문맥 추론의 절충.

각 헤드에는 서로 다른 감쇠율 γ 가 할당되어 (감마 집합) 멀티스케일 시간 해상도를 제공합니다.

장점

단점

실제 적용 예

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 프리셋이 바로 이런 구성입니다.

논문 출처