Mamba와 Selective State
마지막 수정:
Mamba는 SSM을 LLM에 맞게 다시 설계한 대표 구조다.
핵심은 selective state다.
모든 token을 같은 방식으로 state에 반영하지 않고,
입력 token에 따라 state update 방식을 바꾼다.
왜 selective가 필요한가
언어 sequence에서는 모든 token이 같은 중요도를 갖지 않는다.
어떤 token은 오래 기억해야 하고, 어떤 token은 금방 잊어도 된다. 어떤 정보는 다음 몇 token에만 필요하고, 어떤 정보는 문단 끝까지 영향을 준다.
고정된 update rule만 쓰면 이런 선택을 표현하기 어렵다.
Mamba는 입력으로부터 state update에 필요한 값들을 만든다.
input_t
-> update에 쓸 파라미터들
-> state_{t-1}를 state_t로 갱신
그래서 같은 모델이라도 token마다 state를 갱신하는 방식이 달라진다.
Attention과의 차이
Attention은 현재 token이 과거 token들을 직접 다시 본다.
current query -> past keys/values 전체 참조
Mamba는 과거 전체를 직접 다시 보는 대신 state를 갱신해 간다.
previous state + current input -> next state
이 차이는 모델 구조의 차이이기도 하지만, 추론 시스템의 차이이기도 하다. Attention serving은 KV cache를 관리한다. Mamba serving은 convolution state와 SSM state를 관리한다.
연결
- state-space-model-intuition: SSM을 recurrent state로 보는 기본 관점
- ssm-state-vs-kv-cache: Mamba state와 KV cache의 serving 차이
확인
- Mamba에서 “selective”하다는 말은 무엇을 선택한다는 뜻인가?
- Attention은 과거 정보를 어떻게 다시 참조하는가?
- Mamba의 recurrent state 관점이 serving system에 영향을 주는 이유는 무엇인가?