huginn muninn

[Paper Review] DeepSeek-V3 Technical Report (2024) - 1 본문

자연어 처리

[Paper Review] DeepSeek-V3 Technical Report (2024) - 1

_maddy 2025. 1. 30. 20:56
https://arxiv.org/pdf/2412.19437

 

 

DeepSeek가 미국의 H100 같은 고사양 칩 없이, H800만으로도 최첨단 AI 모델을 만들어냈다. 보통 LLM을 훈련하려면 엄청난 연산량과 메모리가 필요한데, MLA(Multi-Head Latent Attention)MoE(Mixture of Experts) 구조를 써서 연산 비용을 확 줄였다고 한다. 덕분에 저비용으로도 대규모 모델을 돌릴 수 있게 됐고, 심지어 오픈소스로 공개까지 했다 wow!  코드 꽁꽁 숨기는 다른 회사들 생각하면 좀 통쾌하기도 하고 ㅋㅋ 게다가 LLM의 블랙박스 문제 해결에 한 걸음 다가간 것 같아서 꽤나 설레는 중이다. 

 

지금 DeepSeek 때문에 미국도 난리고 주식장도 난리인데, X나 스레드 내에서의 여러 전문가들의 의견들도 흥미롭다. 

 

'넷스케이프'의 발명가이자 세계적인 벤처 캐피털 앤드리슨 호로비츠의 공동 창립자 마크 앤드리슨은 X(트위터)를 통해 "딥시크 R1은 내가 본 것 중 가장 놀랍고 인상적인 혁신 중 하나"라며 경례 이모티콘을 붙였다. 하지만 얀 르쿤 메타 수석과학자는 링크드인을 통해 “딥시크의 성과를 보고 중국이 AI에서 미국을 앞지르고 있다고 생각하는 것은 잘못이며, 정확한 해석은 오픈 소스 모델이 독점 모델을 앞질렀다는 것으로 봐야 한다"라고 지적했다. 나도 딥시크로 이것저것 테스트 해봤는데 체감상 o1 만큼은 아닌 것 같아서; 계속 ChatGPT를 사용할 것 같긴하다. (또 최근 보안에 취약하다는 얘길 봐서.. 더욱 사용하길 꺼려하는중.................라고 GPT로 이것저것 다 하는 사람이 말했다.ㅎ..)


