본문 바로가기
Data Science/DL 딥러닝

DeepSeek 정복기 [3] 딥시크 V3에 대한 기본적인 이해

by 사이언티스트 수리링 2025. 2. 18.
반응형

DeepSeek - V3

Deepseek의 R1 family는 흔히 '순수 강화학습'이라는 keyword와 함께 쓰이며 마치 강화학습만을 이용해 완전한 무에서 유를 창조한 모델인 것처럼 잘못 받아들여질 때가 많다. (딥시크에서 그런 의도로 마케팅을 했을 것이기도 하겠지만...)

딥시크의 R1 family는 DeepSeek-V3-Base모델을 Post-training하여 만들어진 모델들로, V3은 약14.8T(조) 개의 빅데이터셋을 가지고 Supervised Trained - 지도 학습된, 총 671B(6710억) 개의 파라미터를 가진 초대형 언어 모델이다.

따라서 R1의 추론 능력은, 그들이 개발한 강화 학습 레시피를 이용하여 DeepSeek-V3이 가지고 있는 기본적인 추론 능력을 극대화시킨 것으로 이해하는 것이 조금 더 바람직하겠다.

본 포스팅에서는
딥시크에서 발표한 V3 Technical Report를 토대로
V3을 제작하기 위해 사용된 주요 기술
핵심 내용을 정리한다.

단, R1 이해를 위해 V3 모델에 어떤 기술이 쓰였는지 파악하는 정도를 목적으로 한다. 즉, 기술에 대해 그 아이디어와 목적만을 빠르게 파악하고, 기술 자체를 완벽히 탐구하지는 않는다. (기술과 수식 탐구는 추후에 기회가 되면 해 보겠다.)


https://arxiv.org/pdf/2412.19437


Key Contributions

V3 기술 문서 논문(Technical Report)의 결론(Conclusion)에서 밝히고 있는 main contribution을 정리하면 아래와 같다. (주황색 글씨가 주요 키워드에 해당하므로 집중하여 읽어 보기)

We introduce DeepSeek-V3, a large MoE language model with 671B total parameters and 37B activated parameters, trained on 14.8T tokens.

DeepSeek-V3 모델 공개 - 이 모델은 Mixture of Experts(MoE) 구조를 사용한 언어 모델로, 14.8T 토큰 데이터셋으로 학습되었고, 총 671B 파라미터를 가지고 있으며, 이 중 37B만이 활성화(activated)된다.

In addition to the MLA and DeepSeekMoE architectures, it also pioneers an auxiliary-loss-free strategy for load balancing and sets a multi-token prediction training objective for stronger performance.

MoE와 MLA 구조에서 더 나아가, load balancing을 위해 auxiliary-loss-free 전략을 개척했으며, 더 강력한 퍼포먼스를 위해 multi-token prediction으로 훈련 목표를 설정하였다.

The training of DeepSeek-V3 is cost-effective due to the support of FP8 training and meticulous engineering optimizations.

DeepSeek-V3 훈련은 FP8 training과 세심한 engineering 최적화의 도움을 받아 매우 비용 효율적으로 이루어진다.

The post-training also makes a success in distilling the reasoning capability from the DeepSeek-R1 series of models.

post-training 역시 매우 성공적이었는데, R1 시리즈 모델들로부터 추론(reasoning) 능력을 증류(distill)할 수 있었다.

It requires only 2.788M H800 GPU hours for its full training, including pre-training, context length extension, and post-training.

V3 full training을 위해서 오직 2.788M H800 GPU hours만을 요구하는데 - full training은 pre-training, context length extension, post-training 3단계를 모두 포함한다.


GPU Hour란?

특정 GPU 한 장(GPU 1개)을 1시간 동안 연산에 사용한 양을 1 GPU hour라고 한다. 예를 들어, GPU 8장을 이용해서 1시간 동안 훈련하면 총 8 GPU hours가 소모된 것. 따라서 2.788M H800 GPU hours = “H800 GPU 한 장을 278만 8천 시간” 동안 돌린 것과 동일한 연산량을 의미한다.

