DeepSeekV3报告及代码解读
DONGYONGFEI786
20250210
目录
1. 架构创新
1.1 DeepSeekMoE with auxiliary-loss-free strategy
1.2 Multi-head Latent Attention (MLA)
1.3 Multi-Token Prediction (MTP)
2. 训练效率优化
2.1 DualPipe流水线并行算法
2.2 FP8混合精度训练框架
3. 数据与训练优化
3.1多阶段长上下文扩展(YaRN)
4. 其它
1. 架构创新
1.1 DeepSeekMoE with auxiliary-loss-free strategy
- 模块介绍:
DeepSeekMoE 中的 Auxiliary-Loss-Free Strategy(无辅助损失策略) 是 DeepSeek-V3 的核心创新之一,旨在解决混合专家模型(MoE)中专家负载不均衡的难题。这一策略通过动态调整路由机制,取代传统依赖辅助损失函数的方法,实现了更高效、稳定的负载均衡,同时避免了辅助损失对模型性能的负面影响。以下从技术原理、实现机制及优势三方面进行解读:
-
- 模块特点:
- DeepSeek模型的MoE是在FFN模块中;
- DeepSeekMoE有Shared Expert和Routed Expert组成,Shared Expert在每次前向后向计算都会路由到,保证MoE模块的基本效果(更稳定,有保底的expert)
- 结合代码分析
- 模块特点:
1.2 Multi-head Latent Attention (MLA)
- 模块介绍:
MLA模块本质上就是MHA,只是将Wq、Wk和Wv矩阵的维度减少到k维(k<d_model),最后再使用Wo将k维升为d_model维,本质上还是MHA的范畴,但是实际可能会有一些更复杂的骚操作(如上图,RoPE)
- 代码
- 结合代码可以更好理解上面的流程图(代码的每一步都在结构图中有所体现)
1.3 Multi-Token Prediction (MTP)
- 模型结构
-
DeepSeekV3使用多个顺序模块来预测多个未来的token,每个模块包括:
-
- 共享的嵌入层(Embedding Layer)
- 共享的输出头(OutHead)
- 一个Transformer块(TRM)
- 一个映射矩阵(M)
- 预测过程
- 对于输入的第i个token,在每个预测深度k,模型将前一个深度的表示与当前token的嵌入进行拼接,形成新的输入表示。
- 该输入表示被送入到Tranformer块以生成当前深度的输出表示。
- 最后,输出head计算下一个token的概率分布。
- 训练目标
- 对于每个预测深度,计算交叉熵损失,并计算所有深度的损失进行平均,得到总体的MTP损失;
- 该损失函数是作为DeepSeekV3的额外训练目标,旨在提高模型的预测能力(让模型提前规划后面k个token的生成路径)
- 借鉴论文:Better & Faster Large Language Models via Multi-token Prediction(MTP)
论文声称使用4-token targets比next-token-prediction要快3x
知乎:https://zhuanlan.zhihu.com/p/15037286337
- 解读文章:
-
- DeepSeekV3的推理代码确实是没有实现MTP
- DeepSeek-V3 多token预测解读_deepseek预测-CSDN博客
训练效率优化
2.1 DualPipe流水线并行算法
- TODO
2.2 FP8混合精度训练框架
- TODO
3. 数据与训练优化
3.1多阶段长上下文扩展(YaRN)
DeepSeek-R1 从其基础模型 DeepSeek-V3-Base继承了 128K的上下文长度。最初,DeepSeek-V3 采用 4K 上下文长度进行预训练。然后,利用 YaRN 技术,通过两阶段的上下文长度扩展,先将其增加到 32K,再增加到 128K。
- 模块介绍
YaRN(Yet another RoPE extensioN method)是一种旨在有效扩展使用旋转位置嵌入(RoPE)的大型语言模型(LLM)上下文窗口的技术。RoPE 使用旋转矩阵编码位置信息,而 YaRN 则修改了这些旋转频率的缩放方式。它不是简单地外推频率(这通常会导致性能下降),而是平滑地插值和调整这些频率,从而更好地泛化到更长的语境中。在不进行大规模重新训练的情况下扩展模型上下文长度的计算效率很高,而且非常实用。
Paper:YaRN: Efficient Context Window Extension of Large Language Models
Arxiv:
https://arxiv.org/pdf/2309.00071
- 模型原理(RoPE基础:这里略过)
YaRN的目标是通过更高效的方式扩展上下文窗口,同时避免传统方法中的高计算成本和星能下降低,YaRN主要涉及的关键技术:
- NTK感知插值(NTK-aware Interpolation)
- TODO
- 分段插值(NTK-by-parts Interpolation)
- TODO
- 动态缩放(Dynamic Scaling)
- TODO
- 注意力温度调整
- TODO
-
3.2 知识蒸馏与自奖励机制
- 模型蒸馏
模型蒸馏/知识蒸馏(Knowledege Distillation)是一种将大型复杂模型(Teacher Model)的知识迁移到小型高效模型(Student Model)的技术。其核心目标是在保持模型性能的同时,显著降低模型的计算复杂度和储存需求,使其更适合在资源受限的环境中部署。
4.其它
- TODO