MoE 모델 서빙 개념 가 이드
현재 버전: vLLM v0.24+ / v0.25.x (2026-07 기준)
개요
Mixture of Experts(MoE) 모델은 대규모 언어 모델의 효율성을 극대화하는 아키텍처입니다. 전체 파라미터 중 일부 Expert만 활성화하여 Dense 모델 대비 적은 연산으로 동등한 품질을 달성합니다.
이 문서에서는 MoE 아키텍처의 핵심 개념, 모델별 리소스 요구사항, 분산 배포 전략을 다룹니다.
MoE 모델의 EKS 배포 YAML, helm 명령어, 멀티노드 구성 등 실전 배포는 커스텀 모델 배포 가이드를 참조하세요.
MoE 아키텍처 이해
Expert 네트워크 구조
MoE 모델은 여러 개의 "Expert" 네트워크와 이를 선택하는 "Router(Gate)" 네트워크로 구성됩니다.
라우팅 메커니즘
MoE 모델의 핵심은 입력 토큰에 따라 적절한 Expert를 선택하는 라우팅 메커니즘입니다.
- Gate 계산: 입력 토큰의 hidden state를 Gate 네트워크에 통과
- Expert 선택: Softmax 출력에서 Top-K Expert 선택
- 병렬 처리: 선택된 Expert들이 병렬로 입력 처리
- 가중 합산: Expert 출력을 Gate 가중치로 결합
MoE vs Dense 모델 비교
- 연산 효율성: 전체 파라미터의 일부만 활성화하여 추론 속도 향상
- 확장성: Expert 추가로 모델 용량 확장 가능
- 전문화: 각 Expert가 특정 도메인/태스크에 특화
GPU 메모리 요구사항
MoE 모델은 활성화되는 파라미터는 적지만, 전체 Expert를 메모리에 로드해야 합니다.
| 모델 | 총 파라미터 | 활성 파라미터 | FP16 메모리 | INT8 메모리 | 권장 GPU |
|---|---|---|---|---|---|
| Mixtral 8x7B | 46.7B | 12.9B | ~94GB | ~47GB | 2x A100 80GB |
| Mixtral 8x22B | 141B | 39B | ~282GB | ~141GB | 4x H100 80GB |
| DeepSeek-V3 | 671B | 37B | ~800GB* | ~400GB* | 8x H100 80GB |
| DeepSeek-MoE 16B | 16.4B | 2.8B | ~33GB | ~17GB | 1x A100 40GB |
| Qwen2.5-MoE-A14B | ~50B | 14B | ~100GB | ~50GB | 2x A100 80GB |
| Qwen1.5-MoE-A2.7B | 14.3B | 2.7B | ~29GB | ~15GB | 1x A100 40GB |
| DBRX | 132B | 36B | ~264GB | ~132GB | 4x H100 80GB |
| GLM-5 | 744B | 40B | ~1.5TB | ~744GB | 2x p5.48xlarge (PP=2) |
| Kimi K2.5 | ~1T | 32B | ~2TB | ~500GB | 1x p5.48xlarge (INT4) |
DeepSeek-V3: Multi-head Latent Attention (MLA) 아키텍처를 사용하여 KV 캐시 메모리를 대폭 절감합니다. 전통적인 MHA 대비 KV 캐시를 93.3% 절감하며 (DeepSeek-V2 논문 기준), 실제 메모리 요구량은 표기된 값보다 낮을 수 있습니다.
GLM-5 (2026년 2월 출시, 모델 카드 기준): 744B 총 파라미터 / 40B 활성, 256개 experts 중 8개 활성화. SWE-bench Verified 77.8%, Agentic Coding #1 (55.00), MIT 라이선스. FP8 양자화 버전은 ~744GB VRAM 필요 (2x p5.48xlarge, PP=2). HuggingFace: zai-org/GLM-5-FP8
Kimi K2.5 (2026년 1월 출시): ~1T 총 파라미터 / 32B 활성, Modified DeepSeek V3 MoE 아키텍처. SWE-bench Verified 76.8%, Agent Swarm 지원. INT4 양자화 버전은 ~595GB 가중치로 8x H200 권장 (KV 캐시 포함 시 단일 p5.48xlarge 부족). HuggingFace: moonshotai/Kimi-K2.5
정확한 메모리 요구량은 배치 크기와 시퀀스 길이에 따라 달라지므로 프로파일링을 권장합니다.
- KV Cache: 배치 크기와 시퀀스 길이에 따라 추가 메모리 필요
- Activation Memory: 추론 중 중간 활성화 값 저장 공간
- CUDA Context: GPU당 약 1-2GB의 CUDA 오버헤드
- Safety Margin: 실제 운영 시 10-20% 여유 공간 확보 권장
분산 배포 전략
대규모 MoE 모델은 단일 GPU에 로드할 수 없어 분산 배포가 필수입니다.
Tensor Parallelism 구성
텐서 병렬화(Tensor Parallelism)는 모델의 각 레이어를 여러 GPU에 분할합니다.
- NVLink 활용: GPU 간 고속 통신을 위해 NVLink 지원 인스턴스 사용
- TP 크기 선택: 모델 크기와 GPU 메모리에 따라 최소 TP 크기 선택
- 통신 오버헤드: TP 크기가 클수록 All-Reduce 통신 증가
Expert Parallelism
Expert 병렬화(Expert Parallelism)는 MoE 모델의 Expert를 여러 GPU에 분산합니다. vLLM v0.22+/v0.23.x에서는 TP 내에서 Expert가 자동으로 분산 배치됩니다.
Expert 활성화 패턴
MoE 모델의 성능 최적화를 위해 Expert 활성화 패턴을 이해해야 합니다.
- Auxiliary Loss: 학습 시 Expert 간 균등 분배를 유도하는 보조 손실
- Capacity Factor: Expert당 처리 가능한 최대 토큰 수 제한
- Token Dropping: 용량 초과 시 토큰 드롭 (추론 시 비활성화 권장)
700B+ MoE 모델 멀티노드 배포 개념
GLM-5, Kimi K2.5와 같은 700B+ MoE 모델은 단일 노드에 로드할 수 없어 멀티노드 배포가 필수입니다. vLLM v0.24+/v0.25.x에서는 LeaderWorkerSet(LWS) 기반 멀티노드 배포를 지원합니다.
| 모델 | 총 파라미터 | 활성 파라미터 | 권장 구성 | VRAM 요구량 |
|---|---|---|---|---|
| GLM-5 FP8 | 744B | 40B | 2x p5.48xlarge, PP=2, TP=8 | ~744GB |
| Kimi K2.5 INT4 | ~1T | 32B | 2x p5en.48xlarge, TP=8, PP=2 | ~595GB 가중치 |
| DeepSeek-V3 | 671B | 37B | 2x p5.48xlarge, PP=2, TP=8 | ~671GB |
| Mixtral 8x22B | 141B | 39B | 1x p5.48xlarge, TP=4 | ~282GB |
| Mixtral 8x7B | 47B | 13B | 1x p4d.24xlarge, TP=2 | ~94GB |
- LeaderWorkerSet 사용: Ray 의존성 없이 Kubernetes 네이티브 멀티노드 배포
- Pipeline Parallelism: PP=2 이상으로 레이어를 노드 간 분할
- FP8 양자화: 메모리 절감 (GLM-5 FP8 버전 권장)
- Network 최적화: NCCL 설정으로 노드 간 통신 최적화 (EFA 권장)
- INT4/AWQ 양자화: 메모리 절감 (단, Kimi K2.5는 INT4에서도 ~595GB로 멀티노드 권장)
- 네트워크 대역폭: 노드 간 All-Reduce 통신으로 인한 오버헤드 (EFA 권장)
- 로딩 시간: 700B+ 모델은 초기 로딩에 20-30분 소요 가능
- 메모리 여유: Safety margin 10-15% 확보 필요
- LeaderWorkerSet CRD: 클러스터에 LWS Operator 설치 필요