출처 : AI타임스(https://www.aitimes.com)

 

쨋든 이번 주는 DeepSeek 페이퍼나 읽어보면서 공부 좀 해야겠다. 


 

Abstract & Introduction

 

DeepSeek-V3는 6710억 개의 전체 파라미터를 갖춘 대규모 Mixture-of-Experts (MoE) 언어 모델로, 각 토큰마다 370억 개의 파라미터가 활성화됩니다. 이 모델은 Multi-head Latent Attention (MLA) 및 DeepSeekMoE 아키텍쳐를 사용해 훈련 효율성과 추론 속도를 극대화했습니다. 또한 auxiliary-loss-free 전략과 다중 토큰 예측(Multi-Token Prediction, MTP) 방식으로 성능을 더욱 향상 시켰습니다.

이 모델은 14.8조 개의 고품질 토큰을 사용해 사전 훈련(pre-training)되었으며, 지도학습 미세 조정(Supervised Fine-Tuning, SFT) 및 강화학습(Reinforcement Learning, RL) 단계를 거쳐 더욱 정교한 성능을 갖추게 되었습니다. 평가 결과, DeepSeek-V3는 대부분의 오픈소스 모델을 능가하고, GPT-4o 및 Claude 3.5 Sonnet 같은 폐쇄형 모델들과 비교할 만큼 높은 성능을 보였습니다.

DeepSeek-V3의 main contribution은 다음과 같습니다.

 

  1. 효율적인 아키텍쳐
    • 기존 MoE 모델의 load balancing 문제를 해결하기 위해 auxiliary-loss-free 전략을 사용하여 성능 저하 없이 균형을 유지.
    • MTP(Multi-Token Prediction) 기법을 사용해 모델의 추론 속도를 가속화
  2. 사전 훈련 효율성 극대화
    • FP8 기반 훈련을 최초로 검증해 비용 절감.
    • 통신 병목 해결로 훈련 속도 향상
    • 14.8T 토큰을 경제적인 비용으로 학습
  3. 지식 증류를 통한 성능 향상
    • DeepSeek-R1의 논리적 사고 능력을 V3에 전이
    • 응답 스타일과 길이를 정밀하게 조정 가능
     

 

 


🎯 Auxiliary-loss-free strategy ?

기존의 Mixture-of-Experts(MoE) 특정 전문가 네트워크(Experts Networks)들이 너무 많이 선택되거나, 특정 전문가가 너무 적게 사용되는 문제가 발생할 수 있습니다.

이런 불균형을 해결하기 위해 기존 MoE 모델에서는 Auxiliary Loss를 추가해 각 전문가가 균형있게 사용되도록 강제하는 방법을 사용했습니다. 그러나 DeepSeek-V3에서는 auxiliary loss 없이 균형을 맞추는 새로운 전략을 도입, 즉, 추가적인 패널티 없이도 전문가 네트워크가 고르게 활성화되도록 최적화된 MoE 구조를 설계한 것입니다.


Architecture

DeepSeek-V3는 Transformer 기반 모델이며, 이전 버전인 DeepSeek-V2에서 도입된 MLA와 DeepSeekMoE 구조를 유지하면서 최적화를 거쳤습니다.

1. Multi-Head Latent Attention (MLA)

  • 기존의 다중 헤드 어텐션(MHA)보다 더 효율적인 방식으로 키-값(Key-Value) 캐시 크기를 줄여 추론 속도를 개선했습니다.
  • 훈련 과정에서 메모리를 절약하면서도 기존 Transformer 모델과 비슷한 성능을 유지하도록 설계되었습니다.
🤔 기존의 Multi-head attention과 무엇이 다를까?

기존의 Multi-head attention은 각 토큰마다 queries, keys, values를 생성하고 이를 활용해 attention 점수를 계산한다. 하지만 다음과 같은 문제가 발생합니다.

 

  1. KV 캐시 부담
    • 모델이 문장을 생성할 때 이전 토큰들의 key-value 페어를 모두 저장해야함.
    • 토큰이 많아질수록 저장해야하는 KV 캐시가 점점 커져서 메모리 부담이 급격히 증가.
  2. 훈련 시 활성화 메모리 문제
    • 훈련 중에도 모든 Attention 연산에 대한 중간 결과를 저장해야함.
    • 모델 크기가 커질 수록 메모리 요구량이 증가하여 학습 속도가 저하됨.

이를 해결하기위해 Keys(K)와 Values(V)를 저차원(Latent)벡터로 압축해 저장하여 메모리 사용량을 감소합니다. 또한 Queries(Q)도 저차원 벡터로 압축해 처리합니다. 이렇게 하면 훈련중 발생하는 Activation Memory도 감소하여 훈련이 더 효율적으로 수행될 수 있습니다.

또한, MLA는 기존의 Key-Value 연산에 RoPE(Rotary Positional Embedding)을 추가로 활용합니다. RoPE는 위치 정보를 더 잘 반영할 수 있도록 돕는 방식으로 MLA에서는 압축된 Key와 Query에 적용되는데요. 이를 통해 MLA는 긴 문장에서의 문맥 이해 능력을 유지하면서도 메모리 사용량을 줄이는 효과를 얻을 수 있습니다. 


🎯 MLA vs MHA 핵심 차이점

  • Key-Value 압축
    • 기존 MHA에서는 모든 Key-Value를 저장해야하지만, MLA는 Key-Value를 저차원으로 압축해 저장공간 압축
  • RoPE 적용(위치정보강화)
    • 기존 MHA에서는 위치 정보가 고정된 임베딩을 사용했지만, MLA는 회전 변환 방식의 RoPE를 활용해 동적인 위치 정보 반영.
  • Query까지 압축해 연산량 감소
  • 위치정보까지 반영한 Scaling \sqrt{d_h + d_h^R} 해 위치 정보를 더욱 강조.

2. DeepSeekMoE with Auxiliary-Loss-Free Load Balancing

DeepSeek-V3는 기존의 MoE(Mixture of Experts)구조를 개선하여 더 균형 잡힌 전문가 활용과 계산 효율성을 높이는 전략을 사용합니다. 기존 MoE 모델들은 expert간 load imbalance 문제로 인해 성능이 저하될 수 있었고, 이를 해결하기 위해 추가적인 손실을 도입하는 경우가 많았습니다. 하지만 DeepSeek-V3는 추가적인 손실 없이 load imbalance를 맞추는 auxiliary-loss-free 방법을 사용해 성능 저하 없이 균형을 유지합니다.

 

📌 Load imbalancing이 발생하면?


- 일부 전문가에게 과도한 부하가 집중되면서 연산이 병목
- 다른 전문가들이 활용되지 않아 모델의 학습 효율성이 저하
- 계산 비용이 증가하여 훈련 및 추론 속도가 느려짐

 

 

Auxiliary-Loss-Free Load Balancing

 

  • 각 전문가마다 편향값을 추가해 동적으로 expert 선택을 조정.
  • 부하가 과도한 expert는 편향 값을 줄이고, 사용이 적은 전문가는 편향 값을 증가시킴.
  • 즉, 전문가를 선택하는 기준 자체를 자동으로 조정하여 부하가 자연스럽게 균형을 이루도록 만듦.

Complementary Sequence-Wise Auxiliary Loss

$$ L_{Bal} = α∑︁_{i=1}^{N_r} f_i P_i $$

하지만 위 방식만으로는 하나의 시퀀스 안에서 expert간 불균형이 발생할 수 있습니다. 이를 방지하기 위해 시퀀스 단위로도 load balance를 조절하는 추가적인 손실함수를 도입했습니다. 이 손실함수의 가중치를 매우 작게 설정해 모델 성능이 영향을 주지 않도록 했습니다.

 

Node-Limited Routing

여러 개의 GPU 노드에서 훈련할 때 모든 expert를 사용할 경우 통신 비용이 증가합니다. 따라서 각 토큰이 최대 M개의 노드로만 라우팅되도록 제한해 통신 비용을 절감합니다. 이를 통해 훈련 중 통신과 계산을 완전히 겹쳐서 수행할 수 있도록 최적화했습니다.

 

No Token-Dropping

기존 MoE 모델들은 부하가 심할 경우 일부 토큰을 무시하는 경우가 있었습니다. 하지만 하지만 DeepSeek-V3는 부하 균형이 우수하기 때문에 토큰을 버리지 않고 모든 토큰을 유지하면서 훈련할 수 있습니다.

 

3. 다중 토큰 예측 (Multi-Token Prediction, MTP)

 

  • 일반적인 언어 모델은 다음 단어 하나를 예측하는 방식으로 훈련되지만, DeepSeek-V3는 한 번에 여러 개의 토큰을 예측하도록 학습합니다. 
  • D개의 추가적인 MTP 모듈을 사용해 각 토큰에서 최대 D개의 미래 토큰을 예측할 수 있도록 합니다. 
  • MTP는 DeepSeek-V3의 학습을 강화하는 핵심 기법이며, 추론 과정에서도 성능과 속도를 향상시키는 데 기여할 수 있습니다.

 

오늘은 여기까지 정리... 다음에 infra 구조와 훈련과정에 대해서 정리해보겠다.. 어휴 힘들어