MoE는 이미 Mixtral, DeepSeek, Qwen 계열 모델들로 production 검증이 끝났다. 반면 Mixture of Tokens(MoT)라는 이름은 아직 낯설다. 둘 다 dense 모델 대비 FLOP을 줄인다고 주장하는데, 무엇이 다른가.
희소성을 어느 축에 적용하느냐가 갈린다. MoE는 파라미터 축 — 레이어마다 어느 expert(FFN)에 토큰을 보낼지 결정한다. MoT는 시퀀스 축 — 시퀀스 안의 어느 토큰을 이 레이어에서 계산할지 결정한다. 두 기법의 희소성 방향은 직교하고, 같은 모델 안에서 동시에 적용할 수 있다.
MoE: 파라미터 예산을 늘리면서 FLOP을 유지한다
Mixtral 8x7B 구조를 보면 이렇다. 총 파라미터는 46.7B이지만 각 토큰이 실제로 거치는 파라미터는 12.9B뿐이다. 32개 레이어 각각에 8개의 expert FFN이 있고, 토큰마다 top-2를 선택해 계산한다. 토큰당 FLOP은 70B dense 모델의 약 19%(13B / 70B) 수준이고, 추론 속도는 Llama 2 70B 대비 약 6배 빠르다.
MoE는 파라미터를 줄이는 기법이 아니다. 46.7B 분량의 지식을 담으면서 FLOP은 12.9B dense 수준으로 유지하는 것이 목표다. "파라미터는 많게, 활성 FLOP은 적게" — 이게 MoE가 하는 일의 전부다. 비교 대상이 12.9B dense이면 MoE가 압도적으로 성능이 좋고, 46.7B dense이면 비슷하거나 약간 불리하지만 FLOP은 훨씬 덜 쓴다.
서빙 관점에서 MoE가 만드는 문제는 expert capacity에 있다. 한 expert가 처리할 수 있는 토큰 수에 상한을 두고, 초과하면 토큰을 드롭하거나 overflow expert로 보낸다. 배치가 커질수록 특정 expert에 토큰이 몰리는 load imbalance가 심해지고, 학습 시 load balancing loss를 추가해도 추론 시점에 imbalance는 완전히 잡히지 않는다.
Expert parallel 환경에서는 GPU utilization 문제로 이어진다. 각 expert가 처리하는 토큰 수가 다르니 어떤 GPU는 바쁘고 어떤 GPU는 논다. vLLM이 Expert Parallel Load Balancer(EPLB)를 추가한 것도 이 이유다. 배치 크기를 키우면 utilization이 개선되지만, KV 캐시 메모리가 배치 크기를 제약하는 구조 때문에 둘 사이에서 타협해야 한다.
MegaBlocks(Gale et al., 2022)은 이 문제를 다른 방향으로 푼다. MoE 연산을 블록-희소 행렬 연산으로 재정식화해서 토큰을 드롭하지 않으면서도 GPU 커널 효율을 확보한다. Tutel 대비 최대 40%, Megatron-LM 대비 2.4배의 학습 속도 향상을 보고했다.
MoT: 토큰 수준에서 계산을 건너뛴다
MoT의 아이디어는 단순하다. 모든 토큰이 모든 레이어의 Attention과 FFN을 통과할 필요는 없다. 어떤 레이어에서는 "중요한" 토큰만 full 계산을 하고, 나머지는 그 레이어를 건너뛰면 된다.
이 방향의 대표 구현이 Mixture-of-Depths(MoD)(Google DeepMind, 2024)다. 각 레이어에서 처리할 토큰 수 k를 사전에 고정하고, top-k routing으로 계산할 토큰을 선택한다. 선택받지 못한 토큰은 residual connection을 타고 그 레이어를 통째로 건너뛴다. 전체 FLOP 예산은 미리 고정되어 있지만, 어떤 레이어에서 어떤 토큰이 무거운 계산을 받는지는 입력 내용에 따라 동적으로 달라진다. 같은 FLOP 예산 안에서 baseline과 동등한 성능을 내고, post-training sampling 단계에서는 최대 50% 빠르다. 25% 적은 학습 FLOP으로 동등한 성능에 도달하는 설정도 실험했다.
더 단순한 선행 연구로는 Token Merging(ToMe)(ICLR 2023)이 있다. Vision Transformer 기준으로 유사한 토큰끼리 병합해서 시퀀스 길이를 줄이는 방식이다. ViT-L @ 512에서 throughput 2배를 정확도 0.2~0.3% 하락만으로 달성했다. LLM에서의 MoT와 동기는 같지만 병합 vs. skip이라는 구현 방식이 다르고, 적용 대상도 이미지 vs. 텍스트로 갈린다.
MoE와 비교해서 MoT의 결정적인 차이는 KV 캐시에 있다. MoE는 어떤 expert를 선택하든 모든 토큰이 모든 레이어를 거치기 때문에 KV 캐시 크기는 시퀀스 길이에 정비례해 증가한다. MoT는 특정 레이어에서 토큰을 skip하면 그 레이어의 attention 계산 자체가 생략되어 KV 캐시를 아예 만들지 않는다 — 긴 컨텍스트 서빙에서 MoE보다 직접적인 메모리 이점이 생기는 구조적 이유다.
두 기법의 트레이드오프
| MoE | MoT (MoD 계열) | |
|---|---|---|
| 희소성 축 | 파라미터 (expert FFN) | 시퀀스 (token skip) |
| FLOP 절감 위치 | FFN | Attention + FFN |
| 총 파라미터 | 증가 (expert 수만큼) | 동일 |
| KV 캐시 영향 | 없음 | 직접 감소 가능 |
| 레이어별 시퀀스 길이 | 고정 | 가변 |
| GPU 비정형성 원인 | expert dispatch 불균형 | 가변 토큰 수 |
| Production 성숙도 | 높음 | 낮음 (연구 단계) |
하드웨어 효율 관점에서 두 기법 모두 GPU utilization을 낮추지만 원인이 다르다. MoE의 비정형성은 expert dispatch에서 온다 — 어떤 토큰이 어느 GPU로 가는지가 동적으로 결정되어 all-to-all 통신이 발생하고, expert별 토큰 수 불균형이 생긴다. MoT의 비정형성은 가변 시퀀스 길이에서 온다 — 어떤 레이어에서 몇 개의 토큰이 active인지가 입력마다 달라져서 배치 내 샘플 간 레이어별 토큰 수가 모두 다르다.
EPLB나 MegaBlocks는 MoE 비정형성을 겨냥한 최적화다. MoT의 가변 메모리 패턴은 PagedAttention이 어느 정도 수용하지만, 레이어별로 active 토큰 수가 달라지면 KV 캐시 블록 수도 레이어마다 다르게 필요하고 이 크기를 prefill 시작 전에 예측하기 어렵다는 문제가 남는다.
둘을 동시에 쓸 때
MoE + MoT를 함께 쓰면 희소성 이점이 곱해진다. Expert dispatch 비정형성과 가변 시퀀스 길이가 동시에 존재하면, 배치 스케줄러 입장에서 한 forward pass 안에서도 레이어마다 다른 크기의 연산이 다른 GPU에서 동시에 돌아간다. KV 캐시 크기가 레이어별로, 입력별로 달라지니 PagedAttention이 있어도 사전 할당이 어렵다. Prefill과 decode 단계에서 token routing 패턴도 달라 비대칭 처리가 필요하다.
현재 vLLM이나 SGLang 기준으로 MoE + MoT 결합 모델에 대한 최적화 서빙 경로는 아직 완성 단계가 아니다. MoD 계열 자체가 2024년 논문 단계를 막 벗어나는 중이고, 대형 LLM 프리트레이닝에 실제로 적용된 사례가 아직 드물다. MoE처럼 production 서빙 스택에서 end-to-end 검증이 되려면 한 단계가 더 필요하다.