H800은 중국 등의 특정 시장을 위해 출시된 H100 계열의 변형 버전으로, 메모리/대역폭 등이 다소 조정된 모델이라고 한다. 기본적으로 H100급 성능과 비슷한 수준이지만, 정확히는 클럭 주파수, 대역폭 등이 조금 낮게 책정된 버전으로 알려져 있다.

GPT-4는 공식 문서에서 정확한 학습 방식이나 GPU 사용량을 공개하지 않았지만, 수천만 GPU hours 이상 사용되었을 가능성이 높으며, 대략 DeepSeek-v3의 2.788M GPU hours보다 최소 수 배~수십 배 이상의 GPU hours가 들었을 것으로 보는 시각이 지배적. (Claude 시리즈 역시 동일)

따라서 DeepSeek-v3 보고서가 말하는 “economical”함은, 비슷한 규모(혹은 다소 준하는 성능)의 LLM 중에서는 GPU 사용량 대비 성능이 매우 뛰어나다는 의미.

Architecture, Training, Framework

V3 기술 문서 논문(Technical Report)의 주요 키워드는 아래와 같았다.

  • Mixture of Experts(MoE)
  • 14.8T 토큰 데이터셋으로 학습
  • load balancing을 위해 auxiliary-loss-free 전략을 개척
  • multi-token prediction으로 훈련 목표를 설정
  • FP8 training

여기에 대해 조금 더 살을 덧붙여, 논문 내용을 토대로 정리해 보겠다.


[1] MoE(Mixture of Experts) 구조와 로드 밸런싱

MoE(Mixture of Experts)는 하나의 거대한 뉴럴 네트워크 대신, 여러 개의 전문가(Expert)를 조합하여 사용하는 방식이다. 각 전문가(Expert)는 특정 유형의 데이터(예: 과학, 문학, 수학 등)에 특화된 가중치(Parameters)를 가지고 학습한다.

  • 입력 데이터의 특성에 따라 적절한 전문가들을 동적으로 선택하여 학습 및 추론을 수행한다
  • 예를 들어, 어떤 전문가 1은 ‘과학 기술 분야의 텍스트’를, 전문가 2는 ‘문학적 텍스트’를 잘 처리하게 되는 식으로 나누어 학습할 수 있다.
  • 이를 통해 모델은 “한 덩어리(거대 모델)로 모든 종류의 데이터를 처리하는” 대신, 데이터의 성격이나 패턴에 따라 전문가가 다른 방식으로 대응하게 만들어서 효율적 학습이 가능해진다.

Load Balancing(로드 밸런싱)은 이러한 여러 전문가가 고르게 활용되도록 만드는 기법이다.

  • 이를 통해 학습 편향을 방지할 수 있다. 일부 전문가만 지나치게 많이 선택되면, 다른 전문가들은 학습 데이터가 거의 없어서 충분히 학습되지 못할 수 있다.
  • 또, 모델 리소스 활용을 극대화시킬 수 있다. 모든 전문가가 어느 정도 균형 있게 사용되어야, 각 전문가가 배정된 연산량(컴퓨팅 자원)을 최대한 활용할 수 있다.

전통적으로는 Load Balancing을 위하여 보조 손실(Auxiliary Loss)을 추가하여 전문가 배분을 강제하는 방식을 사용하는 편이다. 이때 모델이 적절한 로드 밸런싱을 갖도록 일정 가중치를 둬서 ‘너무 치우치지 않게’ 조절하는 것.


[2] Auxiliary-loss-free 전략

기존 MoE 모델에서는 Auxiliary Loss(보조 손실)을 추가하여 전문가들이 균등하게 사용되도록 유도했다. 그러나 보조 손실이 너무 크면 모델이 “균형 잡힌 전문가 선택”을 우선 학습하여, 원래의 목표인 “최적의 성능”을 방해할 수 있다. 로드 밸런싱을 강제할수록 모델의 자유도가 낮아지고, 결과적으로 성능 저하로 이어질 가능성이 크다.

따라서 DeepSeek-V3는 Auxiliary-Loss-Free 전략을 도입하여, 별도의 보조 손실 없이도 전문가들이 자연스럽게 균형을 이루도록 설계되었다.

  • Auxiliary-Loss-Free 전략은 각 전문가의 선택 과정에서 Bias Term(편향 요소)을 추가하여 실시간으로 전문가 사용률을 조정하는 방식이다.
  • 이를 통해 모든 전문가가 골고루 활성화되면서도, 모델 성능 저하는 방지된다.

