인공지능(AI)

초대규모 MoE 언어 모델 DeepSeek-V3: 혁신적 FP8 학습과 최강 오픈소스 챗 모델로의 진화

슈가가족 2024. 12. 31. 07:31

 

DeepSeek-V3 기술 보고서 및 사용 가이드 

아래 글은 DeepSeek-V3에 대한 기술 보고서 및 사용 가이드 내용을 한국어로 번역하고, 블로그 형식으로 재구성한 글입니다. DeepSeek-V3의 주요 특징, 모델 다운로드 방법, 다양한 평가 결과, 그리고 로컬에서 모델을 활용하는 방법 등을 한눈에 볼 수 있도록 정리했습니다.


1. 소개 (Introduction)

DeepSeek-V3는 전체 파라미터가 671B(이하 B는 109로 “억 개” 단위)이며, 각 토큰마다 37B가 활성화되는 강력한 Mixture-of-Experts(MoE) 언어 모델입니다.

  • 효율적인 추론(inference) 및 저비용 학습을 위해, DeepSeek-V3는 DeepSeek-V2에서 검증된 Multi-head Latent Attention(MLA)DeepSeekMoE 아키텍처를 채택했습니다.
  • 추가적으로, DeepSeek-V3는 부가 손실(auxiliary loss)을 사용하지 않는 부하 균형 전략을 세계 최초로 도입해, 부하 균형을 강제하는 과정에서 발생하는 성능 저하를 최소화했습니다.
  • 멀티 토큰 예측(Multi-Token Prediction, MTP) 방식의 학습 목표를 설정하여, 추론 가속화를 위한 스페큘레이티브 디코딩(speculative decoding)에도 활용할 수 있게 했습니다.
  • 고품질의 14.8조(Trillion) 토큰 데이터로 사전학습을 완료한 후, Supervised Fine-Tuning(SFT)Reinforcement Learning(RL) 단계를 거쳐 성능을 극대화했습니다.
  • 종합적인 평가 결과, DeepSeek-V3는 다른 오픈소스 모델보다 우수한 성능을 보였고, 상위권 닫힌 소스(closed-source) 모델과도 견줄 만한 성능을 입증했습니다.
  • 이러한 탁월한 성능에도 불구하고, DeepSeek-V3 전체 학습에는 2.788M H800 GPU 시간만 소요되었습니다. 학습 전 과정에서 회복 불가능한 손실 스파이크나 롤백 없이 매우 안정적으로 진행되었습니다.
  •  

2. 모델 개요 (Model Summary)

2.1 아키텍처: 혁신적 부하 균형 전략과 학습 목표

  • DeepSeek-V2의 효율적 아키텍처 기반 위에, 부가 손실 없이(load balancing) 부하 균형을 달성하는 전략을 새롭게 도입했습니다. 부하 균형을 강제하는 과정에서 오는 성능 저하를 최소화하도록 설계했습니다.
  • 멀티 토큰 예측(MTP) 학습 목표를 연구했으며, 이로 인해 모델 성능이 강화됨을 입증했습니다. MTP는 추론 가속화를 위한 스페큘레이티브 디코딩에도 활용 가능합니다.

2.2 사전학습: 궁극의 학습 효율성 추구

  • FP8 혼합 정밀(mixed precision) 학습 프레임워크를 설계하고, 초대규모 모델에서 FP8 학습의 타당성과 효율성을 처음으로 검증했습니다.
  • 알고리즘, 프레임워크, 하드웨어 간의 협업 설계를 통해, 노드 간 MoE 학습 시 통신 병목을 극복하고, 연산과 통신을 거의 완벽하게 오버랩시켰습니다.
  • 이를 통해 학습 효율을 크게 높이고 비용을 절감해, 추가적인 오버헤드 없이 모델 크기를 확장할 수 있었습니다.
  • 2.664M H800 GPU 시간이라는 경제적인 비용으로 DeepSeek-V3를 14.8조(Trillion) 토큰으로 사전학습했으며, 이는 현존 오픈소스 기반 모델 중 최고 수준의 베이스 모델 성능으로 평가됩니다. 이후 SFTRL 등 후속 학습 단계에는 0.1M GPU 시간만 추가로 소요되었습니다.

