Mamba
맘바 및 상태 공간 모델에 대한 비주얼 가이드는 상태 공간 모델(SSM)과 맘바 아키텍처의 개념을 이해하기 쉽게 설명하고 있다. 이 가이드는 트랜스포머 모델의 한계를 극복하기 위해 제안된 맘바를 소개하며, 특히 선택적 상태 공간 모델(Selective State Space Model, S6)과 하드웨어 인식 알고리즘을 통해 성능을 개선하는 방법을 다룬다.
상태 공간 모델은 시퀀스 데이터를 처리하기 위해 시스템의 상태를 표현하는 수학적 방법이다. 맘바는 SSM을 기반으로 정보를 선택적으로 유지하거나 무시할 수 있도록 행렬 B와 C를 입력에 따라 동적으로 조정하여, 트랜스포머의 어텐션 메커니즘을 보완하고자 한다. 또한, 병렬 스캔 알고리즘과 하드웨어 인식 기술을 활용하여 효율적으로 계산할 수 있도록 설계되었다.
이 아키텍처는 다양한 표현 방식을 통해 학습과 추론을 최적화하며, 재귀적 표현으로 빠른 추론을, 컨볼루셔널 표현으로 병렬화된 학습을 가능하게 한다. 맘바는 이를 통해 트랜스포머 모델과 유사한 성능을 유지하면서도 효율성을 극대화하는 것이 목표이다.
1. SSM
선택적 SSM은 데이터를 선택적으로 집중하거나 무시할 수 있도록 파라미터를 인풋에 따라 조정하며, 중요한 정보에 더 집중하도록 설계한다. 또한, 하드웨어와의 연계를 통해 일반 SSM이 시간과 인풋에 대한 불변성을 가질 때의 계산 효율 문제를 극복하고자 GPU 메모리 계층을 활용하여 병렬 처리 속도를 향상시킨다. 기존 SSM 구조와 트랜스포머의 MLP 블록을 결합한 Mamba 모델을 사용하여 높은 퀄리티와 빠른 학습 속도, 긴 시퀀스 이해 능력을 제공한다. 이를 통해 기존 모델의 한계를 극복하고 효율적인 긴 문맥 처리를 목표로 한다.
- 윈도우 슬라이딩(Window Sliding)은 신호처리에서 널리 사용되는 기법으로, 긴 신호를 일정한 크기의 짧은 구간(윈도우)으로 나누어 분석하는 방법.
- 주로 시간에 따라 신호의 특성이 변할 때, 각 구간의 특성을 독립적으로 분석하기 위해 사용됨.
윈도우 슬라이딩의 과정
- 윈도우 설정
먼저 고정된 크기의 윈도우(예: 256 샘플, 1초 등)를 설정
윈도우의 크기는 신호의 특성에 따라 다르게 설정할 수 있다.
작은 윈도우는 더 높은 해상도의 시간 정보를 제공하고, 큰 윈도우는 더 좋은 주파수 해상도를 제공 - 슬라이딩
설정한 윈도우를 일정한 간격(오버랩 비율)으로 이동
각 구간의 신호를 분석함. 50% 오버랩을 적용하면, 이전 윈도우의 절반 정도가 다음 윈도우와 겹침
각 윈도우 구간에서 Fourier Transform, 필터링, 에너지 계산 등 원하는 신호 분석을 수행
State Space Model
SSM은 시간에 따라 변화하는 시스템의 상태를 모델링하기 위해 사용하는 기법
는 히든 상태 벡터 는 관측 벡터 는 액션 벡터
시계열 데이터나 신호 처리에서 시스템의 동작을 추정하고 예측하는 데 자주 사용되며, 특히 Kalman 필터와 같은 알고리즘을 통해 히든 벡터를 재귀적으로 추정할 수 있다.
"Structured State Space Model(Gu 2022)"은 기존의 SSM을 확장한 형태
이산화
Zero-Order Hold(ZOH)는 이산적으로 샘플링된 신호를 연속적인 형태로 변환할 때 사용하는 방법으로, 각 샘플 값을 다음 샘플이 도착할 때까지 일정하게 유지하여 계단형 함수 형태로 신호를 만든다. 이는 0차 보간으로 간주되며, 샘플링 시점 사이의 값이 변하지 않고 상수로 유지되도록 한다. ZOH는 주로 디지털 신호를 아날로그 신호로 변환하는 과정에서 활용되며, 제어 시스템이나 디지털-아날로그 변환기(DAC)에서도 널리 사용된다.
대각 행렬은 사실상 N개의 수열로 구성된 것으로 볼 수 있다. 이는 각 대각 요소가 독립적인 시계열을 나타내기 때문이다. 예를 들어, S4를 효율적으로 계산하기 위해 행렬 A,B,C를 대각 행렬로 표현함으로써, 각 행렬의 연산을 N개의 독립된 수열에 대한 연산으로 단순화할 수 있다. 이러한 대각 행렬 표현은 계산 효율성을 높이고 메모리 사용량을 줄이는 데 도움이 된다.
선택 메커니즘은 세 가지 주요 효과를 가진다. 변수를 통해 간격을 만들어 노이즈 토큰을 제거하고 관심 있는 데이터만 인풋으로 받을 수 있게 한다. 문맥을 필터링하여 대부분의 수열 모델이 긴 문맥에서 약점을 보이는 문제를 해결하고, 상태를 언제든지 리셋할 수 있어 긴 문맥에서도 성능을 유지한다. 경계를 리셋하는 기능을 통해 여러 독립적인 수열이 입력될 때 트랜스포머가 어텐션 마스크를 사용해 경계를 분리하는 데 비해, 선택적 모델은 구분을 잘 못하는 경우에도 이 상태를 리셋할 수 있다.
△는 인풋을 얼마나 집중하거나 무시할지 조절하는 역할을 하며, RNN의 게이트와 유사하게 동작한다. SSM에서는 연속 시스템을 이산화하는 타임스텝 역할을 하며, time step이 길면 현재 인풋에 더 많이 집중하고, 짧으면 인풋을 무시하는 것과 유사하다. A는 △를 통해서만 모델에 영향을 미치며, 선택적 효과를 추가했을 때 성능 차이가 크지 않았다. B와 C는 인풋을 잠재 상태로 넣을지 말지, 또는 잠재 상태를 아웃풋으로 전달할지 조절하는 것으로, 모델이 순환하는 동역학을 조정한다.