[3] Multi-Token Prediction & Speculative Decoding

전통적 언어 모델은 보통 “직전 토큰(단어)을 기반으로 다음 토큰 하나”만 예측하며, 이걸 체인처럼 연결해 나가는 방식을 사용한다. DeepSeek-V3에서는 더 나아가서 “여러 토큰을 동시에 예측”하도록 훈련 목표를 설정했다.

  • 이를 통해 모델이 문맥을 볼 때 “묶음 단위”로 더 넓은 시야를 갖고 예측이 가능해졌다. 또한, 문장 전체적인 구조나 맥락, 뒤이은 표현 등을 더 풍부하게 고려해서 학습하게 되므로, 결과적으로 모델의 예측 품질이 높아지게 되었다고 주장한다.
  • 이러한 훈련 목표가 추론(Inference) 단계에서 Speculative Decoding을 가능케 한다고 하는데,
    • Speculative Decoding이란, “모델이 다음에 나올 토큰을 여러 개 미리 생성해본 뒤, 그중 가능성이 높은 경로를 빠르게 선택”하는 기법이라고 볼 수 있다.
    • 이렇게 하면 실제 추론 속도를 높이고, 필요 없는 토큰 연산을 줄일 수 있어 효율적인 추론을 수행할 수 있다.

[4] FP8 정밀도의 활용

정밀도(Precision)란, 모델이 내부적으로 연산을 수행할 때 사용하는 부동소수점(float) 연산의 비트 수를 말한다.

  • 비트 수가 줄어들수록 계산 속도가 빨라지며, 메모리 사용량이 줄어 더 적은 메모리로도 큰 모델을 담을 수 있다. 그러나 정밀도가 너무 낮으면 학습 과정에서 오차가 누적되어 모델 정확도가 크게 떨어지거나 학습이 잘 안 될 수 있다는 위험이 존재한다. (Tradeoff)
  • FP8(Floating Point 8-bit)는 기존보다 더 낮은 비트(8-bit)로 연산을 수행하는 부동소수점 연산 방식이다 .

    FP64
    가장 높은 정밀도를 제공하지만, 메모리 사용량과 연산 비용이 가장 크다.

Precision 간단 정리
(뒤로 갈수록 가벼워진다.)

- FP32 : 그래픽 및 딥러닝에서 표준으로 자주 쓰이는 정밀도
- TF32 : NVIDIA GPU에서 특수 최적화된 형식, FP32에 가까운 정확도 FP16 수준의 속도 동시에 추구.
- BF16 : FP16 대비 넓은 표현 범위를 가지며, 대규모 모델 학습 시 안정성이 높은 편.
- FP16 : 연산 효율이 뛰어나지만, 오버플로 및 언더플로에 민감해 Loss Scaling 등이 필요.
- FP8 : 가장 낮은 비트의 부동소수점 형식(8비트) 중 하나로, 연구가 활발히 진행 중이며 초저정밀로 연산/메모리 효율을 크게 높일 수 있으나 표준화가 진행 중이라 안정성 확보가 관건.
- INT8 : 부동소수점이 아닌 8비트 정수로, 주로 추론 단계에서 양자화(Quantization)를 적용해 속도와 메모리 이점을 얻고자 할 때 많이 사용함.
- INT4/2/1 : 초저비트 정수 방식. 극단적인 경량화가 가능하지만, 정확도 손실학습 안정성 문제가 매우 커서 아직 제한된 영역에서만 사용되는 특징이 있음.

DeepSeek-V3에서는 대규모 모델에서 FP8 정밀도를 실제로 적용할 수 있는 새로운 프레임워크를 도입했고, “FP8도 큰 모델에 적용 가능한가?”라는 의문에 대해 실질적인 효능을 입증했다.

FP8 정밀도는 메모리 사용량을 줄이고 계산 효율성을 높이는 데 유리하며, NVIDIA의 H100 GPU와 같은 최신 하드웨어에서 최적화된 성능을 발휘하는 것으로 알려져 있다. FP8은 특히 텐서 코어 처리량을 두 배로 증가시키고, 메모리 요구사항을 크게 줄이는 장점이 있어 점차 주목받을 것으로 보인다.

