4 V3的训练流程
DeepSeek的R1是以V3为基础构建的(冷启动)。如果想深入理解R1的训练,就要先看V3的训练流程。V3的训练包括预训练(含基础预训练和上下文长度扩展)、后训练三个阶段。
在预训练阶段后,对DeepSeek-V3 进行了两次上下文长度扩展,第一阶段将最大上下文长度扩展到32K,第二阶段进一步扩展到128K。然后在 DeepSeek-V3的基础模型上进行包括有监督精调 (SFT) 和强化学习(RL)在内的后训练,使其更贴近人类的偏好。

DeepSeek-V3训练流程(来源:中存算)
4.1 V3的基础预训练
DeepSeek-V3 总共包含 671B参数,其中每个Token激活了37B。在路由专家中,每个Token激活8个专家,并确保每个Token最多发送到4个节点,以减小通信资源的浪费。多Token预测(MTP)深度设置为1,即除了下一个 Token之外,每个Token还将预测一个额外的Token。
在14.8T预训练数据集结构上,V3采用了以下策略:
1)提高数学和编程样本的比例来优化预训练语料库,以提升推理能力。
2)基于中国互联网可用的语料库整合了更多的中文数据。(这也是V3能玩中文梗的关键)
3)将多语言覆盖范围扩展到英文和中文之外。
4)优化数据处理/过滤算法,在保持语料库多样性的同时最大限度减少信息冗余。
过滤掉有争议的内容,减少特定区域文化引入的数据偏差
5)通过文档打包,减少在短文本块的训练浪费,同时在训练过程中没有使用交叉样本注意力屏蔽。
高质量的数据结构与数据投喂顺序,其实是大模型性能提升的关键。可惜DeepSeek并没有给出预训练数据更具体的构建方法。

Fill-in-Middle方法(来源:互联网)
V3的训练采用前缀-后缀-中间(PSM)框架来构建FIM训练数据。Fill-in-Middle(FIM,中间补全)是一种针对代码补全能力的预训练方式,模型在训练过程中学习使用上下文的语境来预测文段中间缺失的部分。FIM策略不会损害下一Token预测(NTP)能力,同时可使模型能够根据上下文线索准确预测中间文本。
V3使用 AdamW 优化器来预训练,同时避免过度拟合。
4.2 V3长文扩展训练
在基础预训练后,V3使用YARN技术将上下文长度,按照两阶段训练扩展到128K,每个阶段包括1000步。在第一阶段,使用32K的序列长度和1920的批量来执行1000步训练。在第二阶段,采用128K的序列长度和480个序列的批量大小执行1000步训练。
4.3 V3的后训练/精调
4.3.1 V3的有监督精调(SFT)
V3的有监督精调做了以下这些事:
1)梳理指令精调(instruction-tuning)数据集。该数据集包括1.5M个实例,跨多个域,每个域都量身定制的不同的数据合成方法。
2)利用DeepSeek-R1 模型合成与推理(Reasoning)相关的SFT数据集。这里很有意思,基于R1来SFT V3,再基于V3冷启动R1。感觉上这里有关键的训练信息没有透露,DeepSeek应该还是留了一手。
3)为特定领域(例如代码、数学或一般推理)构建量身定制的专家模型数据合成器。使用复合有监督精调和强化学习训练该专家模型。训练过程中为每个实例生成两种不同类型的 SFT样本:第一种将问题与其原始响应耦合,格式为<problem, original response>,而第二种将系统提示与问题和R1响应合并,格式为<system prompt, problem, R1 response>。
4)建立高质量提示(Prompt)体系,引导模型形成自身的反馈与验证机制。同时整合了来自R1合成的数据,通过强化学习加强这一能力。
5)对于非推理数据(例如创意写作、角色扮演和简单的问答),利用 DeepSeek-V2.5生成数据,并通过人工注释验证数据的准确性。
4.3.2 V3的强化学习
V3的强化学习包括奖励模型与组相对策略优化(GRPO)。
与GPT-4类似,V3中奖励模型包括:
1)基于规则的奖励模型
对于可以使用特定规则验证的问题,采用基于规则的奖励模型来提供训练反馈。例如,对于 LeetCode 问题,可以利用编译器根据测试用例生成反馈。基于规则的模型验证,可以确保更高的生成可靠性。
2)基于模型的奖励模型
对于不具有收敛性的问题,依靠模型判断来确进行强化学习。V3训练中构建了特殊的偏好数据,该数据同时包括提供最终奖励结果和形成奖励的思维链,以降低特定任务中的奖励破解攻击风险。
大模型的训练通常用无监督或有监督进行预训练,然后通过有监督精调(SFT)进一步学习。然而SFT有时难以将人类的偏好显式地整合进去,这时就需要强化学习来进行精调。在以往的大模型训练中一般使用PPO(Proximal Policy Optimization)来形成梯度策略。PPO的代价在于需要维护较大的价值网络(也是一个神经网络),需要占用较大的显存与计算资源。

GRPO与PPO对比(来源:DeepSeek)
V3中则采用了DeepSeek提出的GRPO(Group Relative Policy Optimization)策略,只需要在一个分组内进行多个采样输出的比较,再根据比较结果选择较优的策略。GRPO中不再需要一个显式的价值网络,从而降低了显存占用并提高了训练速度。
GRPO的计算流程包括:
1)采样一组输出并计算每个输出的奖励。
2)对组内奖励进行归一化处理。
3)使用归一化后的奖励计算优势函数。
4)通过最大化目标函数更新策略模型。
5)迭代训练,逐步优化策略模型。