2.3 후속학습: DeepSeek-R1으로부터의 지식 증류(Knowledge Distillation)

  • DeepSeek R1 시리즈 중 롱 체인 오브 솟(Chain-of-Thought, CoT) 모델에서 추론 능력을 일반 LLM(특히 DeepSeek-V3)으로 증류(distill)하는 혁신적인 방법을 고안했습니다.
  • 검증(verification)과 반성(reflection) 패턴을 DeepSeek-V3에 자연스럽게 녹여내, 추론 성능을 눈에 띄게 향상시켰으며, 동시에 출력 스타일과 길이에 대한 제어권도 유지했습니다.

3. 모델 다운로드 (Model Downloads)

모델 #Total Params #Activated Params Context Length 다운로드 링크
DeepSeek-V3-Base 671B 37B 128K 💙 Hugging Face
DeepSeek-V3 671B 37B 128K 💙 Hugging Face
참고: Hugging Face에 공개된 DeepSeek-V3 모델의 총 용량은 약 685B이며,
여기에는 671B 규모의 메인 모델(Main Model) 가중치와 14B 규모의 멀티 토큰 예측(MTP) 모듈 가중치가 모두 포함됩니다.

최적 성능유연성을 확보하기 위해, 오픈소스 커뮤니티 및 하드웨어 벤더와 협력하여 모델을 로컬에서 실행할 수 있는 다양한 방법을 제공합니다. 자세한 가이드는 6절: How_to Run_Locally를 참고하세요.

더 심층적인 개발을 원한다면, README_WEIGHTS.md를 살펴보시기 바랍니다. 여기에 메인 모델(Main Model) 가중치와 MTP 모듈에 대한 자세한 정보가 포함되어 있습니다.

MTP 관련 기능은 현재 커뮤니티에서 활발히 개발 중이며, 기여와 피드백을 언제든 환영합니다.

4. 평가 결과 (Evaluation Results)

4.1 베이스 모델 (Base Model)

4.1.1 스탠더드 벤치마크(Standard Benchmarks)

Benchmark (Metric) # Shots DeepSeek-V2 Qwen2.5 72B LLaMA3.1 405B DeepSeek-V3
Architecture - MoE Dense Dense MoE
# Activated Params - 21B 72B 405B 37B
# Total Params - 236B 72B 405B 671B
English          
Pile-test (BPB) - 0.606 0.638 0.542 0.548
BBH (EM) 3-shot 78.8 79.8 82.9 87.5
MMLU (Acc.) 5-shot 78.4 85.0 84.4 87.1
MMLU-Redux (Acc.) 5-shot 75.6 83.2 81.3 86.2
MMLU-Pro (Acc.) 5-shot 51.4 58.3 52.8 64.4
DROP (F1) 3-shot 80.4 80.6 86.0 89.0
ARC-Easy (Acc.) 25-shot 97.6 98.4 98.4 98.9
ARC-Challenge (Acc.) 25-shot 92.2 94.5 95.3 95.3
HellaSwag (Acc.) 10-shot 87.1 84.8 89.2 88.9
PIQA (Acc.) 0-shot 83.9 82.6 85.9 84.7
WinoGrande (Acc.) 5-shot 86.3 82.3 85.2 84.9
RACE-Middle (Acc.) 5-shot 73.1 68.1 74.2 67.1
RACE-High (Acc.) 5-shot 52.6 50.3 56.8 51.3
TriviaQA (EM) 5-shot 80.0 71.9 82.7 82.9
NaturalQuestions (EM) 5-shot 38.6 33.2 41.5 40.0
AGIEval (Acc.) 0-shot 57.5 75.8 60.6 79.6
Code          
HumanEval (Pass@1) 0-shot 43.3 53.0 54.9 65.2
MBPP (Pass@1) 3-shot 65.0 72.6 68.4 75.4
LiveCodeBench-Base (Pass@1) 3-shot 11.6 12.9 15.5 19.4
CRUXEval-I (Acc.) 2-shot 52.5 59.1 58.5 67.3
CRUXEval-O (Acc.) 2-shot 49.8 59.9 59.9 69.8
Math          
GSM8K (EM) 8-shot 81.6 88.3 83.5 89.3
MATH (EM) 4-shot 43.4 54.4 49.0 61.6
MGSM (EM) 8-shot 63.6 76.2 69.9 79.8
CMath (EM) 3-shot 78.7 84.5 77.3 90.7
Chinese          
CLUEWSC (EM) 5-shot 82.0 82.5 83.0 82.7
C-Eval (Acc.) 5-shot 81.4 89.2 72.5 90.1
CMMLU (Acc.) 5-shot 84.0 89.5 73.7 88.8
CMRC (EM) 1-shot 77.4 75.8 76.0 76.3
C3 (Acc.) 0-shot 77.4 76.7 79.7 78.6
CCPM (Acc.) 0-shot 93.0 88.5 78.6 92.0
Multilingual          
MMMLU-non-English (Acc.) 5-shot 64.0 74.8 73.8 79.4
굵게 표시된 값이 해당 벤치마크에서 최고 성능을 의미합니다(점수 차이가 0.3 이하라면 동일 수준으로 간주).
DeepSeek-V3는 수학 및 코드 작업을 비롯한 대부분의 벤치마크에서 뛰어난 성능을 보입니다. 보다 자세한 평가는 논문을 참고하세요.