DeepSeek 외의 다른 대규모 언어 모델(LLM) 중에서 FP8 정밀도를 학습에 활용한 사례는 명확히 언급된 바가 없다.


[5] Cross-Node MoE Training 최적화

문제점: GPU 간 통신 병목 (Bottleneck)

  • MoE 모델을 여러 GPU에서 학습할 때, 전문가들이 서로 다른 노드에 배치된다 .
  • 특정 토큰이 어떤 전문가를 선택하느냐에 따라 GPU 간 데이터 전송이 빈번하게 발생하여 학습 속도가 저하될 수 있다.

해결책

  • DeepSeek는 연산과 통신을 오버랩(Overlap) 처리하여 한쪽에서 연산하는 동안, 다른 쪽에서 데이터를 미리 전송하는 방식을 채택하였다.
  • 이를 통해 모델 규모를 확장하더라도 통신으로 인한 추가 비용 증가가 거의 발생하지 않는다.

지식 증류(Knowledge Distillation)

“성능이 뛰어난 모델(Teacher)”이 있으면, 그 모델이 학습해 놓은 ‘지식’을 “규모가 더 작거나 다른 용도의 모델(Student)”에게 전달하는 과정을 의미한다.

Teacher 모델이 생성한 예측(로그잇, 확률 분포 등)을 Student 모델이 학습 데이터로 삼아 “Teacher와 유사한 응답을 하도록” 훈련을 진행하는 방식이 일반적.

이를 통해, Student 모델은 Teacher 모델의 정교한 추론 능력이나 지식 베이스를 보다 빠르게 습득할 수 있다. 그 결과, Student 모델의 성능이 단독 학습 대비 높은 수준으로 향상될 수 있음.

[6] 포스트-트레이닝: DeepSeek-R1로부터의 지식 증류

Long-Chain-of-Thought(CoT) 모델과 DeepSeek-R1

  • DeepSeek-R1 시리즈는 장문 추론(Long-Form Reasoning)에 특히 강점을 지닌 모델. 즉, 긴 텍스트 내에서 복잡한 문맥이나 논리 흐름을 잘 분석하고, 길고 체계적인 답변을 생성해내는 능력이 우수함.
  • DeepSeek-V3는 이를 활용해, “DeepSeek-R1이 이미 잘하는 장문 논리 추론 능력을 DeepSeek-V3에게 전달”받도록 지식 증류 과정을 수행하였음. 결과적으로, DeepSeek-V3가 더 짧은 학습 기간에도 R1 수준의 장문 추론 역량을 어느 정도 흡수할 수 있게 됨. 이때, R1의 “출력 스타일”이나 “답변 길이”도 참고해서, V3가 더 자연스럽게 비슷한 톤으로 추론 결과를 내도록 하였음.

검증(Verification)과 반추(Reflection) 패턴

  • 검증(Verification): 모델이 어떤 답변을 내기 전에, 또는 낸 후에 스스로 “이게 정말 맞는 답변인가?”라고 다시 한 번 확인하는 과정
    • 예: 모델이 수학 문제 답을 낸 뒤, “계산 단계에 오류는 없었는지”를 재검토
  • 반추(Reflection): 모델이 자신의 추론 과정을 되짚어보며 “왜 이런 결론에 도달했는지”를 점검·설명하는 기법.
    • 이는 모델이 좀 더 체계적인 이유를 찾아내거나, 잘못된 추론 경로를 발견했을 때 보정
  • DeepSeek-V3는 이러한 검증과 반추 단계를 통합하여, 답변 정확도(Reasoning Accuracy)를 높이고, 더 풍부한 해설을 생성할 수 있게 하였다. 특히 복잡한 문제일수록, 모델이 한 번에 정답을 찾기 어려운데, 검증/반추를 통해 오류를 정정할 기회를 갖게 되는데, 이는 사용자 입장에서도 모델 답변을 신뢰하기 더 쉽게 만들어 준다.
  • 실제로 R1을 사용해 보면, think 토큰 안에서 자신의 생각이 맞는지 되묻고 재검증하는 과정을 아주 쉽게 살펴볼 수 있다.

정리 완료.

반응형