# Long-Context 모델을 이해하고 싶다고?
## (Mamba, Titans, Hope 의존성 지옥 가이드)
> "Attention이 O(n²)이라 느리대요. 그래서 대안을 찾아봤는데..." → 지옥문 오픈
---
## 0. 먼저 현실 체크
당신이 원하는 것:
```
"Mamba랑 Titans 같은 거 대충 어떻게 돌아가는지 알고 싶어요"
"Attention 대체한다는데 원리가 뭔지 궁금해요"
```
당신이 마주할 것:
```
Long-Context 모델
│
├── Mamba (State Space Model 계열)
│ ├── SSM 이론
│ │ ├── 제어이론
│ │ ├── 신호처리
│ │ └── 복소해석학
│ ├── 선택적 메커니즘
│ │ └── 정보이론
│ └── 하드웨어 최적화
│ └── CUDA 커널 프로그래밍
│ └── GPU 아키텍처
│ └── 컴퓨터 구조
│ └── (여기서부터 전자공학)
│
├── Titans (메모리 모듈 계열)
│ ├── Neural Memory
│ │ └── Hopfield Networks
│ │ └── 통계물리학
│ ├── Surprise Metric
│ │ └── 정보이론 (또 등장)
│ └── Test-Time Learning
│ └── Meta-Learning
│ └── 최적화 이론의 심연
│
└── Hope (자기수정 네트워크)
├── Nested Learning
│ └── Higher-Order Optimization
│ └── 암묵적 미분
│ └── 함수해석학
└── Causal Memory
└── 인과추론
└── 철학 (진지)
예상 소요 시간: 언제 끝나나요? (대답 거부)
```
---
## 1. 왜 이 지옥에 들어왔는가: Attention의 문제
### Attention이 뭐가 문제인데?
```
"Attention은 O(n²)이야"
│
└─→ "n이 뭔데?"
│
└─→ "시퀀스 길이"
│
└─→ "그래서 뭐가 문제인데?"
│
└─→ "길이가 2배면 비용이 4배"
│
└─→ "10만 토큰 넣으면?"
│
└─→ "100억 번 연산"
│
└─→ "GPU 메모리 폭발"
│
└─→ "그래서 대안을 찾아야 해"
│
└─→ 여기서 지옥 시작
```
### 대안들의 계보
```
"O(n²) 대신 O(n) 하고 싶어"
│
├─→ Sparse Attention (일부만 보자)
│ │
│ └─→ "어떤 걸 봐야 하는데?"
│ │
│ └─→ "그걸 알면 이미 Attention 안 해도 됨"
│ │
│ └─→ 【모순】
│ │
│ └─→ 그래도 휴리스틱으로 함 (도망)
│
├─→ Linear Attention (커널 트릭)
│ │
│ └─→ "Softmax를 근사하면..."
│ │
│ └─→ "왜 정확히 안 되는 건데?"
│ │
│ └─→ 【커널 방법론】
│ │
│ └─→ RKHS
│ │
│ └─→ 【함수해석학】
│ │
│ └─→ 여기서 한 학기
│
├─→ State Space Models (Mamba)
│ │
│ └─→ "순환 구조로 압축하자"
│ │
│ └─→ 아래에서 자세히 (공포)
│
└─→ Memory Systems (Titans, Hope)
│
└─→ "메모리에 저장하자"
│
└─→ 더 아래에서 (더 공포)
```
---
## 2. Mamba를 이해하고 싶다고?
### 전체 의존성 트리
```
"Mamba가 뭐야?"
│
├─→ "Selective State Space Model이야"
│ │
│ ├─→ "State Space Model이 뭔데?"
│ │ │
│ │ └─→ "연속 시스템을 이산화한 순환 모델이야"
│ │ │
│ │ ├─→ "연속 시스템?"
│ │ │ │
│ │ │ └─→ "dx/dt = Ax + Bu, y = Cx + Du"
│ │ │ │
│ │ │ └─→ "이게 뭔 소리야?"
│ │ │ │
│ │ │ └─→ 【제어이론】
│ │ │ │
│ │ │ ├─→ 상태 공간 표현
│ │ │ ├─→ 전달 함수
│ │ │ ├─→ 안정성 분석
│ │ │ └─→ 전자공학과 3학년 (반갑습니다)
│ │ │
│ │ ├─→ "이산화는 어떻게?"
│ │ │ │
│ │ │ └─→ "여러 방법이 있어"
│ │ │ │
│ │ │ ├─→ Zero-Order Hold (ZOH)
│ │ │ │ │
│ │ │ │ └─→ "적분해서 유도"
│ │ │ │ │
│ │ │ │ └─→ 【행렬 지수함수】
│ │ │ │ │
│ │ │ │ └─→ e^{At} = Σ(At)^n/n!
│ │ │ │ │
│ │ │ │ └─→ "무한급수가 수렴해?"
│ │ │ │ │
│ │ │ │ └─→ 【해석학】
│ │ │ │ │
│ │ │ │ └─→ 여기서 2주
│ │ │ │
│ │ │ ├─→ Bilinear Transform
│ │ │ │ │
│ │ │ │ └─→ "s = 2/Δ · (z-1)/(z+1)"
│ │ │ │ │
│ │ │ │ └─→ "z가 뭔데?"
│ │ │ │ │
│ │ │ │ └─→ 【Z-변환】
│ │ │ │ │
│ │ │ │ └─→ 【신호처리】
│ │ │ │ │
│ │ │ │ ├─→ 라플라스 변환
│ │ │ │ ├─→ 푸리에 변환
│ │ │ │ └─→ 전자공학과 2학년 (또 만났네요)
│ │ │ │
│ │ │ └─→ "어떤 걸 써야 해?"
│ │ │ │
│ │ │ └─→ "상황 봐서" (무책임한 답변)
│ │ │
│ │ └─→ "순환 구조가 왜 좋은 건데?"
│ │ │
│ │ └─→ "h_t = Āh_{t-1} + Bx_t 이니까"
│ │ │
│ │ └─→ "이게 왜 O(n)인데?"
│ │ │
│ │ └─→ "각 스텝이 이전 상태만 참조하니까"
│ │ │
│ │ └─→ "아 RNN이랑 비슷한 거?"
│ │ │
│ │ └─→ "개념은 비슷한데 병렬화가 됨"
│ │ │
│ │ └─→ "어떻게?"
│ │ │
│ │ └─→ 【Parallel Scan】
│ │ │
│ │ └─→ 아래에서 계속
│ │
│ └─→ "Selective가 뭔데?"
│ │
│ └─→ "입력에 따라 파라미터가 바뀌는 거야"
│ │
│ ├─→ "뭐가 바뀌는데?"
│ │ │
│ │ └─→ "B, C, Δ가 입력의 함수야"
│ │ │
│ │ └─→ "Δ가 뭔데?"
│ │ │
│ │ └─→ "이산화 스텝 크기"
│ │ │
│ │ └─→ "그게 왜 입력에 따라 바뀌어야 해?"
│ │ │
│ │ └─→ "중요한 건 천천히, 안 중요한 건 빨리 지나가려고"
│ │ │
│ │ └─→ "그게 되는 이유?"
│ │ │
│ │ └─→ "Δ가 크면 이전 상태 영향↓, 현재 입력 영향↑"
│ │ │
│ │ └─→ "수학적으로 보여줘"
│ │ │
│ │ └─→ Ā = exp(ΔA), 큰 Δ → Ā → 0
│ │ │
│ │ └─→ 【행렬 지수함수】 또 등장
│ │
│ └─→ "왜 이게 중요한데?"
│ │
│ └─→ "LTI vs LTV"
│ │
│ ├─→ "LTI (Linear Time-Invariant)"
│ │ │
│ │ └─→ "파라미터가 고정"
│ │ │
│ │ └─→ "컨볼루션으로 계산 가능"
│ │ │
│ │ └─→ "FFT로 O(n log n)"
│ │ │
│ │ └─→ 【푸리에 변환】
│ │ │
│ │ └─→ 드디어 익숙한 게 나왔다!!! (감동)
│ │ │
│ │ └─→ 근데 Mamba는 이거 안 씀
│ │ │
│ │ └─→ ??? (시간 낭비였나?)
│ │
│ └─→ "LTV (Linear Time-Varying)"
│ │
│ └─→ "파라미터가 시간에 따라 변함"
│ │
│ └─→ "컨볼루션 안 됨"
│ │
│ └─→ "그럼 어떻게 빠르게 계산해?"
│ │
│ └─→ 【Parallel Scan】 ← 여기가 핵심
│ │
│ └─→ 아래에서...
│
├─→ 【Parallel Scan (Selective Scan)】 ← Mamba의 진짜 비밀
│ │
│ └─→ "순환인데 병렬화가 된다?"
│ │
│ └─→ "Associative Operation이면 됨"
│ │
│ └─→ "Associative가 뭔데?"
│ │ │
│ │ └─→ "(a ⊕ b) ⊕ c = a ⊕ (b ⊕ c)"
│ │ │
│ │ └─→ 【대수학】 결합법칙
│ │ │
│ │ └─→ 드디어 고등학교 수학!!! (축하)
│ │
│ └─→ "SSM 업데이트가 Associative해?"
│ │
│ └─→ "행렬로 표현하면 됨"
│ │
│ └─→ [h_t] [Ā Bx_t] [h_{t-1}]
│ │ [1 ] = [0 1 ] [1 ]
│ │
│ └─→ "행렬곱은 Associative하니까"
│ │
│ └─→ "Prefix Sum처럼 병렬 계산 가능"
│ │
│ └─→ "work O(n), span O(log n)"
│ │
│ └─→ 【병렬 알고리즘】
│ │
│ └─→ GPU 프로그래밍
│ │
│ └─→ CUDA
│ │
│ └─→ 여기서 또 한 달
│
├─→ 【HiPPO】 장기 기억의 비밀
│ │
│ └─→ "SSM이 장기 기억을 잘 하는 이유?"
│ │
│ └─→ "A 행렬 초기화가 특별해"
│ │
│ └─→ "HiPPO 행렬이 뭔데?"
│ │
│ └─→ "과거를 직교 다항식으로 압축"
│ │
│ ├─→ "직교 다항식?"
│ │ │
│ │ └─→ 【함수해석학】
│ │ │
│ │ ├─→ 르장드르 다항식
│ │ ├─→ 라게르 다항식
│ │ ├─→ 체비셰프 다항식
│ │ └─→ 왜 이름이 다 프랑스어임?
│ │ │
│ │ └─→ (역사적 이유)
│ │
│ └─→ "왜 직교 다항식으로 압축하면 좋은데?"
│ │
│ └─→ "최적의 근사를 보장하거든"
│ │
│ └─→ 【근사이론】
│ │
│ └─→ 바이어슈트라스 정리
│ │
│ └─→ 연속함수는 다항식으로...
│ │
│ └─→ 여기서 2주 (최소)
│
└─→ 【하드웨어 최적화】 실제로 빠르게 만들기
│
└─→ "이론상 O(n)인데 실제로 빠른가?"
│
└─→ "커널 퓨전 필수"
│
└─→ "커널 퓨전이 뭔데?"
│
└─→ "여러 연산을 하나의 CUDA 커널로"
│
└─→ "왜 그래야 하는데?"
│
└─→ "메모리 대역폭 병목"
│
└─→ 【GPU 아키텍처】
│
├─→ SRAM vs HBM
├─→ Memory Hierarchy
├─→ Warp Scheduling
└─→ 여기서부터 하드웨어 엔지니어
│
└─→ (분야 변경?)
```
### Mamba 요약 (여기까지 살아남았다면)
```
Mamba = SSM + Selection + Parallel Scan + HiPPO + CUDA 마법
= 제어이론 + 정보이론 + 병렬알고리즘 + 함수해석학 + GPU 프로그래밍
= ??? (혼란)
```
---
## 3. Titans를 이해하고 싶다고?
### 전체 의존성 트리
```
"Titans가 뭐야?"
│
├─→ "Attention + Neural Memory를 결합한 거야"
│ │
│ ├─→ "Neural Memory가 뭔데?"
│ │ │
│ │ └─→ "학습 가능한 메모리 모듈이야"
│ │ │
│ │ └─→ "그게 뭔 소리야?"
│ │ │
│ │ └─→ "테스트 타임에 메모리를 업데이트해"
│ │ │
│ │ ├─→ "테스트 타임에 학습을?"
│ │ │ │
│ │ │ └─→ "응, Test-Time Training이야"
│ │ │ │
│ │ │ └─→ 【Meta-Learning의 세계】 ← 여기서 분기
│ │ │ │
│ │ │ ├─→ MAML
│ │ │ │ │
│ │ │ │ └─→ "학습하는 법을 학습"
│ │ │ │ │
│ │ │ │ └─→ "이중 최적화"
│ │ │ │ │
│ │ │ │ └─→ 【Bilevel Optimization】
│ │ │ │ │
│ │ │ │ └─→ 여기서 한 달
│ │ │ │
│ │ │ └─→ In-Context Learning
│ │ │ │
│ │ │ └─→ "왜 되는지 아무도 모름 (진지)"
│ │ │ │
│ │ │ └─→ 【미해결 문제】
│ │ │
│ │ └─→ "메모리를 어떻게 업데이트해?"
│ │ │
│ │ └─→ "Gradient Descent로"
│ │ │
│ │ └─→ "추론 중에 Gradient를?"
│ │ │
│ │ └─→ "그래서 느리지 않냐고?"
│ │ │
│ │ └─→ "Mini-batch SGD 1스텝만"
│ │ │
│ │ └─→ "그래도 느린데?"
│ │ │
│ │ └─→ "그래서 효율적인 방법 찾아야..."
│ │ │
│ │ └─→ (연구 진행 중)
│ │
│ └─→ "왜 Attention이랑 같이 쓰는 건데?"
│ │
│ └─→ "Short-term은 Attention, Long-term은 Memory"
│ │
│ └─→ "왜 그렇게 나누는 게 좋은데?"
│ │
│ └─→ "인간 기억 시스템이랑 비슷하거든"
│ │
│ └─→ 【인지과학】 갑자기 등장
│ │
│ ├─→ Working Memory vs Long-term Memory
│ ├─→ Atkinson-Shiffrin Model
│ └─→ 심리학 개론 (반가워요)
│
├─→ 【Neural Memory 상세】 ← 핵심
│ │
│ └─→ "메모리가 정확히 뭐야?"
│ │
│ └─→ "학습 가능한 파라미터 M ∈ R^{d×k}"
│ │
│ ├─→ "어떻게 읽어?"
│ │ │
│ │ └─→ "Query로 Attention"
│ │ │
│ │ └─→ 여기서 Attention 다시 등장
│ │ │
│ │ └─→ 【무한 루프 시작】
│ │
│ ├─→ "어떻게 써?"
│ │ │
│ │ └─→ "Surprise 기반으로 업데이트"
│ │ │
│ │ └─→ "Surprise가 뭔데?"
│ │ │
│ │ └─→ "-log p(x), 정보량이야"
│ │ │
│ │ └─→ 【정보이론】 다시 등장
│ │ │
│ │ ├─→ Self-Information
│ │ ├─→ Entropy
│ │ └─→ KL Divergence
│ │ │
│ │ └─→ 여기서 2주
│ │
│ └─→ "왜 Surprise로 업데이트?"
│ │
│ └─→ "놀라운 건 기억해야 하니까"
│ │
│ └─→ "직관적이네"
│ │
│ └─→ 드디어 말이 되는 게 나왔다!!! (감동)
│
├─→ 【Modern Hopfield Networks 연결】
│ │
│ └─→ "Neural Memory가 Hopfield Network랑 관련 있어?"
│ │
│ └─→ "Associative Memory 관점에서 비슷해"
│ │
│ └─→ "Hopfield Network가 뭔데?"
│ │
│ └─→ "에너지 기반 연상 기억 모델이야"
│ │
│ └─→ 【통계물리학】 갑자기 등장
│ │
│ ├─→ 에너지 함수
│ │ │
│ │ └─→ E = -Σ w_ij s_i s_j
│ │ │
│ │ └─→ "이게 Ising Model 아냐?"
│ │ │
│ │ └─→ "맞아"
│ │ │
│ │ └─→ 【통계역학】
│ │ │
│ │ └─→ 물리학과 인사하세요
│ │
│ ├─→ Associative Memory
│ │ │
│ │ └─→ "패턴 저장하고 불러오기"
│ │ │
│ │ └─→ "몇 개나 저장 가능?"
│ │ │
│ │ └─→ "0.14N개 (Classic)"
│ │ │
│ │ └─→ "Modern Hopfield은 exp(N)개"
│ │ │
│ │ └─→ "어떻게?"
│ │ │
│ │ └─→ "에너지 함수 바꾸면"
│ │ │
│ │ └─→ 【Ramsauer et al. 2020】
│ │ │
│ │ └─→ "이게 Attention이랑 같다?"
│ │ │
│ │ └─→ "응"
│ │ │
│ │ └─→ 연결고리 발견!!! (감동)
│ │
│ └─→ 근데 Titans는 다른 방식 씀
│ │
│ └─→ (시간 낭비였나? 아니긴 한데...)
│
├─→ 【Memory Integration 방식】
│ │
│ └─→ "메모리를 어떻게 Transformer에 붙여?"
│ │
│ ├─→ "MAC (Memory as Context)"
│ │ │
│ │ └─→ "메모리 읽은 걸 컨텍스트에 붙여"
│ │ │
│ │ └─→ "그럼 시퀀스가 길어지잖아?"
│ │ │
│ │ └─→ "그래서 메모리 크기 제한 필요"
│ │ │
│ │ └─→ (trade-off)
│ │
│ ├─→ "MAG (Memory as Gate)"
│ │ │
│ │ └─→ "메모리로 Attention을 조절"
│ │ │
│ │ └─→ "Gating이 뭔데?"
│ │ │
│ │ └─→ "σ(x) ⊙ y 형태"
│ │ │
│ │ └─→ "LSTM의 Gate랑 비슷?"
│ │ │
│ │ └─→ "응"
│ │ │
│ │ └─→ 【LSTM】 다시 등장
│ │ │
│ │ └─→ 1997년 논문
│ │ │
│ │ └─→ 원조 장기 기억 (감동)
│ │
│ └─→ "MAL (Memory as Layer)"
│ │
│ └─→ "별도 레이어로 메모리 처리"
│ │
│ └─→ "가장 깔끔한 분리"
│ │
│ └─→ "성능은?"
│ │
│ └─→ "실험해봐야 함"
│ │
│ └─→ (또 실험)
│
└─→ 【Persistent Memory vs Contextual Memory】
│
└─→ "Task-level vs Instance-level 메모리 구분?"
│
└─→ "응, 두 가지를 분리해야 해"
│
├─→ "Persistent Memory"
│ │
│ └─→ "모든 시퀀스에서 공유"
│ │
│ └─→ "학습된 지식 저장"
│
└─→ "Contextual Memory"
│
└─→ "현재 시퀀스에만 해당"
│
└─→ "Test-time에 업데이트"
│
└─→ "이 구분이 왜 중요한데?"
│
└─→ "지식 vs 맥락 분리"
│
└─→ 【Episodic vs Semantic Memory】
│
└─→ 인지과학 또 등장
```
---
## 4. Hope를 이해하고 싶다고?
### 전체 의존성 트리
```
"Hope가 뭐야?"
│
├─→ "Nested Learning으로 Self-Modifying 네트워크를 만드는 거야"
│ │
│ ├─→ "Nested Learning이 뭔데?"
│ │ │
│ │ └─→ "학습 안에 학습이 있는 구조야"
│ │ │
│ │ └─→ "Inner Loop / Outer Loop?"
│ │ │
│ │ └─→ "응, Bilevel Optimization이야"
│ │ │
│ │ └─→ 【Bilevel Optimization】
│ │ │
│ │ ├─→ "상위 문제가 하위 문제 최적해에 의존"
│ │ │ │
│ │ │ └─→ "수식으로 보여줘"
│ │ │ │
│ │ │ └─→ min_θ L(θ, φ*(θ))
│ │ │ where φ*(θ) = argmin_φ l(θ, φ)
│ │ │ │
│ │ │ └─→ "gradient 어떻게 계산해?"
│ │ │ │
│ │ │ └─→ 【Implicit Differentiation】
│ │ │ │
│ │ │ └─→ dφ*/dθ 계산해야 함
│ │ │ │
│ │ │ └─→ 【암묵적 함수 정리】
│ │ │ │
│ │ │ └─→ 【해석학】
│ │ │ │
│ │ │ └─→ 여기서 또 2주
│ │ │
│ │ └─→ "왜 이렇게 복잡한 걸 해?"
│ │ │
│ │ └─→ "빠른 적응을 위해서"
│ │ │
│ │ └─→ "Meta-Learning이랑 같은 거?"
│ │ │
│ │ └─→ "관련 있어"
│ │ │
│ │ └─→ MAML, Reptile, ...
│ │ │
│ │ └─→ 여기서 한 달
│ │
│ └─→ "Self-Modifying이 뭔데?"
│ │
│ └─→ "네트워크가 자기 파라미터를 수정해"
│ │
│ └─→ "Test-time에?"
│ │
│ └─→ "응"
│ │
│ └─→ "그게 가능해?"
│ │
│ └─→ "Hypernetwork 비슷한 개념이야"
│ │
│ └─→ 【Hypernetwork】
│ │
│ └─→ "네트워크가 다른 네트워크의 가중치 생성"
│ │
│ └─→ "Neural Turing Machine이랑 관련?"
│ │
│ └─→ 【Differentiable Computing】
│ │
│ └─→ 2014-2016년 DeepMind 시절
│ │
│ └─→ 역사 공부 (탈출)
│
├─→ 【Causal Memory [...]】 ← Hope의 핵심
│ │
│ └─→ "CMS가 뭔데?"
│ │
│ └─→ "인과적으로 메모리를 업데이트하는 시스템이야"
│ │
│ ├─→ "인과적이란 게 뭔 의미야?"
│ │ │
│ │ └─→ "과거가 미래에 영향, 미래는 과거에 영향 X"
│ │ │
│ │ └─→ "그거 당연한 거 아냐?"
│ │ │
│ │ └─→ "Attention은 양방향이거든"
│ │ │
│ │ └─→ "아 그래서 Causal Mask 쓰는 거구나"
│ │ │
│ │ └─→ "근데 메모리 시스템에서도 중요해"
│ │ │
│ │ └─→ "왜?"
│ │ │
│ │ └─→ "미래 정보 누출 방지"
│ │ │
│ │ └─→ 【인과추론】 갑자기
│ │ │
│ │ ├─→ Pearl의 인과 계층
│ │ ├─→ do-calculus
│ │ └─→ 여기서부터 철학 (진지)
│ │
│ └─→ "메모리 업데이트는 어떻게?"
│ │
│ └─→ "Gradient-based + Causal Masking"
│ │
│ └─→ "Surprise도 쓰나?"
│ │
│ └─→ "비슷한 개념이 있어"
│ │
│ └─→ Prediction Error
│ │
│ └─→ 【Predictive Coding】
│ │
│ └─→ 신경과학에서 온 이론
│ │
│ └─→ 뇌과학 등장 (어디까지 가는 거야)
│
├─→ 【TTT (Test-Time Training) Layer】
│ │
│ └─→ "Hope 이전에 TTT Layer 논문이 있어"
│ │
│ └─→ "어떤 관계야?"
│ │
│ └─→ "TTT: 선형 모델을 내부 상태로"
│ │
│ └─→ "Hope: 더 일반적인 프레임워크"
│ │
│ └─→ "TTT부터 이해해야 Hope가 이해됨?"
│ │
│ └─→ "추천"
│ │
│ └─→ 【TTT 논문 먼저】
│ │
│ └─→ Sun et al. 2024
│ │
│ └─→ (읽기 추가)
│
└─→ 【Nested Learning 상세】
│
└─→ "학습 안의 학습이 정확히 뭐야?"
│
└─→ "Outer: 전체 시퀀스 Loss"
│
└─→ "Inner: 로컬 예측 Loss"
│
└─→ "Inner에서 메모리 업데이트"
│
└─→ "Outer에서 전체 파라미터 업데이트"
│
└─→ "그럼 Backward가 두 번?"
│
└─→ "응, Gradient of Gradient"
│
└─→ 【Second-Order Optimization】
│
├─→ Hessian
│ │
│ └─→ O(n²) 파라미터
│ │
│ └─→ "계산 불가능"
│ │
│ └─→ "근사해야 함"
│ │
│ └─→ Hessian-Free Methods
│ │
│ └─→ 【수치 최적화】
│ │
│ └─→ 여기서 또 한 달
│
└─→ Truncated Backprop
│
└─→ "몇 스텝만 Unroll"
│
└─→ "Bias 생기지 않아?"
│
└─→ "생김"
│
└─→ "그래도 실용적이라 씀"
│
└─→ 일단 되니까 (도망)
```
---
## 5. 그래서 이 셋의 관계는?
### 비교 정리
```
Mamba Titans Hope
─────────────────────────────────────────────────────────────
핵심 아이디어 SSM + Selection Neural Memory Nested Learning
복잡도 O(n) O(n) + α O(n) + αα
장기 기억 상태 압축 명시적 메모리 자기수정 메모리
이론적 기반 제어이론 정보이론 최적화 이론
구현 난이도 CUDA 지옥 중간 높음
읽어야 할 것 물리+공학 인지과학+ML 최적화+ML
─────────────────────────────────────────────────────────────
```
### 선택 가이드
```
"나는 뭘 공부해야 해?"
│
├─→ 실용적 구현 원하면
│ │
│ └─→ Mamba (구현체 많음)
│ │
│ └─→ 근데 CUDA 커널 이해 필요 (어려움)
│
├─→ 이론적 이해 원하면
│ │
│ └─→ Titans (개념이 직관적)
│ │
│ └─→ 근데 Test-time 학습 이해 필요
│
└─→ 최신 연구 따라가려면
│
└─→ Hope (2024년 말 논문)
│
└─→ 근데 이전 것들 다 알아야 함
│
└─→ 【무한 루프】
```
---
## 6. 이거 다 알아야 해?
### 정직한 답변
```
"다 알아야 하나요?"
│
├─→ 논문 쓰려면: 해당 분야는 깊게, 나머지는 개념만
├─→ 구현하려면: Mamba 위주 + 라이브러리 활용
├─→ 비교하려면: 각각의 핵심 아이디어만
└─→ 사용만 하려면:
from mamba_ssm import Mamba
model = Mamba(d_model=512)
# 끝
```
### 현실적 학습 시간
| 목표 | 소요 시간 | 실제 의미 |
|------|----------|----------|
| API 사용 | 1일 | 없음 |
| 파인튜닝 | 1-2주 | 설정 파일 수정 |
| 아키텍처 이해 | 1-3개월 | 트리의 1단계들 |
| 논문 이해 | 6개월-1년 | 트리의 2단계들 |
| 개선 제안 | 1-2년 | 트리 대부분 |
| 새 아키텍처 제안 | 3년+ | 트리 전체 + 직관 |
| 완전 이해 | ??? | 저자도 모르는 것 있음 (진지) |
### 분야별 필요 지식
```
【공통 필수】
├── 선형대수: 행렬, 고유값, SVD
├── 미적분: 편미분, 연쇄법칙
├── 확률론: 기초 통계
└── 딥러닝: Transformer 기본
【Mamba 특화】
├── 제어이론: 상태 공간, 안정성
├── 신호처리: Z-변환, 이산화
├── 병렬 알고리즘: Scan operations
└── GPU 프로그래밍: CUDA (선택적)
【Titans 특화】
├── 정보이론: 엔트로피, Surprise
├── 인지과학: 기억 시스템 (개념만)
├── Meta-Learning: MAML 등 (개념만)
└── Hopfield Networks: 에너지 기반 모델
【Hope 특화】
├── 최적화 이론: Bilevel, Implicit Diff
├── Meta-Learning: 심화
├── 인과추론: 기초 개념
└── Second-order 방법: Hessian 근사
【실제로 쓰는 것】
└── model.forward(x)
```
---
## 7. 의존성 지옥 탈출 가이드
### 옵션 A: 전략적 포기
```python
# Mamba 쓰기
from mamba_ssm import Mamba
layer = Mamba(d_model=512, d_state=16, d_conv=4)
# 또는 Transformer 쓰기 (여전히 좋음)
from transformers import AutoModel
model = AutoModel.from_pretrained("...")
# 솔직히 Attention 충분히 빠름 (현실)
```
### 옵션 B: 필요할 때 파기
```
1. 일단 논문 Abstract + Figure 1만 봄
2. 코드 돌려봄
3. 이상하면 해당 부분만 파기
4. 반복
5. 어느새 알게 됨 (마법)
```
### 옵션 C: 정통파 (비추천)
```
선형대수 (3개월)
↓
미적분 + 해석학 (3개월)
↓
확률론 (2개월)
↓
신호처리 (2개월)
↓
제어이론 (3개월)
↓
최적화 이론 (3개월)
↓
딥러닝 기초 (3개월)
↓
Transformer (2개월)
↓
SSM 이론 (2개월)
↓
Meta-Learning (2개월)
↓
Mamba/Titans/Hope (3개월)
↓
총 소요: 2.5-3년
그 사이에 또 새로운 아키텍처 등장
(Attention Is All You Need → No It Isn't → Actually Maybe)
(망)
```
### 옵션 D: 하이브리드 (추천)
```
1. 이 문서로 큰 그림 파악 (1일)
2. Lilian Weng 블로그로 직관 형성 (1주)
3. 코드로 실습 (1-2주)
4. 궁금한 부분만 깊이 파기 (ongoing)
5. 수학은 막힐 때 그때그때
6. 논문은 Method 섹션 위주로
핵심: 모든 걸 다 알 필요 없음
필요한 것만 알면 됨
(이게 제일 어려움)
```
---
## 8. FAQ
### "Attention 안 쓰면 성능 떨어지지 않나요?"
```
├─→ 일반적인 경우: 비슷하거나 살짝 낮음
├─→ 긴 시퀀스: 오히려 좋을 수 있음
├─→ 결론: 상황 봐서 (무책임한 답변)
└─→ 추가: Hybrid가 대세
```
### "수학 몰라도 돼요?"
```
├─→ 사용만: 됨
├─→ 파인튜닝: 됨
├─→ 구현: 힘듦
├─→ 논문 이해: 안 됨
├─→ 연구: 절대 안 됨
└─→ 근데 필요한 것만 그때그때 하면 됨
```
### "어디서 시작해요?"
```
추천 순서:
1. Attention 복습 (필수)
2. "The Annotated S4" 블로그 (S4/Mamba 직관)
3. Mamba 논문 + 공식 구현 (실전)
4. Titans/Hope는 관심 있으면 (선택)
영상:
- Yannic Kilcher Mamba 리뷰
- AI Coffee Break 설명
블로그:
- Lilian Weng (갓)
- Jay Alammar 시각화
```
### "얼마나 걸려요?"
```
"1주일이요" - 천재 or Attention만 아는 사람
"1개월이요" - 낙관주의자
"3개월이요" - 현실주의자
"6개월이요" - 깊이 파는 사람
"평생이요" - 진실
"모르겠어요" - 정직한 사람
```
### "포기해도 돼요?"
```
됩니다.
Attention이 아직도 충분히 좋고,
Flash Attention이 하드웨어 문제 많이 해결했고,
100K 토큰 정도는 그냥 됨.
다만:
- 1M+ 토큰 하려면 대안 필요
- 연구자라면 알아야 함
- 회사에서 시키면... 화이팅
```
### "이 분야 전망이 어때요?"
```
├─→ Hot함 (진지)
├─→ Mamba2, Jamba, Griffin 등 계속 나옴
├─→ 하이브리드가 대세
├─→ 근데 6개월 뒤엔 모름
└─→ Transformer 끝났다는 말 10번째 듣는 중
└─→ 아직 안 끝남 (국룰)
```
---
## 9. 마무리
### 이 문서를 읽고 난 당신의 상태
```
읽기 전: "Mamba가 Attention 대체한다는데 뭔지 알아볼까"
읽은 후: "제어이론... 신호처리... 통계물리학... 인지과학..."
"나는 왜 이 길을 선택했는가"
"그냥 Attention 쓸까"
```
### 위로의 말
- 이 분야 전문가도 전부 다 알지 못함
- Mamba 저자도 Titans 모르고, Titans 저자도 Hope 세부 모름
- "잘 모르겠지만 실험하면 되더라"가 업계 표준
- 논문 Appendix는 리뷰어도 안 읽음 (진지)
- 당신만 어려운 게 아님
### 그래도 하고 싶다면
```
핵심 팁:
1. 완벽히 이해하려 하지 말 것
2. 필요한 것만 골라서 깊이 팔 것
3. 코드 먼저, 이론 나중에
4. 질문하는 걸 부끄러워하지 말 것
5. 논문 한 번에 이해 안 되는 거 정상임
결국: 시간 + 끈기 + 구글링 = 언젠가 됨
화이팅!!!
(작성자도 아직 Implicit Differentiation 유도 못 함)
```
---
## 부록: 추천 자료 (순서대로)
### 블로그 (무료, 필수)
1. "The Annotated S4" - srush/annotated-s4
2. Lilian Weng - "State Space Models"
3. "A Visual Guide to Mamba" - Maarten Grootendorst
### 영상 (무료)
1. Yannic Kilcher - Mamba 논문 리뷰
2. AI Coffee Break - SSM 설명
### 논문 (순서대로)
1. S4 (Gu et al., 2021) - SSM 기초
2. Mamba (Gu & Dao, 2023) - Selection + Scan
3. Mamba-2 (Dao & Gu, 2024) - State Space Duality
4. Titans (Behrouz et al., 2024) - Neural Memory
5. Hope (Poli et al., 2024) - Nested Learning
### 코드
- state-spaces/mamba (공식)
- huggingface/transformers (Mamba 지원)
- 각 논문의 공식 repo
### 수학 기초 (막힐 때)
- 3Blue1Brown 선형대수 (영상)
- Steve Brunton 제어이론 (영상)
- 확률론은... 책 읽어야 함 (도망)
루드비히 볼츠만의 최후를 아는 사람 : ㄱ-
가끔 특갤에서 장기기억 해결했다는 사람(환각) 나옴 걱정 ㄴㄴ - dc App
프로모델 성능 좋네
클로드 오푸스임
@약팔이아님 오......
아몰랑 해줘
그래서 장기기억 지속학습 다 해준대?