4.1.2 컨텍스트 윈도우(Context Window)

Needle In A Haystack (NIAH) 테스트에서, DeepSeek-V3는 최대 128K의 긴 컨텍스트 윈도우에서도 우수한 성능을 보여줍니다.

4.2 챗(회화형) 모델 (Chat Model)

4.2.1 스탠더드 벤치마크(67B 이상의 모델)

Benchmark (Metric) DeepSeek V2-0506 DeepSeek V2.5-0905 Qwen2.5 72B-Inst. Llama3.1 405B-Inst. Claude-3.5-Sonnet-1022 GPT-4o 0513 DeepSeek V3
Architecture MoE MoE Dense Dense - - MoE
# Activated Params 21B 21B 72B 405B - - 37B
# Total Params 236B 236B 72B 405B - - 671B
English              
MMLU (EM) 78.2 80.6 85.3 88.6 88.3 87.2 88.5
MMLU-Redux (EM) 77.9 80.3 85.6 86.2 88.9 88.0 89.1
MMLU-Pro (EM) 58.5 66.2 71.6 73.3 78.0 72.6 75.9
DROP (3-shot F1) 83.0 87.8 76.7 88.7 88.3 83.7 91.6
IF-Eval (Prompt Strict) 57.7 80.6 84.1 86.0 86.5 84.3 86.1
GPQA-Diamond (Pass@1) 35.3 41.3 49.0 51.1 65.0 49.9 59.1
SimpleQA (Correct) 9.0 10.2 9.1 17.1 28.4 38.2 24.9
FRAMES (Acc.) 66.9 65.4 69.8 70.0 72.5 80.5 73.3
LongBench v2 (Acc.) 31.6 35.4 39.4 36.1 41.0 48.1 48.7
Code              
HumanEval-Mul (Pass@1) 69.3 77.4 77.3 77.2 81.7 80.5 82.6
LiveCodeBench (Pass@1-COT) 18.8 29.2 31.1 28.4 36.3 33.4 40.5
LiveCodeBench (Pass@1) 20.3 28.4 28.7 30.1 32.8 34.2 37.6
Codeforces (Percentile) 17.5 35.6 24.8 25.3 20.3 23.6 51.6
SWE Verified (Resolved) - 22.6 23.8 24.5 50.8 38.8 42.0
Aider-Edit (Acc.) 60.3 71.6 65.4 63.9 84.2 72.9 79.7
Aider-Polyglot (Acc.) - 18.2 7.6 5.8 45.3 16.0 49.6
Math              
AIME 2024 (Pass@1) 4.6 16.7 23.3 23.3 16.0 9.3 39.2
MATH-500 (EM) 56.3 74.7 80.0 73.8 78.3 74.6 90.2
CNMO 2024 (Pass@1) 2.8 10.8 15.9 6.8 13.1 10.8 43.2
Chinese              
CLUEWSC (EM) 89.9 90.4 91.4 84.7 85.4 87.9 90.9
C-Eval (EM) 78.6 79.5 86.1 61.5 76.7 76.0 86.5
C-SimpleQA (Correct) 48.5 54.1 48.4 50.4 51.3 59.3 64.8
모든 모델은 출력 길이를 8K로 제한한 설정에서 평가를 진행했습니다. 1,000개 미만의 샘플을 포함하는 벤치마크는 온도(temperature)를 달리하여 여러 번 반복 테스트 후 최종 점수를 산출했습니다.
DeepSeek-V3는 최고 성능을 보이는 오픈소스 모델이면서, 최첨단 닫힌 소스 모델과도 경쟁력 있는 성능을 보입니다.

