
01
引言
本文是深入探讨 DeepSeek-R1 模型架构的第五篇文章。本系列中我们将逐渐揭开DeepSeek系列模型的神秘面纱!
在前面几篇博客中,我分别介绍了混合专家模型(MoE)和多头潜在注意力(MLA)。其中MOE结构通过减少每个Token的激活参数,大幅降低了训练成本,例如 DeepSeek-V3-671B 的激活参数数为 37B。MLA 则将 KV 缓存大小减少了 93.3%(与原始多头注意力相比),并将推理速度提高了数倍。
闲话少说,我们直接开始吧!
02
在深度学习中,前向传播和反向传播是训练神经网络的两个主要步骤。在前向传播阶段,输入数据逐层通过网络,每一层进行变换处理后产生输出。在反向传播阶段,首先通过损失函数(如交叉熵、均方误差等)计算损失值;随后利用反向传播算法,通过微分的链式法则逐层计算损失相对于各层权重的梯度,并将梯度从输出层向输入层反向传递;最后使用优化算法(如Adam)根据计算得到的梯度更新网络权重参数。

在进入下一部分之前,我们应该知道一些基础知识:
-
对于单个输入样本,反向计算发生在前向计算之后。 -
具体而言:在前向传播阶段,数据流向遵循从低层到高层的顺序——即先由第N层处理样本,然后将结果传递至第N+1层;而在反向传播阶段,梯度传递方向正好相反——首先由第N+1层计算梯度,再将梯度回传给第N层。 -
实际训练中通常采用批处理方式:将一批样本同时输入神经网络,完成整批数据的前向传播和反向传播后,统一对网络权重进行一次更新。
03

数据并行与模型并行并非互斥,两者可结合使用以加速大规模模型训练。通过对模型进行分区来应用模型并行后,模型的一个分区可以复制并分布到多个 GPU 上,从而应用数据并行。
04
在深度神经网络训练过程中,为充分挖掘集群算力,业界引入了多种流水线并行技术。其中,PipeDream: Fast and Efficient Pipeline Parallel DNN Training — 2018 (Microsoft, CMU, Stanford) 这篇论文提出了一前向一反向(1F1B)调度策略,通过流水线化实现通信与计算的重叠,从而提升集群GPU利用率。下图中的数字1、2、3、4代表不同小批量训练数据。
Zero Bubble Pipeline Parallelism — 2023 Sea AI 在论文中指出,反向传播计算实际上包含两个组成部分:计算输入x的梯度(B)和计算层参数W的梯度(W)。传统的1F1B策略将B和W合并视为单一计算单元B,但这种做法不必要地增加了顺序依赖的计算步骤。因此,Zero Bubble流水线并行创新地将B和W拆分到不同的流水线阶段,从而有效减少流水线中的空闲空隙。同时,该技术将先前的同步操作替换为更新后验证机制,进一步优化了参数更新阶段的处理效率(如下方示意图底部所示),显著减少了优化器步骤中的空闲时间。

05
Multi-Token Prediction技术代表了大型语言模型(LLMs)训练领域的重大进步,显著提升了学习效率、生成性能和推理速度。通过让模型同时预测多个未来token,该方法增强了模型捕捉上下文依赖和生成连贯文本的能力,尤其在大规模模型和复杂任务中表现突出。
细粒度划分阶段:将每个计算块分为四个组件分别为注意力模块(Attention)、全对全分发模块(处理设备间通信)、多层感知机(MLP)、全对全聚合模块(跨设备输出合并)。对于反向传播块,注意力模块和MLP模块会像Zero Bubble一样进一步拆分为两部分:输入反向传播(B)和权重反向传播(W)。
双向流水线调度:通过同时从流水线两端输入小批次数据,使大部分通信操作能够完全重叠(如下图所示的两个黑色箭头)。为实现这一机制,DualPipe需要维护两份模型参数副本。举例说明:当使用8台设备运行8层模型时:在Zero Bubble调度中,每台设备持有对应单层参数(如设备0持有第0层);而在DualPipe调度中,为支持双向流水线:设备0需同时持有第0层和第7层参数,设备7需同时持有第7层和第0层参数;这种设计通过参数镜像和双向数据流动,显著提升了硬件利用率与训练效率。

为确保DualPipe具备足够的计算性能,DeepSeek还专门定制了高效的跨节点全通信内核(包括调度和组合模块),以节省专用于通信的流式多处理器(SM)数量。更多技术细节请参阅DeepSeek-V3技术报告。
06
创新的DualPipe调度机制,加上卓越的基础设施层工程优化,使得DeepSeek能够充分利用集群的计算资源(GPU)。从这部分设计中,可以看出该团队的技术智慧与卓越工程能力。这种精益求精的工程精神,可能部分源于其相较于OpenAI、Meta、Google等大型语言模型研发机构的资源有限性,从而促使他们在系统优化方面进行更深层次的创新。
希望通过本文可以帮助大家了解DualPipe调度机制!
最后由于边学习边总结,如若本文有错误,欢迎大家留言指正!
欢迎大家持续关注!
参考:
DeepSeekMoE: https://arxiv.org/pdf/2401.06066
DeepSeekV2: https://arxiv.org/abs/2405.04434
DeepSeekV3: https://arxiv.org/abs/2412.19437
DeepSeekR1: https://arxiv.org/abs/2501.12948
Meata MTP: https://arxiv.org/pdf/2404.19737
点击上方小卡片关注我
添加个人微信,进专属粉丝群!


