DeepSeek 架构与训练创新
中国团队的开源大模型,以低成本高效率著称。
概述
DeepSeek 是深度求索公司开发的大语言模型系列,其核心创新在于通过架构优化大幅降低训练和推理成本,同时保持与顶级模型相当的性能。
核心创新一:MLA(Multi-head Latent Attention)
传统多头注意力的痛点
传统 MHA 的内存问题(以 GPT-3 规模为例):
每生成一个新 token,都要缓存之前所有 token 的 K 和 V
假设:
- 序列长度:4096 tokens
- 头数:96
- 每头维度:128
- 层数:96
KV Cache 大小 = 4096 × 96 × 128 × 96 × 2 (K和V) × 2 (字节)
≈ 150 GB!!
这导致:
1. 推理时显存爆炸
2. 并发用户数受限
3. 成本居高不下
DeepSeek 的解决方案:低秩压缩
核心思想:KV 缓存太大?那就压缩它!
传统 MHA:
┌─────────────────────────────────────────┐
│ 每个头都有独立的 K 和 V │
│ │
│ 头1: K₁(128维), V₁(128维) │
│ 头2: K₂(128维), V₂(128维) │
│ ... │
│ 头96: K₉₆(128维), V₉₆(128维) │
│ │
│ 总缓存:96 × 128 × 2 = 24576 维/token │
└─────────────────────────────────────────┘
DeepSeek MLA:
┌─────────────────────────────────────────┐
│ 所有头共享一个压缩后的"潜在向量" │
│ │
│ 原始 KV → 压缩 → c (512维) ← 只缓存这个!│
│ ↓ │
│ 需要时再解压 │
│ ↓ │
│ 恢复出各头的 K 和 V │
│ │
│ 总缓存:512 维/token │
│ 压缩比:24576 / 512 ≈ 48 倍! │
└─────────────────────────────────────────┘
MLA 的数学原理
# 传统 MHA
K = X @ W_K # 直接投影,维度大
V = X @ W_V # 直接投影,维度大
# 缓存 K, V(巨大)
# DeepSeek MLA
c = X @ W_down # 先降维压缩到潜在空间(比如 512 维)
# 只缓存 c(很小)
# 推理时解压
K = c @ W_up_K # 从潜在向量恢复 K
V = c @ W_up_V # 从潜在向量恢复 V本质:用矩阵分解的思想,把大矩阵拆成小矩阵的乘积
图解对比
传统 Multi-Head Attention:
┌─── K₁ V₁ ───┐
├─── K₂ V₂ ───┤
Input → [投影] → ├─── K₃ V₃ ───┤ → 缓存全部 KV → 巨大!
├─── ... ────┤
└─── Kₙ Vₙ ───┘
DeepSeek MLA:
┌─── K₁ V₁ ───┐
Input → [压缩] → c (小) → ├─── K₂ V₂ ───┤
↑ ↓ ├─── K₃ V₃ ───┤
只缓存c [解压] ├─── ... ────┤
└─── Kₙ Vₙ ───┘
核心创新二:MoE(Mixture of Experts)
💡 本节是 DeepSeek 特定的 MoE 实现解读。 如果你想看 Dense vs MoE 的通用对比(路由机制、激活参数概念、显存陷阱等),先看 Dense 与 MoE 架构对比;本节假设已读过那篇,专注 DeepSeek 自家的工程化选择。 想看 MoE 模型如何实际部署(FP8/AWQ 量化、显存估算),见 本地部署模型量化选型。
传统密集模型的问题
传统 Transformer:
┌──────────────────────────────┐
│ 每个 token 都经过完整的 │
│ FFN(前馈网络) │
│ │
│ 参数量:全部激活 │
│ 计算量 = 参数量 │
└──────────────────────────────┘
DeepSeek 的 MoE 架构
DeepSeek MoE:
┌──────────────────────────────┐
│ 有 N 个专家(Expert) │
│ │
│ 专家1: 擅长代码 │
│ 专家2: 擅长数学 │
│ 专家3: 擅长语言 │
│ ... │
│ 专家N: 擅长xxx │
│ │
│ Router: 每个 token 只激活 │
│ 其中 2-3 个专家 │
│ │
│ 结果:总参数 671B │
│ 激活参数只有 37B! │
└──────────────────────────────┘
MoE 工作原理
class MoELayer:
def __init__(self, num_experts=256, top_k=8):
self.experts = [FFN() for _ in range(num_experts)]
self.router = Linear(d_model, num_experts) # 路由器
def forward(self, x):
# 1. 计算每个专家的分数
router_logits = self.router(x)
# 2. 选择 top-k 个专家
top_k_scores, top_k_indices = torch.topk(router_logits, k=self.top_k)
top_k_weights = F.softmax(top_k_scores, dim=-1)
# 3. 只计算被选中的专家
output = 0
for i, idx in enumerate(top_k_indices):
expert_output = self.experts[idx](x)
output += top_k_weights[i] * expert_output
return output负载均衡问题与解决
问题:如果所有 token 都选同一个专家怎么办?
坏情况:
Token1 → 专家3
Token2 → 专家3
Token3 → 专家3
...
专家3 过载,其他专家闲置
DeepSeek 的解决方案:辅助损失函数
# 添加负载均衡损失
aux_loss = balance_loss(router_logits) # 鼓励均匀分配
total_loss = task_loss + α * aux_loss核心创新三:GRPO 训练算法
一句话:DeepSeek 自创的 RL 训练算法,比 PPO 省一半显存,是 R1 推理能力涌现的幕后功臣。
GRPO 是什么
GRPO = Group Relative Policy Optimization(组相对策略优化)。
它要解决传统 RLHF 中 PPO 算法的两大痛点:
- 要训一个独立的 Value Model(价值模型) —— 显存占用翻倍
- 要训一个 Reward Model(奖励模型) —— 又一份显存
PPO vs GRPO 对比
传统 PPO(OpenAI / Anthropic 用):
┌──────────┐ ┌────────────┐
│ 主模型 │ ←→ │ Value Model │ ← 独立的价值模型
│ (Actor) │ └────────────┘ (和主模型一样大)
└──────────┘
↑
┌──────────────┐
│ Reward Model │ ← 独立的奖励模型
└──────────────┘
DeepSeek GRPO:
┌──────────┐
│ 主模型 │ ← 只有这一个!
└──────────┘
↑
生成一组(如 16 个)答案
↓
组内相对打分("这组里哪个答案最好")
↓
把组里高于平均分的当作"好答案"训练
类比
- PPO = 考试要请一个独立的”裁判老师”打分(贵)
- GRPO = 一组学生交卷,互相比较——比平均高的算”好”,比平均低的算”差”,不用请外部裁判
优势
| 维度 | PPO | GRPO |
|---|---|---|
| Value Model | 必需 | ❌ 不需要 |
| 显存占用 | 高 | 低 50% |
| 训练稳定性 | 易崩 | 更稳 |
| 适用场景 | 通用 | 数学 / 代码(结果可验证) |
💡 GRPO 特别适合有客观评判标准的任务(数学题对错、代码能否通过测试),所以成了 DeepSeek 训练推理模型 R1 的核心武器。
📖 关于训练算法的全景对比,见 模型训练技术速查。
核心创新四:R1 推理模型与多阶段训练
一句话:DeepSeek-R1 用纯 RL 让模型自己学会”思考链”,是开源社区第一个对标 OpenAI o1 的推理模型,并把”思考过程”完整公开。
R1 的两个版本
R1-Zero:纯 RL,零 SFT 冷启动
Base Model (DeepSeek-V3-Base)
↓
直接用 GRPO 做强化学习(没有任何 SFT!)
↓
DeepSeek-R1-Zero
结果震惊业界:模型在训练过程中自发涌现出长思考链行为——会自己说”等等,让我重新检查一下”、“这个方法不对,换个思路”。
这种自发的反思行为被研究界称为「Aha Moment(顿悟时刻)」——证明了纯 RL 也能让模型学会推理,不一定要靠人类标注的思考过程。
R1:多阶段训练(生产版)
R1-Zero 虽然有推理能力但输出可读性差(中英混杂、格式乱)。生产版 R1 用了 4 阶段训练:
Stage 1:冷启动 SFT
└─ 用少量高质量推理样本初始化(解决可读性)
Stage 2:推理导向 RL(GRPO)
└─ 在数学 / 代码任务上做 RL 训练(强化推理能力)
Stage 3:拒绝采样 + SFT
└─ 让模型自己生成大量样本 → 筛掉错的 → 留下的当训练数据(这就是 RFT!)
Stage 4:全场景 RL
└─ 包括安全 / 偏好对齐的最终 RL 阶段
📖 这里的”拒绝采样 + SFT” 就是 模型训练技术速查 § 6 RFT 的实战应用。
R1 vs OpenAI o1 关键差异
| 维度 | OpenAI o1 | DeepSeek-R1 |
|---|---|---|
| 思考链是否可见 | ❌ 隐藏(用户看不到) | ✅ 完全可见 |
| 是否开源 | ❌ 闭源 | ✅ MIT 协议开源 |
| 训练方法 | 闭源猜测:复杂 RL | 公开发表:GRPO + 多阶段 |
| 推理成本 | 贵 | 便宜 ~30 倍 |
🌍 R1 的发布对开源社区是核弹级影响——第一次有人公开了”如何用 RL 训出推理模型”的完整配方。
核心创新五:R1 蒸馏小模型生态
一句话:DeepSeek 把 R1 的推理能力蒸馏到小模型(基于 Qwen / Llama),让普通人用消费级显卡也能跑推理模型。
蒸馏出的小模型家族
| 模型 | 基座 | 参数量 | 在 MATH-500 上表现 |
|---|---|---|---|
| DeepSeek-R1-Distill-Qwen-1.5B | Qwen-2.5 | 1.5B | 接近 GPT-4o |
| DeepSeek-R1-Distill-Qwen-7B | Qwen-2.5 | 7B | 超过 GPT-4o |
| DeepSeek-R1-Distill-Qwen-32B | Qwen-2.5 | 32B | 接近 o1-mini |
| DeepSeek-R1-Distill-Llama-8B | Llama-3.1 | 8B | 中等 |
| DeepSeek-R1-Distill-Llama-70B | Llama-3.3 | 70B | 接近 o1-mini |
蒸馏方法
Teacher: DeepSeek-R1(671B 巨型模型)
↓
让 R1 生成 80 万条带"完整思考链"的高质量样本
↓
用这 80 万条样本对小模型做 SFT
↓
Student: Distill 系列(1.5B ~ 70B)
📖 这是 模型训练技术速查 § 5 蒸馏 中”链式蒸馏(CoT distillation)“的教科书级实例——老师不仅给答案,还把完整推理链都教给学生。
与”灰色蒸馏”的本质区别
| 维度 | DeepSeek “被怀疑用 GPT 输出” | DeepSeek 自家 R1-Distill |
|---|---|---|
| 老师模型 | 闭源(违反 OpenAI 服务条款) | 自家开源 R1 |
| 合法性 | 灰色 | ✅ 完全合法 |
| 数据是否公开 | 私有 | ✅ 训练方法公开 |
✨ R1-Distill 系列证明了:靠”自家蒸馏”就能让 7B 小模型超过 GPT-4o,再次给开源社区送了一颗核弹。
DeepSeek-V3 具体配置
| 指标 | 数值 |
|---|---|
| 总参数量 | 671B |
| 激活参数量 | 37B(只有 5.5%) |
| 专家数量 | 256 个 |
| 每 token 激活专家数 | 8 个 |
| KV Cache 压缩比 | ~93.3% |
成本对比
推理成本对比(生成 100 万 tokens):
GPT-4: ~$30
Claude: ~$15
DeepSeek-V3: ~$0.5 ← 便宜 60 倍!
DeepSeek-R1: ~$2 ← 比 o1 便宜约 30 倍
训练成本对比:
GPT-4: ~$100M(估计)
DeepSeek-V3: ~$5.5M
DeepSeek-R1: 在 V3 基础上加约 $1M 的 RL 训练
原因:
1. MLA 减少了 KV Cache,单卡能服务更多用户
2. MoE 减少了计算量,每个 token 只用 5% 的参数
3. GRPO 替代 PPO,RL 训练显存减半
4. 多阶段训练 + 蒸馏,把贵的工作只做一次
创新点总结
架构层
| 创新 | 解决的问题 | 效果 |
|---|---|---|
| MLA | KV Cache 显存爆炸 | 压缩 93%+,大幅降低推理成本 |
| MoE | 参数量大=计算量大 | 671B 参数只激活 37B |
| 辅助 Loss | MoE 负载不均衡 | 专家利用更均匀 |
训练层
| 创新 | 解决的问题 | 效果 |
|---|---|---|
| GRPO | PPO 显存高、不稳定 | 训练显存减半,更稳定 |
| R1 多阶段训练 | 纯 SFT 学不会推理 | 用 RL 让模型涌现思考链 |
| R1 蒸馏家族 | 大模型部署贵 | 7B 小模型在数学上超过 GPT-4o |
🌟 这两层创新的组合拳,让 DeepSeek 从”训练成本”和”推理成本”两端同时打破了行业既有秩序。
为什么这些创新重要?
大模型竞争的本质:
性能 = f(参数量, 数据量, 算法)
但还有一个隐藏变量:成本
DeepSeek 的策略:
- 不在参数量上死磕(OpenAI 路线)
- 而是在"效率"上做文章
- 用更少的计算,达到相近的效果
这让开源社区也能玩得起大模型,打破了”有钱才能做 AI”的局面。
相关链接
- Transformer 基础
- 注意力机制
- 模型训练技术速查 — 本文 GRPO / RFT / 蒸馏的概念全景
- Dense 与 MoE 架构对比 — DeepSeek 是 MoE 的工程化代表
- Agent 发展轨迹四阶段 — R1 推理模型如何被装进 Agent
- 各家 LLM 模型特点速查 — DeepSeek V3/V4 在开源生态中的定位、与 Qwen/GLM/Kimi 的对比、V4-Pro “暖机”经验
- 本地部署模型量化选型 — DeepSeek 是 FP8 混合精度训练代表,本地部署精度选型
参考资料
- DeepSeek-V2 技术报告(MLA)
- DeepSeek-V3 技术报告(MoE 架构、训练框架)
- DeepSeek-R1 技术报告(GRPO、多阶段训练、Aha Moment、蒸馏)
- DeepSeek-Math 论文(GRPO 算法首次提出)
创建时间: 2024-12-10 训练层补全: 2026-05-04