4.2.2 오픈형 생성(Open Ended Generation) 평가

Model Arena-Hard AlpacaEval 2.0
DeepSeek-V2.5-0905 76.2 50.5
Qwen2.5-72B-Instruct 81.2 49.1
LLaMA-3.1 405B 69.3 40.5
GPT-4o-0513 80.4 51.1
Claude-Sonnet-3.5-1022 85.2 52.0
DeepSeek-V3 85.5 70.0
영어 오픈형 대화(대화형 생성) 평가입니다. AlpacaEval 2.0에서는 길이 제어(length-controlled) 승률을 지표로 사용했습니다.
DeepSeek-V3는 특히 AlpacaEval 2.0에서 매우 우수한 성능(70.0)을 보였습니다.

5. 챗 웹사이트 & API 플랫폼 (Chat Website & API Platform)

  • 공식 웹사이트: chat.deepseek.com에서 DeepSeek-V3와 직접 대화할 수 있습니다.
  • OpenAI-Compatible API: platform.deepseek.com을 통해 GPT API와 호환되는 API를 제공합니다.

6. 로컬 실행 방법 (How to Run Locally)

DeepSeek-V3는 아래와 같은 하드웨어 및 오픈소스 커뮤니티 소프트웨어를 활용하여 로컬 환경에 배포할 수 있습니다.

  1. DeepSeek-Infer Demo
    • FP8 및 BF16 추론을 위한 간단하고 가벼운 데모를 제공합니다.
  2. SGLang (권장)
    • BF16 및 FP8 추론 모드를 모두 지원하며, Multi-Token Prediction(MTP)도 곧 지원 예정입니다.
    • MLA 최적화, DP Attention, FP8(W8A8), FP8 KV 캐시, Torch Compile 등을 지원하여 지연(latency) 및 처리량(throughput) 측면에서 탁월한 성능을 발휘합니다.
    • NVIDIA와 AMD GPU 모두를 지원하며, 멀티 노드 텐서 병렬까지 가능합니다.
  3. LMDeploy (권장)
    • LLM 추론·서빙을 위한 유연하고 고성능의 프레임워크로, 오프라인 파이프라인 처리 및 온라인 배포도 지원합니다.
  4. TensorRT-LLM (권장)
    • DeepSeek-V3 모델을 BF16, INT4/INT8 가중치 방식으로 추론할 수 있습니다. FP8 지원도 곧 예정입니다.
  5. vLLM (권장)
    • FP8 및 BF16 모드를 지원하며, 파이프라인 병렬화를 통해 여러 대의 머신에서 네트워크를 통해 실행할 수 있습니다.
  6. AMD GPU
    • AMD GPU에서 SGLang을 활용해 BF16 및 FP8 정밀도로 실행 가능합니다.
  7. Huawei Ascend NPU
    • Huawei Ascend 커뮤니티의 MindIE 프레임워크를 통해 BF16 버전 모델을 구동할 수 있습니다.

DeepSeek-V3는 FP8 형식으로 학습이 진행되었기 때문에, 배포 시에도 기본적으로 FP8 가중치를 제공합니다. 만약 BF16 가중치가 필요하다면, 제공된 스크립트를 사용해 FP8을 BF16으로 변환하면 됩니다.

cd inference
python fp8_cast_bf16.py --input-fp8-hf-path /path/to/fp8_weights --output-bf16-hf-path /path/to/bf16_weights
참고: 현재 Hugging Face Transformers는 직접적으로 지원되지 않았습니다.

