DeepSeek-V3 기술 요약
DeepSeek-V3 소개
DeepSeek-V3는 DeepSeek-V2 아키텍처를 기반으로 다음과 같은 개선 사항을 도입했습니다:
- Auxiliary-Loss-Free 로드 밸런싱: 전문가(expert) 로드 밸런싱 과정에서 모델 성능 저하를 최소화하는 새로운 전략을 사용합니다.
- Multi-Token Prediction: 학습 목표에 multi-token prediction을 도입하여 전반적인 벤치마크 성능을 향상시키고, 추론 시 speculative decoding을 통한 가속화를 가능하게 합니다.
효율적인 학습 (Efficient Training)
DeepSeek-V3는 다음과 같은 기술을 통해 학습 효율성을 극대화했습니다:
- FP8 혼합 정밀도 학습: 대규모 모델 최초로 FP8 연산 및 저장을 지원하여 학습 속도를 높이고 GPU 메모리 사용량을 줄였습니다.
- DualPipe 알고리즘: 파이프라인 병렬 처리를 위한 알고리즘으로, cross-node MoE 학습 시 발생하는 통신 병목 현상을 해소하고 파이프라인 버블을 최소화합니다. 이를 통해 computation-communication overlap을 극대화하고 all-to-all 통신 오버헤드를 거의 0으로 만듭니다.
- 효율적인 통신 커널: InfiniBand(IB) 및 NVLink 대역폭을 최대한 활용하는 cross-node all-to-all 통신 커널을 개발했습니다.
- 메모리 최적화: Tensor parallelism 없이도 학습 가능하도록 메모리 사용량을 최적화했습니다.
학습 과정 및 데이터
- 사전 학습: 14.8조 개의 고품질 토큰으로 학습했습니다.
- 컨텍스트 길이 확장: 최대 컨텍스트 길이를 32K, 이후 128K까지 두 단계에 걸쳐 확장했습니다.
- Post-Training: SFT(Supervised Fine-Tuning) 및 RL(Reinforcement Learning)을 통해 모델을 인간 선호도에 맞추고, DeepSeek R1 시리즈 모델의 추론 능력을 증류(distillation)하여 주입했습니다.
학습 비용 (Training Cost)
- 사전 학습: 1조 토큰당 180K H800 GPU 시간이 소요되었으며, 2048개 H800 GPU 클러스터에서 3.7일 만에 완료됩니다. 총 사전 학습 비용은 2664K GPU 시간 (약 2달 소요)입니다.
- 추가 학습: 컨텍스트 길이 확장에 119K GPU 시간, post-training에 5K GPU 시간이 필요합니다.
- 총 비용: 전체 학습 비용은 약 2.788M GPU 시간입니다. (H800 GPU 시간당 $2 가정 시, 약 $5.576M)
벤치마크 성능
- DeepSeek-V3-Base 모델은 특히 코드(code)와 수학(math) 분야에서 뛰어난 성능을 보입니다.
- 주요 closed-source 모델 (GPT-4o, Claude-3.5-Sonnet 등)과 경쟁력 있는 성능을 갖습니다.
- MATH-500 벤치마크에서 o1-preview를 능가하며 강력한 수학적 추론 능력을 입증했습니다.
아키텍처 (Architecture)
DeepSeek-V3는 Transformer 기반이며, DeepSeek-V2에서 검증된 핵심 요소들을 계승 및 발전시켰습니다.
- Multi-Head Latent Attention (MLA): 효율적인 추론(inference)을 위해 사용됩니다.
- DeepSeekMoE: 경제적인 학습(training)을 위해 사용됩니다.
- Auxiliary-Loss-Free 로드 밸런싱: DeepSeek-V2와의 주요 차이점으로, 성능 저하 없이 로드 밸런스를 맞춥니다.
- 기타 세부 사항은 DeepSeek-V2 설정을 따릅니다.
DeepSeek-V3 기본 구조
Multi-Head Latent Attention (MLA)
MLA는 추론 시 Key-Value (KV) 캐시를 줄이기 위한 low-rank joint compression 기법입니다.
- Key, Value, Query에 대해 개별적인 down projection을 수행합니다 (Key와 Value는 projection 공유).
- Projection 크기를 줄여 KV 캐시 크기를 크게 감소시킵니다.
- 최종 Attention Output 계산 시 up projection을 통해 복구합니다.
- 복구 과정에서 RoPE(Rotary Positional Embedding)를 적용한 벡터와 적용하지 않은 벡터를 concatenate하여 사용하는 것이 특징입니다 (Query, Key에 적용).
추가적으로 query 에 대해서도 마찬가지로 RoPE 를 적용한 $\mathbf{q}t^{R}$ 과 그렇지 않은 $\mathbf{q}{t, i}^C$ 를 concatenate 하는 것을 볼 수 있다.
최종적인 output 계산은 일반적인 transformer 와 차이가 거의 없다.
DeepSeekMoE with Auxiliary-Loss-Free Load Balancing
DeepSeekMoE는 다음과 같은 특징을 가집니다:
- Finer-grained experts: 더 세분화된 전문가를 사용합니다.
- Shared experts: 일부 전문가를 공유 전문가로 격리합니다.
- Auxiliary-Loss-Free Load Balancing: 로드 밸런싱을 위한 별도의 auxiliary loss 없이, 성능 저하를 최소화하며 전문가 사용률을 균형 있게 조절합니다.
References
Enjoy Reading This Article?
Here are some more articles you might like to read next: