빠르게 진화하는 인공지능 분야에서 DeepSeek은 OpenAI와 Google 같은 기존 거대 기업에 도전하는 강력한 경쟁자로 떠올랐다. DeepSeek은 2023년 7월 Liang Wenfeng이 설립한 중국의 AI 회사로, 대형 언어 모델(LLM)에 대한 혁신적 접근과 오픈 소스 개발에 대한 헌신으로 주목받고 있다. 이 글은 DeepSeek 모델의 아키텍처, 혁신, 그리고 함의를 살펴보며, 특히 Mixture-of-Experts(MoE) 프레임워크와 DeepSeek-V2, DeepSeek-R1 모델의 진전을 중심으로 분석한다.
DeepSeek은 무엇이며 왜 중요한가?
인공지능(AI)은 빠르게 발전해 왔고, 그중에서도 DeepSeek은 가장 야심찬 프로젝트 중 하나로 두드러진다. 최상위급 AI 엔지니어와 연구자 출신 팀이 개발한 DeepSeek은, 대규모 독점 모델(GPT-4 등)과 오픈 연구 커뮤니티 사이의 격차를 좁히려는 차세대 오픈 소스 언어 모델을 대표한다.
2024년 말 출시된 DeepSeek은 학습 효율, 스케일링, 메모리 검색에 관한 여러 새로운 아이디어를 도입하며 오픈 모델이 달성할 수 있는 한계를 넓혔다.
DeepSeek의 아키텍처는 전통적 모델과 어떻게 다른가?
MoE란 무엇인가?
전통적인 밀집 신경망에서는 입력의 성격과 무관하게 모든 입력이 네트워크 전체를 통과하여 모든 파라미터가 활성화된다. 이 방식은 단순하지만, 모델이 커질수록 비효율을 초래한다.
Mixture-of-Experts 아키텍처는 네트워크를 서로 다른 작업이나 데이터 패턴에 특화된 여러 하위 네트워크(‘전문가’)로 분할함으로써 이를 해결한다. 게이팅 메커니즘이 각 입력마다 이 전문가들 중 일부를 동적으로 선택해, 네트워크의 가장 관련성 높은 부분만 활성화되도록 한다. 이러한 선택적 활성화는 연산 오버헤드를 줄이고 모델의 전문화를 강화한다.
Mixture-of-Experts 아키텍처는 대규모 신경망의 효율성과 확장성을 개선하기 위해 고안된 기법이다. 모든 입력마다 모든 파라미터를 활성화하는 대신, MoE는 입력 데이터에 따라 특화된 일부 ‘전문가’ 네트워크만 선택적으로 활성화한다. 이 접근법은 연산 부담을 낮추고 보다 표적화된 처리를 가능하게 한다.
DeepSeek의 MoE 구현
DeepSeek-R1과 DeepSeek-V2 같은 DeepSeek의 모델들은 고도화된 MoE 프레임워크를 활용한다. 예를 들어, DeepSeek-R1은 6710억 개의 파라미터를 갖고 있지만 임의의 한 번의 forward pass에서 활성화되는 파라미터는 370억 개에 불과하다. 이러한 선택적 활성화는 입력을 가장 관련성 높은 전문가에게 라우팅하는 정교한 게이팅 메커니즘에 의해 관리되며, 성능을 훼손하지 않으면서 연산 효율을 최적화한다.
단순화한 DeepSeek Transformer는 어떤 모습인가?
다음은 DeepSeek이 희소 전문가 혼합 메커니즘을 구현할 수 있는 방식을 단순화해 보여주는 코드 예시다:
pythonimport torch
import torch.nn as nn
import torch.nn.functional as F
class Expert(nn.Module):
def __init__(self, hidden_dim):
super(Expert, self).__init__()
self.fc = nn.Linear(hidden_dim, hidden_dim)
def forward(self, x):
return F.relu(self.fc(x))
class SparseMoE(nn.Module):
def __init__(self, hidden_dim, num_experts=8, k=2):
super(SparseMoE, self).__init__()
self.experts = nn.ModuleList()
self.gate = nn.Linear(hidden_dim, num_experts)
self.k = k
def forward(self, x):
scores = self.gate(x)
topk = torch.topk(scores, self.k, dim=-1)
output = 0
for idx in range(self.k):
expert_idx = topk.indices
expert_weight = F.softmax(topk.values, dim=-1)
expert_output = torch.stack((x) for j, i in enumerate(expert_idx)])
output += expert_weight.unsqueeze(-1) * expert_output
return output
# Example usage
batch_size, hidden_dim = 16, 512
x = torch.randn(batch_size, hidden_dim)
model = SparseMoE(hidden_dim)
out = model(x)
print(out.shape) # Output shape: (16, 512)
이 기본 예시는 입력에 따라 2개의 전문가를 동적으로 선택하고 그 출력을 집계하는 과정을 모사한다.