6.1 DeepSeek-Infer Demo로 추론하기 (예시)

  1. 모델 가중치 & 데모 코드 준비
    git clone https://github.com/deepseek-ai/DeepSeek-V3.git
    cd DeepSeek-V3/inference
    pip install -r requirements.txt
    
    Hugging Face에서 모델 가중치를 다운로드한 뒤, /path/to/DeepSeek-V3 폴더 안에 저장합니다.
  2. 모델 가중치 변환
    python convert.py --hf-ckpt-path /path/to/DeepSeek-V3 \
      --save-path /path/to/DeepSeek-V3-Demo \
      --n-experts 256 --model-parallel 16
    
  3. 추론 실행
      • 인터랙티브(채팅) 모드
    torchrun --nnodes 2 --nproc-per-node 8 generate.py \
      --node-rank $RANK \
      --master-addr $ADDR \
      --ckpt-path /path/to/DeepSeek-V3-Demo \
      --config configs/config_671B.json \
      --interactive \
      --temperature 0.7 \
      --max-new-tokens 200
    
      • 배치 추론
    torchrun --nnodes 2 --nproc-per-node 8 generate.py \
      --node-rank $RANK \
      --master-addr $ADDR \
      --ckpt-path /path/to/DeepSeek-V3-Demo \
      --config configs/config_671B.json \
      --input-file $FILE
    

6.2 SGLang으로 추론하기 (권장)

  • SGLang v0.4.1은 NVIDIA 및 AMD GPU에서 DeepSeek-V3를 FP8과 BF16 모두로 실행할 수 있으며, 멀티 노드 텐서 병렬도 제공합니다.
  • MLA 최적화, DP Attention, FP8(W8A8), FP8 KV 캐시, Torch Compile 등 다양한 기능을 통해 뛰어난 지연/처리량 성능을 발휘합니다.
  • Multi-Token Prediction(MTP)은 현재 개발 중이며, 진행 상황은 SGLang의 최적화 플랜에서 확인할 수 있습니다.
  • 실행 방법 예시는 SGLang 가이드에서 확인하세요.

6.3 LMDeploy로 추론하기 (권장)

LMDeploy는 LLM 추론·서빙에 특화된 프레임워크로, PyTorch 기반 워크플로우와 손쉽게 통합할 수 있습니다. DeepSeek-V3를 LMDeploy로 실행하는 단계별 안내는 InternLM/lmdeploy#2960를 참고하세요.

6.4 TensorRT-LLM으로 추론하기 (권장)

  • TensorRT-LLM은 DeepSeek-V3 모델을 BF16, INT4/8 등의 가중치 양자화 방식으로 추론할 수 있습니다.
  • FP8 지원은 곧 추가될 예정이며, NVIDIA/TensorRT-LLM의 DeepSeek 전용 브랜치에서 새로운 기능을 직접 체험하실 수 있습니다.

6.5 vLLM으로 추론하기 (권장)

  • vLLM v0.6.6은 DeepSeek-V3 모델을 FP8과 BF16 모두로 추론할 수 있고, 파이프라인 병렬화 및 멀티 노드 실행을 지원합니다.
  • 자세한 내용은 vLLM 문서를 참고하고, 향후 개선 계획도 추적하실 수 있습니다.

6.6 AMD GPU에서의 추천 추론 방법

  • AMD 팀과의 협업을 통해 AMD GPU Day-One 지원을 달성했습니다. SGLang을 이용해 FP8 및 BF16 정밀도로 DeepSeek-V3를 실행할 수 있습니다.
  • 자세한 사항은 SGLang 가이드를 참조하세요.

6.7 Huawei Ascend NPU에서의 추천 추론 방법

  • Huawei Ascend 커뮤니티의 MindIE 프레임워크를 통해 BF16 버전 DeepSeek-V3를 성공적으로 이식했습니다.
  • Ascend NPU용 단계별 가이드는 관련 안내 문서를 참고하세요(예: https://github.com/AscendCommunity/mindie 등).

7. 라이선스 (License)

  • 이 코드 저장소는 MIT 라이선스로 배포됩니다.
  • DeepSeek-V3 Base 및 Chat 모델 사용 시에는 모델 라이선스(Model License)가 적용됩니다.
  • DeepSeek-V3 시리즈(베이스와 챗 모두)는 상업적 용도(Commercial Use)를 지원합니다.