토큰마다 필요한 일이 달라
시퀀스 안의 모든 토큰이 같은 처리를 요구하지는 않아. 흔한 단어와 복잡한 수식, 드문 언어의 코드 식별자에 똑같은 계산 경로를 쓰는 건 낭비일 수 있어. Dense는 난이도와 관계없이 모든 토큰에 전체 연산 비용을 내. Mixture of Experts는 토큰과 관련된 네트워크 일부만 켜면 어떨지 묻는 구조야.
FFN 하나를 전문가 묶음으로 바꿔
MoE는 트랜스포머 레이어의 Dense FFN 하나를 여러 전문가 FFN과 라우터로 교체해. 어텐션, 층 정규화, 임베딩, 위치 인코딩은 Dense 트랜스포머와 같아. 구조가 달라지는 자리는 FFN 안쪽뿐이야.
네 가지 부품
- 전문가: 같은 모양이지만 각자 다른 가중치를 학습하는 독립 FFN이야.
- 라우터: 선형 층과 softmax 또는 sigmoid 같은 작은 네트워크가 토큰마다 전문가 점수를 매겨.
- Top-K 선택: 점수가 높은 K개 전문가만 토큰을 처리해. Mixtral은 top-2, DeepSeek-V2는 top-6, DeepSeek-V3와 Qwen3 MoE는 top-8을 써.
- 공유 전문가: DeepSeek 같은 일부 구조는 라우터 결정과 상관없이 모든 토큰이 거치는 전문가를 한두 개 둬.
얻는 것과 치르는 것
전체 파라미터 풀이 크므로 큰 모델의 용량을 얻고, N개 가운데 K개만 켜므로 토큰당 연산량은 훨씬 작은 모델에 가깝게 유지할 수 있어. 다만 K개만 계산하더라도 N개 전문가의 가중치를 모두 메모리에 올려야 해. MoE는 메모리와 연산량을 같은 숫자로 보던 습관을 깨.
먼저 모양부터 익혀
라우팅 규칙, 부하 균형 손실, 전문가 붕괴, 메모리 역설, 모델 패밀리별 차이는 뒤에서 다룰 거야. 지금은 Dense FFN 하나가 전문가 묶음과 라우터로 바뀐다는 모양만 단단히 잡아.