DeepSeek은 어떤 학습 전략을 사용했는가?
데이터 수집과 큐레이션은 어떻게 이루어졌나?
DeepSeek의 창립자들은 데이터의 단순한 양보다 데이터의 품질을 크게 강조했다. OpenAI 등 다른 곳이 광범위한 공개 인터넷에서 데이터를 수집한 것과 달리, DeepSeek은 다음을 결합했다:
- 선별된 오픈 데이터셋(Pile, Common Crawl 일부)
- 학술 코퍼스
- 코드 저장소(예: GitHub)
- 소형 지도학습 모델로 생성한 특수 합성 데이터셋
이들의 학습은 다단계 커리큘럼 러닝 접근법을 따랐다:
- 초기 단계에서는 더 쉽고 사실 중심의 데이터셋을 학습
- 후반 단계에서는 추론 중심과 코딩 작업을 강조
어떤 최적화 기법이 사용됐나?
대형 언어 모델을 효율적으로 학습하는 일은 여전히 큰 도전이다. DeepSeek은 다음을 활용했다:
- ZeRO-3 병렬화: 옵티마이저 상태, 그래디언트, 파라미터를 GPU 간에 분할
- 학습 중 Int8 양자화: 모델 품질을 훼손하지 않으면서 메모리 사용을 최소화
- 적응형 학습률: warmup과 결합된 cosine annealing 같은 기법 사용
다음은 적응형 학습률 스케줄링을 보여주는 간단한 스니펫이다:
pythonfrom torch.optim.lr_scheduler import CosineAnnealingLR
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4)
scheduler = CosineAnnealingLR(optimizer, T_max=100)
for epoch in range(100):
train(model)
validate(model)
scheduler.step()
이 코드는 학습 과정에서 학습률을 부드럽게 조정한다.
DeepSeek은 어떻게 뛰어난 성능을 달성하나?
검색(Retrieval)은 어떤 역할을 하는가?
DeepSeek은 마치 신경망에 검색 엔진을 꽂아 넣은 듯한 내장 검색 시스템을 통합한다. 프롬프트가 주어지면 모델은 다음을 수행할 수 있다:
- 쿼리를 인코딩
- 외부 메모리에서 관련 문서를 검색
- 해당 문서를 내부 지식과 융합
이를 통해 DeepSeek은 기존의 폐쇄형 모델보다 사실에 더 충실하고 최신성을 유지할 수 있다.
개념적으로는 대략 다음과 같다:
pythonclass Retriever:
def __init__(self, index):
self.index = index # Assume some pre-built search index
def retrieve(self, query_embedding):
# Search based on similarity
return self.index.search(query_embedding)
class DeepSeekWithRetriever(nn.Module):
def __init__(self, model, retriever):
super().__init__()
self.model = model
self.retriever = retriever
def forward(self, query):
embedding = self.model.encode(query)
docs = self.retriever.retrieve(embedding)
augmented_input = query + " " + " ".join(docs)
output = self.model.generate(augmented_input)
return output
이러한 Retrieval-Augmented Generation(RAG)은 DeepSeek의 장기 추론 능력을 크게 향상시킨다.

DeepSeek은 어떻게 평가되었나?
모델은 다음 벤치마크로 평가되었다:
- MMLU: Multi-task language understanding
- HumanEval: 코드 생성 정확도
- TruthfulQA: 진실성 평가
- BIG-bench: 광범위한 일반 AI 평가
대부분의 경우, DeepSeek의 대형 모델(30B, 65B 파라미터)은 추론 과제에서 GPT-4-turbo에 필적하거나 능가했고, 운영 비용은 상당히 저렴했다.
DeepSeek에 남은 과제는 무엇인가?
인상적이긴 하지만, DeepSeek에도 한계는 있다:
- 편향과 유해성: 선별된 데이터셋에서도 문제적 출력이 스며들 수 있음
- 검색 지연: RAG 시스템은 순수 생성 모델보다 느릴 수 있음
- 연산 비용: MoE를 사용해도 학습과 서빙 비용은 여전히 높음
DeepSeek 팀은 모델 프루닝, 더 똑똑한 검색 알고리즘, 편향 완화에 적극적으로 노력하고 있다.
결론
DeepSeek은 Transformer 기반 모델의 부상 이후 오픈 AI 개발에서 가장 중요한 변화 중 하나를 보여준다. 희소 전문가, 검색 통합, 더 똑똑한 학습 목표 같은 아키텍처 혁신을 통해, 오픈 모델이 달성할 수 있는 새로운 기준을 제시했다.
AI 지형이 변화함에 따라 DeepSeek(및 그 파생 모델)은 차세대 지능형 애플리케이션을 형성하는 데 중요한 역할을 할 것으로 보인다.
시작하기
개발자는 DeepSeek R1 API와 DeepSeek V3 API를 CometAPI를 통해 이용할 수 있다. 시작하려면 Playground에서 모델의 역량을 시험해 보고, 자세한 안내는 API 가이드를 참고하라. 일부 개발자는 모델을 사용하기 전에 소속 조직을 인증해야 할 수 있다.
