papers · 2026-03-22
DeepSeek-MoE 리뷰
1. Introduction
1.1 연구 배경 및 동기
- 대규모 언어 모델 확장이 성능 향상에 기여하지만, 높은 계산 비용이 문제로 부각됨.
- Mixture-of-Experts (MoE) 아키텍처가 모델 확장 시 효율적인 계산 자원 관리를 가능하게 하여 주목받음.
- Transformer 구조에 MoE가 도입되며 언어 모델 확장이 성공적으로 이루어짐.
1.2 주요 트렌드와 한계
MoE 아키텍처는 계산 효율성을 제공하지만, 두 가지 주요 문제가 존재.
- Knowledge Hybridity: 전문가에 할당된 토큰들이 다양한 지식을 포함하여 전문가가 여러 지식을 동시에 처리하기 어려움.
- Knowledge Redundancy: 전문가들 간에 중복된 지식이 학습되어 매개변수 효율이 저하됨.
1.3 연구 목적
- DeepSeekMoE는 전문가 특화(expert specialization)를 극대화하고 기존 MoE 문제를 해결하는 것을 목표로 함.
1.4 연구 방법
DeepSeekMoE 아키텍처의 두 가지 핵심 전략:
- Fine-Grained Expert Segmentation: 전문가를 더 세밀하게 분할하여 각 전문가가 특화된 지식을 학습하고, 전문가 조합의 유연성을 높임.
- Shared Expert Isolation: 일부 전문가를 공유 전문가로 설정하여 공통 지식을 집중적으로 학습하고 중복성을 줄임.
1.5 주요 결과
- DeepSeekMoE 2B: GShard 2B보다 높은 성능을 보이며, GShard 2.9B와 유사한 성능 달성.
- DeepSeekMoE 16B: 약 40%의 계산량만으로 DeepSeek 7B 및 LLaMA2 7B와 유사한 성능을 보임.
- 지도형 미세 조정을 통해 DeepSeekMoE Chat 16B가 대화형 모델에서도 높은 성능을 발휘함.
- 145B 매개변수 확장 실험에서도 기존 GShard 대비 지속적인 우위를 입증함.
1.6 논문 구성
- Chapter 2: Preliminaries Mixture-of-Experts(MoE) 아키텍처의 기본 개념과 기존 한계를 설명하고 수식적으로 정리함.
- Chapter 3: DeepSeekMoE Architecture Fine-Grained Expert Segmentation과 Shared Expert Isolation 전략을 중심으로 DeepSeekMoE 아키텍처 설계를 상세히 설명함.
- Chapter 4: Validation Experiments 실험 환경과 데이터, 하이퍼파라미터 설정을 기술하고 DeepSeekMoE 2B의 성능을 기존 모델들과 비교하여 평가함.
- Chapter 5: Scaling up to DeepSeekMoE 16B 모델을 16B로 확장하여 대규모 코퍼스로 훈련한 후 다양한 벤치마크에서 성능을 검증함.
- Chapter 6: Alignment for DeepSeekMoE 16B 지도형 미세 조정을 통해 대화형 모델(DeepSeekMoE Chat 16B)을 구축하고, 다양한 작업에서 성능을 평가함.
- Chapter 7: DeepSeekMoE 145B Ongoing DeepSeekMoE 145B 모델로의 초기 확장 실험을 보고하고, GShard와의 비교를 통해 향후 연구 방향을 제시함.
- Chapter 8: Conclusion 연구의 요약 및 기여, DeepSeekMoE 아키텍처의 성과와 한계를 논의하며 미래 연구 방향을 제안함.
2. Preliminaries: Mixture-of-Experts for Transformers
2.1 MoE 아키텍처 개요
MoE는 Transformer 언어 모델에서 효율성을 높이기 위해 사용되는 아키텍처.
표준 Transformer 모델은 L개의 블록을 쌓아 구성되며, 각 블록은 다음과 같은 두 단계로 이루어짐:
- Self-Attention 단계
- Feed-Forward Network(FFN) 단계
여기서 T는 시퀀스 길이, u와 h는 각 단계에서의 토큰별 hidden state를 나타냄.
2.2 MoE 레이어의 구성
- MoE 모델은 Transformer의 일부 FFN을 MoE 레이어로 대체하여 효율성을 높임.
- MoE 레이어는 다수의 전문가(Experts)로 구성되며, 각 전문가는 구조적으로 표준 FFN과 동일함.
- 각 토큰은 하나 또는 두 개의 전문가에게 할당됨.
2.3 MoE 레이어의 동작 원리
N은 전문가 수, FFN_i는 i번째 전문가의 FFN, g_i,t는 게이트 값.
Routing 전략:
- 각 토큰은 전문가와의 친화도(affinity) 점수를 계산함.
- 친화도 점수 s는 소프트맥스(Softmax)로 계산됨:
- K개의 전문가만 활성화되어 희소성(sparsity)을 유지함으로써 계산 효율성을 확보.
2.4 DeepSeekMoE 아키텍처와 비교
- (a): 기존 MoE의 Top-2 Routing 전략
- (b): Fine-Grained Expert Segmentation 전략 추가
- (c): Shared Expert Isolation 전략 통합
- 이 세 가지 아키텍처 모두 전문가 매개변수와 계산 비용은 일정하게 유지됨.
2.5 리뷰 및 질문 포인트
1. MoE가 FFN 단위로 적용되는 이유
- MoE가 Transformer 블록 전체가 아닌 Feed-Forward Network(FFN) 단위에 주로 적용되는 이유는?
- 개인적으로 추측해보자면, Self-Attention의 구조적 제약때문일 것 같음
- Self-Attention은 토큰 간 의존성을 기반으로 하므로 라우팅 전략 적용이 어려움. 반면 FFN은 각 토큰의 hidden states를 독립적으로 변환하므로 토큰별 전문가 선택이 자연스럽게 이루어질 수 있음.
2. Routing 전략의 개선 가능성
- Top-K Routing이 특정 작업에 적합하지 않을 수 있음. 전문가 선택에 있어 더 동적인 라우팅(dynamic routing) 방식이 필요하지 않은가?
3. 전문가 특화의 검증 방법
- 전문가가 특정 지식에 특화되어 있다는 것을 입증할 수 있는가?
- 즉, 단순히 선택 가능한 선택지가 많아지면서 성능향상이 일어나는 것은 아닌가?
6. MoE 아키텍처의 배포 최적화 가능성
- 활성화되는 파라미터 수가 적어져서 추론 속도 향상이 일어나는 것은 알겠지만, 어찌되었든 비활성화 파라미터도 GPU 메모리에 올려놓기는 해야하지 않나? → 활성 & 비활성화 파라미터를 효과적으로 switching 하거나 분산시켜서 메모리 사용량을 최적화 할 수 있나?
3. DeepSeekMoE Architecture 요약
3.1 아키텍처 개요
- DeepSeekMoE는 전문가 특화(expert specialization)를 최대화하기 위해 설계된 MoE 아키텍처임.
- Fine-Grained Expert Segmentation과 Shared Expert Isolation이라는 두 가지 주요 전략을 도입하여 지식 분배와 특화를 개선함.
3.2 Fine-Grained Expert Segmentation
전문가 수가 적을 경우, 특정 전문가가 다양한 지식을 학습하게 되어 지식 활용이 어려움.
작동 방식:
- 전문가 수와 계산 비용을 유지하면서, 각 전문가의 중간 은닉 차원을 줄여 더 작은 m개의 전문가로 세분화함.
- 세분화된 전문가들이 유연한 조합으로 활성화될 수 있도록 활성화 전문가 수를 m배로 증가시킴.
- 이를 통해 지식을 전문가들 간에 더욱 세분화하여 학습하도록 유도함.
조합 가능성 증가 효과:
- 예: N=16일 때 기존 Top-2 라우팅 전략은 120가지 조합을 제공하지만, 전문가를 4개로 세분화하면 약 44억 개의 조합 가능성이 생김.
- 이는 지식 획득과 특화의 정밀성을 크게 향상시킴.
3.3 Shared Expert Isolation
기존 MoE에서는 여러 전문가들이 공통 지식을 중복 학습하는 문제가 발생함.
작동 방식:
- 특정 수의 공유 전문가(Ks)를 지정하여 공통 지식을 학습하도록 고정할 수 있음.
- 모든 토큰이 공유 전문가에 항상 할당되며, 나머지 전문가들 간 활성화 수는 Ks만큼 줄어듦.
- 이를 통해 전문가 간 중복성을 줄이고 모델의 파라미터 효율성을 개선함.
3.4 Load Balance Consideration
자동 라우팅에서는 부하 불균형(load imbalance) 문제가 발생할 수 있음.
- 일부 전문가만 지속적으로 선택되는 라우팅 붕괴(routing collapse) 현상이 우려됨.
- 전문가가 여러 장치에 분산될 경우 계산 병목이 발생할 가능성 존재.
3.4.1 Expert-Level Balance Loss
- 전문가 레벨에서 균형을 유지하기 위해 Expert-Level Balance Loss를 도입함.
- 각 전문가가 선택되는 빈도와 활성화 토큰 수에 따라 균형 손실을 계산함.
3.4.2 Device-Level Balance Loss
- 장치 간 균형을 유지하기 위해 Device-Level Balance Loss를 추가로 적용함.
- 전문가 그룹을 장치 단위로 분할하고, 각 장치에 대한 부하 균형을 평가함.
- 실험적으로, 전문가 레벨에서는 작은 균형 계수를 설정하고, 장치 레벨에서는 더 큰 균형 계수를 사용하여 최적 부하 분산을 달성함.
3.5 리뷰 및 질문 포인트
- 기존과 유사하게, Methodology 부분에서 특별한 아이디어는 없어보임. 다만, 실제로 이것을 사용하기 위해서 고려해야할 사항 (로드 밸런싱)에 대해서 해결책을 내놓은 부분이 유의미해 보임.
4. Validation Experiments
4.1 실험 설정
학습 데이터: DeepSeek-AI가 구축한 다국어 corpus에서 100B 토큰 샘플링.
- 다양한 소스(web crawl, math, code)로부터 수집됨.
- HuggingFace BPE 토크나이저를 사용하여 어휘 크기 8K로 설정.
인프라: NVIDIA A100 및 H800 GPU 클러스터에서 실험 수행.
- 병렬 처리 전략: 텐서 병렬화, ZeRO 데이터 병렬화, 전문가 병렬화 등 통합.
- CUDA 및 Triton을 활용한 커스텀 GPU 커널 개발. → MoE 구현으로 보임
모델 설정:
Transformer
- Layer: 9개 / hidden dim: 1280 / attn head: 10개
총 파라미터: 약 2B / 활성화 파라미터: 약 0.3B
AdamW Optimizer, Warmup-And-Step-Decay LR Scheduler
4.2 평가 기준 및 벤치마크
- 언어 모델링: Pile 데이터셋 (Metric: Cross-Entropy Loss)
- 언어 이해 및 추론: HellaSwag, PIQA, ARC (Metric: Acc)
- 독해력: RACE-high, RACE-middle (Metric: Acc)
- 코드 생성: HumanEval, MBPP (Metric: Pass@1)
- 폐쇄형 질문 응답: TriviaQA, NaturalQuestions (Metric: EM)
4.3 평가 결과
비교 모델: Dense, Hash Layer, Switch Transformer, GShard, DeepSeekMoE.
해석:
- Hash Layer와 Switch Transformer가 동일한 활성화 매개변수를 가진 Dense 모델보다 높은 성능을 발휘함.
- GShard는 추가로 활성화된 전문가로 인해 Switch Transformer보다 약간 더 높은 성능을 보임.
- DeepSeekMoE는 GShard를 압도적으로 능가하며 MoE 아키텍처 중 최상위 성능을 보임.
4.4 DeepSeekMoE upper bound
- GShard×1.5와의 비교에서 DeepSeekMoE는 유사한 성능을 달성함.
- Dense×16 모델과 비교 시, DeepSeekMoE는 이론적 MoE 성능 상한에 근접함.
4.5 Ablation Studies
Fine-Grained Expert Segmentation과 Shared Expert Isolation의 효과 검증
- 전문가를 더 세분화할수록 모델 성능이 지속적으로 향상됨.
- 공유 전문가가 성능 향상에 기여하며 전문가 간 중복성을 줄이는 역할을 함.
4.6 Analysis on Expert Specialization
Routed Experts 중복성 평가
- DeepSeekMoE는 상위 라우팅 전문가가 비활성화될 때 성능에 더 민감하게 반응하며, 이는 낮은 중복성을 나타냄.
Shared Experts의 역할
- Shared Experts 비활성화 시 Pile 손실이 크게 증가하여, 공유 전문가가 대체 불가능한 핵심 지식을 학습하고 있음을 입증함.
Experts 조합 유연성
- Routed Experts가 4개만 활성화된 상태에서도 DeepSeekMoE는 GShard와 유사한 성능을 달성함.
- DeepSeekMoE는 더 적은 전문가로도 필요한 지식을 정확하고 효율적으로 획득할 수 있음.
효율성 검증:
- 새로운 모델을 훈련한 결과, 활성화된 매개변수 수가 절반임에도 DeepSeekMoE가 여전히 GShard보다 우수한 성능을 보임.
- 이는 활성화된 전문가 매개변수의 효과적인 비율이 DeepSeekMoE에서 더 높음을 나타냄.
5. Scaling up to DeepSeekMoE 16B
모델의 크기를 2B에서 16B로 Scale-up 한 다음 테스트해서, 모델의 scalability를 확인하는 것이 목적
5.1 실험 설정
Train Data 및 Tokenization
- 변화점: 검증 실험에서는 100B 토큰을 사용했으나, 여기서는 2T 토큰을 사용.
- Vocab Size도 8K에서 100K로 확장.
모델 설정
- 변화점: Layer 수가 9개에서 28개로 증가, Hidden dim도 1280에서 2048로 증가.
- 첫 번째 Laye를 제외한 모든 FFN을 MoE Layer로 대체함 → 첫 번째 Layer의 부하 균형 수렴이 느리기 때문.
- MoE Layer는 1명의 Shared Expert에서 2명으로 확장. Routing Experts 수는 64명으로 동일하나, 토큰당 활성화되는 라우팅 전문가가 6명으로 줄어듦(기존 7명).
- 지나치게 세분화할 경우 계산 효율이 떨어질 수 있어, 이번 실험에서는 더 세분화된 구조를 사용하지 않음.
- 총 매개변수 수는 약 2B에서 16.4B로 대폭 증가했고, 활성화된 매개변수는 약 2.8B.
훈련 설정
- 변화점: batch size와 sequence length가 증가해 각 배치에 포함된 토큰 수가 4M에서 18M으로 확대.
- LR scheduler와 Optimizer 설정은 동일하지만, training step이 25,000에서 106,449로 증가.
- 파이프라인 병렬화를 통해 모델 layer를 장치별로 나눠 배치하고, 각 layer 내의 모든 전문가는 동일 장치에 배치.
- 라우팅 붕괴를 방지하기 위해 전문가 균형 계수는 0.001로 설정됨.
5.2 추가된 평가 벤치마크
다음과 같은 추가 벤치마크가 포함됨
- 독해력: DROP
- 수학 추론: GSM8K, MATH
- 다중 선택형 테스트: MMLU
- 문맥 해석: WinoGrande
- 중국어 벤치마크: CLUEWSC, CEval, CMMLU, CHID
5.3 평가 결과
내부 비교 ( vs DeepSeek 7B)
DeepSeekMoE 16B는 약 40%의 계산량만으로 DeepSeek 7B와 유사한 성능을 달성.
언어 모델링 및 지식 집약적 작업(Pile, HellaSwag, TriviaQA, NaturalQuestions)에서 DeepSeek 7B보다 뛰어난 성과를 보임.
FFN이 지식을 암기하는 역할을 한다는 점과 관련된 주장이 데이터와 일치함.
다중 선택형 작업(MMLU 등)에서 성능이 저조한 이유는 DeepSeekMoE 16B의 어텐션 매개변수가 DeepSeek 7B보다 적기 때문임.
- 다중 쿼리 어텐션을 사용한 DeepSeek 7B MQA 모델도 MMLU와 유사한 작업에서 저조한 성과를 보였음.
오픈 소스 모델 비교 (LLaMA2 7B)
- DeepSeekMoE 16B는 약 39.6%의 계산량만으로도 LLaMA2 7B를 대부분의 벤치마크에서 능가함.
- 수학 및 코드 관련 작업에서 강점을 보이며, 중국어 벤치마크에서도 LLaMA2 7B보다 우수한 성과를 기록함.
- 영어 텍스트가 적게 훈련되었음에도 영어 이해 및 지식 관련 작업에서 동등하거나 더 나은 성능을 달성함.
Open LLM 리더보드 평가
- DeepSeekMoE 16B는 활성화된 매개변수 수가 유사한 다른 모델들을 크게 능가하며, LLaMA2 7B와도 비슷한 성능을 보임.
6. Alignment for DeepSeekMoE 16B
6.1 실험 설정
훈련 데이터
- 사내에서 큐레이션한 140만 개의 지도학습(SFT) 데이터 사용.
- 데이터는 수학, 코드, 글쓰기, 질의응답, 추론, 요약 등 다양한 카테고리를 포함.
- 주요 언어는 영어와 중국어로, 이중 언어 환경에 적합한 모델 설계.
- 다양한 카테고리의 데이터를 활용하여 다목적 모델로 학습.
하이퍼파라미터
- batch size: 1024
- epochs: 8
- sequence length: 4K
- Dense-Packing 전략: 시퀀스 길이 한계까지 훈련 데이터를 밀집하게 패킹
- constant-LR: 10e-5
- Dropout과 LR scheduler 미사용.
평가 벤치마크
- 기존 벤치마크에서 Pile(언어 모델링 목적)과 CHID(결과 불안정성) 제외.
- 추가된 벤치마크: BBH(추론 능력 평가용)
- 각 벤치마크별로 정확도 또는 EM 지표를 사용하여 성능 평가.
6.2 평가 결과
Baseline 비교
- LLaMA2 SFT 7B, DeepSeek Chat 7B, DeepSeekMoE Chat 16B 세 모델을 동일한 지도학습 데이터로 fine-tuning하여 비교.
- DeepSeekMoE Chat 16B는 약 **40%의 계산량(FLOPs)**만 사용하여 두 dense 모델과 성능 비교.
6.3 주요 결과 및 관찰 내용
전반적인 성능:
- DeepSeekMoE Chat 16B는 PIQA, ARC, BBH, RACE, GSM8K, MATH, TriviaQA, NaturalQuestions 등에서 밀집형 7B 모델과 유사한 성능을 달성.
코드 생성:
- HumanEval과 MBPP에서 LLaMA2 SFT 7B를 능가하는 성과를 보였으며, DeepSeek Chat 7B도 초과.
- 사전 학습 데이터에 코드 관련 텍스트가 다수 포함된 것이 주된 원인.
다중 선택형 작업:
- MMLU, CEval, CMMLU에서 DeepSeek Chat 7B에 여전히 뒤처짐.
- 이 결과는 어텐션 매개변수의 제한 때문이며, DeepSeek Chat 7B에 비해 약 5배 적은 어텐션 매개변수를 사용함.
- 다만, 파인튜닝 후 성능 격차가 줄어들었음.
이중 언어 성능:
- 중국어 벤치마크에서 LLaMA2 SFT 7B를 크게 초과하며, 모든 중국어 벤치마크에서 탁월한 성과를 달성.
- 영어 및 중국어 양쪽에서 균형 잡힌 성능을 보여 다양한 언어 환경에서 적용 가능성 높음.
7. DeepSeekMoE 145B Ongoing
16B 모델에서 145B 모델로 Scalability 검증 → 진행중
7.1 실험 설정
Train Data & Tokenizer
- 기존과 동일한 훈련 데이터와 토크나이저 사용.
- 훈련 토큰 수를 2T에서 245B로 감소하여 초기 실험 수행.
모델 설정 변화
Layer: 28개 → 62개
Hidden dim: 2048 → 4096
attn head: 동일하게 32개, 헤드당 차원 128 유지.
전문가 구조 변화:
- 공유 전문가: 2개 → 4개로 증가.
- 라우팅 전문가: 64개 → 128개로 증가.
- 각 전문가는 1/4 크기에서 1/8로 축소되어 더 세분화됨.
- 각 토큰은 4개의 공유 전문가와 12개의 라우팅 전문가로 라우팅됨.
훈련 설정 변화
batch size: 4.5K (유지)
sequence length: 4K (유지)
train steps: 106,449 step → 13,000 step 으로 감소.
LR scheduler: 초기 2K step 동안 선형 증가 후 고정 학습률 유지.
전문가 병렬화 추가 적용:
- 라우팅 전문가들이 4개의 디바이스에 균등 배치됨.
- 디바이스 로드 밸런스 계수 0.05로 설정, 전문가 레벨 계수는 0.003으로 낮게 유지.
7.2 평가 결과
Baselines
- DeepSeek 67B (Dense): 총 파라미터 수 67.4B의 밀집형 모델.
- GShard 137B: DeepSeekMoE 145B와 동일한 히든 차원 및 레이어 수를 갖는 모델.
- DeepSeekMoE 142B (Half Activated): 12개 전문가 대신 6개만 활성화된 모델.
성능 평가
DeepSeekMoE 145B vs GShard 137B
- DeepSeekMoE 145B가 동일한 파라미터 및 계산량으로 GShard 137B를 성능 면에서 압도.
DeepSeek 67B (Dense)와의 비교
- 28.5% 계산량으로도 DeepSeek 67B와 유사한 성능 달성.
- 언어 모델링과 지식 집약형 작업에서 강력한 성능을 보였으나, 다중 선택형 작업에서 제한적 성과.
DeepSeekMoE 142B (Half Activated)
- DeepSeekMoE 145B와 성능 차이가 크지 않음.
- 18.2% 계산량만으로도 DeepSeek 67B와 유사한 성능 달성.
- GShard 137B를 초과하며 효율성이 입증됨.
8. Conclusion
DeepSeekMoE 아키텍처 제안
- 전문가 특화를 극대화하기 위해 **세분화된 전문가 분할(Fine-Grained Expert Segmentation)**과 공유 전문가 분리(Shared Expert Isolation) 전략을 도입.
- 기존 MoE 아키텍처 대비 높은 전문가 특화와 성능 달성.
2B 파라미터 실험 결과
- DeepSeekMoE가 이론적 성능 상한선에 근접 가능함을 입증.
- GShard보다 높은 전문가 특화 수준을 경험적으로 확인.
16B 파라미터 확장 및 성능 검증
- 2조(2T) 토큰 학습 결과, DeepSeek 7B, LLaMA2 7B와 비슷한 성능을 40%의 연산량으로 달성.
- 지도 학습을 통해 대화형 모델로 확장하며 적응성과 다재다능함을 입증.
145B 파라미터로의 확장
- 예비 실험에서 DeepSeekMoE 145B가 GShard를 능가하는 성능을 보이며, DeepSeek 67B와 비슷한 성능을 28.5%~18.2%의 연산량으로 달성 가능성 확인.
모델 공개
- 연구 목적으로 DeepSeekMoE 16B 모델 체크포인트를 공개, 단일 40GB GPU에서 배포 가능.
- 학계와 산업계의 대규모 언어 모델 발전에 기여할 것을 기대.