papers · 2026-03-22

DeepSeek-MoE 리뷰

1. Introduction

1.1 연구 배경 및 동기

  • 대규모 언어 모델 확장이 성능 향상에 기여하지만, 높은 계산 비용이 문제로 부각됨.
  • Mixture-of-Experts (MoE) 아키텍처가 모델 확장 시 효율적인 계산 자원 관리를 가능하게 하여 주목받음.
  • Transformer 구조에 MoE가 도입되며 언어 모델 확장이 성공적으로 이루어짐.

1.2 주요 트렌드와 한계

  • MoE 아키텍처는 계산 효율성을 제공하지만, 두 가지 주요 문제가 존재.

    1. Knowledge Hybridity: 전문가에 할당된 토큰들이 다양한 지식을 포함하여 전문가가 여러 지식을 동시에 처리하기 어려움.
    2. Knowledge Redundancy: 전문가들 간에 중복된 지식이 학습되어 매개변수 효율이 저하됨.

1.3 연구 목적

  • DeepSeekMoE는 전문가 특화(expert specialization)를 극대화하고 기존 MoE 문제를 해결하는 것을 목표로 함.

1.4 연구 방법

  • DeepSeekMoE 아키텍처의 두 가지 핵심 전략:

    1. Fine-Grained Expert Segmentation: 전문가를 더 세밀하게 분할하여 각 전문가가 특화된 지식을 학습하고, 전문가 조합의 유연성을 높임.
    2. 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개의 블록을 쌓아 구성되며, 각 블록은 다음과 같은 두 단계로 이루어짐:

    1. Self-Attention 단계
    2. Feed-Forward Network(FFN) 단계
  • 여기서 T는 시퀀스 길이, uh는 각 단계에서의 토큰별 hidden state를 나타냄.

2.2 MoE 레이어의 구성

  • MoE 모델은 Transformer의 일부 FFN을 MoE 레이어로 대체하여 효율성을 높임.
  • MoE 레이어는 다수의 전문가(Experts)로 구성되며, 각 전문가는 구조적으로 표준 FFN과 동일함.
  • 각 토큰은 하나 또는 두 개의 전문가에게 할당됨.

2.3 MoE 레이어의 동작 원리

  • N은 전문가 수, FFN_i는 i번째 전문가의 FFN, g_i,t는 게이트 값.

  • Routing 전략:

    1. 각 토큰은 전문가와의 친화도(affinity) 점수를 계산함.
    2. 친화도 점수 s는 소프트맥스(Softmax)로 계산됨:
    3. 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 SegmentationShared 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.

  • 해석:

    1. Hash Layer와 Switch Transformer가 동일한 활성화 매개변수를 가진 Dense 모델보다 높은 성능을 발휘함.
    2. GShard는 추가로 활성화된 전문가로 인해 Switch Transformer보다 약간 더 높은 성능을 보임.
    3. DeepSeekMoE는 GShard를 압도적으로 능가하며 MoE 아키텍처 중 최상위 성능을 보임.

4.4 DeepSeekMoE upper bound

  • GShard×1.5와의 비교에서 DeepSeekMoE는 유사한 성능을 달성함.
  • Dense×16 모델과 비교 시, DeepSeekMoE는 이론적 MoE 성능 상한에 근접함.

4.5 Ablation Studies

  • Fine-Grained Expert SegmentationShared 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 주요 결과 및 관찰 내용

  1. 전반적인 성능:

    • DeepSeekMoE Chat 16B는 PIQA, ARC, BBH, RACE, GSM8K, MATH, TriviaQA, NaturalQuestions 등에서 밀집형 7B 모델과 유사한 성능을 달성.
  2. 코드 생성:

    • HumanEvalMBPP에서 LLaMA2 SFT 7B를 능가하는 성과를 보였으며, DeepSeek Chat 7B도 초과.
    • 사전 학습 데이터에 코드 관련 텍스트가 다수 포함된 것이 주된 원인.
  3. 다중 선택형 작업:

    • MMLU, CEval, CMMLU에서 DeepSeek Chat 7B에 여전히 뒤처짐.
    • 이 결과는 어텐션 매개변수의 제한 때문이며, DeepSeek Chat 7B에 비해 약 5배 적은 어텐션 매개변수를 사용함.
    • 다만, 파인튜닝 후 성능 격차가 줄어들었음.
  4. 이중 언어 성능:

    • 중국어 벤치마크에서 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개만 활성화된 모델.
  • 성능 평가

    1. DeepSeekMoE 145B vs GShard 137B

      • DeepSeekMoE 145B가 동일한 파라미터 및 계산량으로 GShard 137B를 성능 면에서 압도.
    2. DeepSeek 67B (Dense)와의 비교

      • 28.5% 계산량으로도 DeepSeek 67B유사한 성능 달성.
      • 언어 모델링과 지식 집약형 작업에서 강력한 성능을 보였으나, 다중 선택형 작업에서 제한적 성과.
    3. 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에서 배포 가능.
    • 학계와 산업계의 대규모 언어 모델 발전에 기여할 것을 기대.