o1
o1 模型在训练过程中混合了多种奖励函数的设计方法,并且尝试从结果监督转向过程监督,在中间过程进行打分
使用的搜索策略:基于树的搜索和基于顺序修改的搜索
R1
R1-Zero 是从基础模型开始,完全由强化学习驱动,不经过之前提到的 warmup 阶段。这个模型没有任何初始的人工调节,完全靠强化学习来进行优化
R1 的训练分为四个关键阶段:冷启动阶段、推理导向的强化学习阶段、拒绝抽样与监督微调阶段,以及全任务强化学习阶段。在冷启动阶段,通过收集少量合成数据进行微调,确保训练初期的稳定性。第二阶段以 DeepSeek-V3 为基础,进行强化学习训练,并引入语言一致性的奖励机制。第三阶段引入其他领域的监督微调 (SFT,Supervised Fine-Tun-ing)数据,增强模型在写作、角色扮演等任务上的通用能力。最后阶段则通过规则奖励和偏好奖励进行全面优化
R1 虽然没有显式强调 MCTS 搜索,但最终报告显示,通过 majority vote,能够大幅提高推理效果,这也说明搜索在推理过程中依然具有提升模型能力的作用
R1 在写作任务上有明显的提升。这可能意味着,强推理技术可以帮助模型在创作任务中发挥更大的潜力
DeepSeek 是全球首个通过纯强化学习技术,成功复现了 o1 的能力;而在许多 o1 的复现工作中,业界有很多复现是基于 SFT 或者蒸馏 o1 的路线
v3
DeepSeek-V3继续沿用V2中的MLA和MoE结构,其中前者是为了降低kv cache/token开销,后者是为了降低flops/param开销。
1)MLA技术 简单来说就是通过类似LoRA的方式对kv进行降维压缩,同时将升维操作转移到Q和O上,避免反复解压缩。遗憾的是,MLA并没有收获太多关注。一个可能的原因是,它跟MQA相比似乎没有表现出什么优势,反而增加了系统复杂度。
2)MoE结构 不同于Mixtral中大专家的设计(将稠密模型中的MLP结构复制8份),DeepSeek-V3采用大量“小专家”的设计,能够显著提升模型的稀疏程度。相比V2的236B总参数(21B激活参数),V3更加激进地引入256个专家,总参数量达到惊人的671B,而激活参数量仅仅增加到37B。
DeepSeek 创新性地提出了“auxiliary loss free”负载均衡策略,通过引入 Expert Bias 动态调节负载分配。当发现某个专家负载过重时,系统会降低其 bias 值;当专家负载不足时,则增加其 bias 值
CUDA 作为一个相对高层的接口,为用户提供编程接口,而 PTX 则隐藏在驱动背后。DeepSeek 的突破性创新在于它直接深入到 PTX 层面,编写和调用 PTX 代码,更精确地控制底层硬件,实现更高效的计算
FP8伴随着数值溢出的风险,而MoE的训练又非常不稳定,这导致实际大模型训练中BF16仍旧是主流选择。然而,DeepSeek 采用了混合精度训练策略,在核心计算层使用 FP8 精度格式。为了解决低精度可能带来的收敛问题,团队设计了细粒度的量化方案,将 Activation 按 1*128 Tile 分组,Weight 按 128*128 block 分组,并通过提高累积精度来保证训练的稳定性