5 后训练

本文为论文《DeepSeek-V3:强大高效的开源混合专家大模型》「中文全文翻译」板块的对应章节,与「论文原文」板块同一章节一一对应,层级保持一致。

5.1 监督微调

我们策划了涵盖多个领域的 150 万条指令微调数据实例,每个领域采用针对其特定需求定制的不同数据创建方法。

推理数据。

对于推理相关数据集,包括数学、代码竞赛问题和逻辑谜题等领域,我们通过利用内部的 DeepSeek-R1 模型来生成数据。具体而言,虽然 R1 生成的数据展现出较强的准确性,但它存在过度思考、格式不佳和过长等问题。我们的目标是平衡 R1 生成推理数据的高准确性与常规格式推理数据的清晰性和简洁性。

为了建立我们的方法,我们首先使用监督微调(SFT)和强化学习(RL)相结合的训练流水线,针对特定领域(如代码、数学或通用推理)开发一个专家模型。该专家模型作为最终模型的数据生成器。训练过程涉及为每个实例生成两种不同类型的 SFT 样本:第一种将问题与原始回复以 <问题, 原始回复> 的格式配对,第二种则将系统提示与问题及 R1 回复以 <系统提示, 问题, R1 回复> 的格式结合。

系统提示经过精心设计,包含引导模型产生富含反思与验证机制的回复的指令。在 RL 阶段,模型利用高温采样来生成融合了 R1 生成数据和原始数据两种模式的回复,即使在缺少显式系统提示的情况下也是如此。经过数百个 RL 步骤后,中间的 RL 模型学会了融入 R1 模式,从而策略性地提升整体性能。

完成 RL 训练阶段后,我们实施拒绝采样来为最终模型筛选高质量的 SFT 数据,其中专家模型被用作数据生成来源。这种方法确保最终的训练数据既保留了 DeepSeek-R1 的优势,又能生成简洁有效的回复。

非推理数据。

对于非推理数据,如创意写作、角色扮演和简单问答,我们利用 DeepSeek-V2.5 生成回复,并聘请人工标注者来验证数据的准确性和正确性。

SFT 设置。

我们使用 SFT 数据集对 DeepSeek-V3-Base 进行两个轮次的微调,采用余弦衰减学习率调度,从 $5\times 10^{-6}$ 开始并逐渐降低到 $1\times 10^{-6}$。在训练过程中,每个单独的序列由多个样本打包而成。然而,我们采用了样本掩码策略,以确保这些示例保持隔离且相互不可见。

5.2 强化学习
5.2.1 奖励模型

我们在 RL 过程中采用了基于规则的奖励模型(RM)和基于模型的 RM。

基于规则的 RM。

对于可以使用特定规则验证的问题,我们采用基于规则的奖励系统来确定反馈。例如,某些数学问题具有确定性结果,我们要求模型在指定格式(例如方框内)提供最终答案,从而使我们能够通过规则验证其正确性。类似地,对于 LeetCode 问题,我们可以利用编译器基于测试用例生成反馈。通过尽可能利用基于规则的验证,我们确保了更高水平的可靠性,因为这种方法能够抵御操纵或利用。

基于模型的 RM。

对于具有自由形式真实答案的问题,我们依赖奖励模型来确定回复是否与预期真实答案匹配。相反,对于没有确定性真实答案的问题,例如涉及创意写作的问题,奖励模型负责以问题和相应答案为输入来提供反馈。奖励模型由 DeepSeek-V3 SFT 检查点训练而来。为了提升其可靠性,我们构建了偏好数据,不仅提供最终奖励,还包含导致该奖励的思维链。这种方法有助于缓解特定任务中奖励黑客攻击(reward hacking)的风险。

5.2.2 组相对策略优化

与 DeepSeek-V2(DeepSeek-AI, 2024c)类似,我们采用组相对策略优化(GRPO)(Shao et al., 2024),它舍弃了通常与策略模型大小相同的评论家(critic)模型,而是从组分数中估计基线。具体而言,对于每个问题 $q$,GRPO 从旧策略模型 $\pi_{\theta_{old}}$ 中采样一组输出 ${o_{1},o_{2},\cdots,o_{G}}$,然后通过最大化以下目标来优化策略模型 $\pi_{\theta}$

| | $\begin{split}\mathcal{J}{GRPO}(\theta)&=\mathbb{E}{[q\sim P(Q),{o{i}}{i=1}^{G}\sim\pi{\theta_{old}}(O|q)]}\ &\frac{1}{G}\sum_{i=1}^{G}\left(\min\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)}A_{i},\text{clip}\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)},1-\varepsilon,1+\varepsilon\right)A_{i}\right)-\beta\mathbb{D}{KL}\left(\pi{\theta}||\pi_{ref}\right)\right),\end{split}$ | | (26) |

| | $\mathbb{D}{KL}\left(\pi{\theta}||\pi_{ref}\right)=\frac{\pi_{ref}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-\log\frac{\pi_{ref}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-1,$ | | (27) |

其中 $\varepsilon$ 和 $\beta$ 是超参数; $\pi_{ref}$ 是参考模型; $A_{i}$ 是优势,从每个组内输出对应的奖励 ${r_{1},r_{2},\ldots,r_{G}}$ 中导出:

| | $A_{i}=\frac{r_{i}-{\operatorname{mean}({r_{1},r_{2},\cdots,r_{G}})}}{{\operatorname{std}({r_{1},r_{2},\cdots,r_{G}})}}.$ | | (28) |

我们在 RL 过程中融入了来自编码、数学、写作、角色扮演和问答等多样化领域的提示。这种方法不仅使模型更贴近人类偏好,还提升了在基准上的性能,尤其是在可用的 SFT 数据有限的场景中。

5.3 评估
5.3.1 评估设置

评估基准。

除了用于基础模型测试的基准外,我们还在 IFEval(Zhou et al., 2023)、FRAMES(Krishna et al., 2024)、LongBench v2(Bai et al., 2024)、GPQA(Rein et al., 2023)、SimpleQA(OpenAI, 2024c)、C-SimpleQA(He et al., 2024)、SWE-Bench Verified(OpenAI, 2024d)、Aider 11 1

https://aider.chat、LiveCodeBench(Jain et al., 2024)(2024 年 8 月至 2024 年 11 月的问题)、Codeforces 22 2

https://codeforces.com、中国高中数学奥林匹克竞赛(CNMO 2024)33 3

https://www.cms.org.cn/Home/comp/comp/cid/12.html,以及美国数学邀请赛 2024(AIME 2024)(MAA, 2024)上进一步评估指令模型。

对比基线。

我们对我们的对话模型与几个强基线进行了全面评估,包括 DeepSeek-V2-0506、DeepSeek-V2.5-0905、Qwen2.5 72B Instruct、LLaMA-3.1 405B Instruct、Claude-Sonnet-3.5-1022 和 GPT-4o-0513。对于 DeepSeek-V2 模型系列,我们选择了最具代表性的变体进行比较。对于闭源模型,评估通过其各自的 API 进行。

详细的评估配置。

对于包括 MMLU、DROP、GPQA 和 SimpleQA 在内的标准基准,我们采用 simple-evals 框架44 4

https://github.com/openai/simple-evals 的评估提示。我们对 MMLU-Redux 采用 Zero-Eval 提示格式(Lin, 2024),在零样本设置下评估。对于其他数据集,我们遵循数据集创建者提供的原始评估协议和默认提示。对于代码和数学基准,HumanEval-Mul 数据集总共包含 8 种主流编程语言(Python、Java、Cpp、C#、JavaScript、TypeScript、PHP 和 Bash)。我们使用 CoT 和非 CoT 方法来评估模型在 LiveCodeBench 上的性能,其中数据收集自 2024 年 8 月至 2024 年 11 月。Codeforces 数据集使用竞争者百分比来衡量。SWE-Bench verified 使用 agentless 框架(Xia et al., 2024)进行评估。我们使用“diff”格式评估 Aider 相关的基准。对于数学评估,AIME 和 CNMO 2024 以 0.7 的温度进行评估,结果在 16 次运行上取平均值,而 MATH-500 采用贪心解码。我们允许所有模型在每个基准上最多输出 8192 个词元。

表 6:DeepSeek-V3 与其他代表性对话模型之间的比较。所有模型都在限制输出长度为 8K 的配置下评估。包含少于 1000 个样本的基准使用不同的温度设置多次测试,以得出稳健的最终结果。DeepSeek-V3 是性能最佳的开源模型,并且对前沿闭源模型也展现出有竞争力的性能。

5.3.2 标准评估

表 6 展示了评估结果,表明 DeepSeek-V3 是性能最佳的开源模型。此外,它与 GPT-4o 和 Claude-3.5-Sonnet 等前沿闭源模型相比具有竞争力。

英语基准。

MMLU 是一个广受认可的基准,旨在评估大语言模型在不同知识领域和任务上的性能。DeepSeek-V3 展现出有竞争力的性能,与 LLaMA-3.1-405B、GPT-4o 和 Claude-Sonnet 3.5 等顶级模型并驾齐驱,同时显著优于 Qwen2.5 72B。此外,DeepSeek-V3 在更具挑战性的教育知识基准 MMLU-Pro 上表现出色,紧随 Claude-Sonnet 3.5 之后。在 MMLU 的修正版本 MMLU-Redux(标签已校正)上,DeepSeek-V3 超越了同类模型。此外,在博士级别的评估测试床 GPQA-Diamond 上,DeepSeek-V3 取得了显著成果,仅落后于 Claude 3.5 Sonnet,并以显著优势超越所有其他竞争者。

在 DROP、LongBench v2 和 FRAMES 等长上下文理解基准上,DeepSeek-V3 继续展现其作为顶级模型的地位。它在 3-shot 设置下的 DROP 上取得了令人印象深刻的 91.6 F1 分数,超越了该类别中的所有其他模型。在 FRAMES(一项需要基于 100k 词元上下文进行问答的基准)上,DeepSeek-V3 紧随 GPT-4o 之后,同时以显著优势超越所有其他模型。这展示了 DeepSeek-V3 在处理极长上下文任务方面的强大能力。DeepSeek-V3 的长上下文能力进一步得到了其在 LongBench v2(一个在 DeepSeek V3 发布前几周才发布的数据集)上同类最佳的表现的验证。在事实性知识基准 SimpleQA 上,DeepSeek-V3 落后于 GPT-4o 和 Claude-Sonnet,这主要是由于其设计重点和资源分配。DeepSeek-V3 分配了更多的训练词元来学习中文知识,从而使其在 C-SimpleQA 上取得了卓越的性能。在指令遵循基准上,DeepSeek-V3 显著优于其前身 DeepSeek-V2 系列,突显了其理解和遵守用户定义格式约束的能力的提升。

代码与数学基准。

编码对于 LLM 而言是一项具有挑战性且实用的任务,涵盖像 SWE-Bench-Verified 和 Aider 这样以工程为重点的任务,以及像 HumanEval 和 LiveCodeBench 这样的算法任务。在工程任务中,DeepSeek-V3 落后于 Claude-Sonnet-3.5-1022,但显著优于开源模型。开源的 DeepSeek-V3 有望推动编码相关工程任务的进步。通过提供对其强大能力的访问,DeepSeek-V3 可以驱动软件工程和算法开发等领域的创新和进步,使开发者和研究人员能够突破开源模型在编码任务中所能达到的边界。在算法任务中,DeepSeek-V3 展现出卓越的性能,在 HumanEval-Mul 和 LiveCodeBench 等基准上超越所有基线。这一成功可归因于其先进的知识蒸馏技术,该技术有效增强了其在算法聚焦任务中的代码生成和问题解决能力。

在数学基准上,DeepSeek-V3 展现出卓越的性能,显著超越基线,并为非 o1 类模型树立了新的最先进水平。具体而言,在 AIME、MATH-500 和 CNMO 2024 上,DeepSeek-V3 比第二名模型 Qwen2.5 72B 在绝对分数上高出约 10%,这对于如此具有挑战性的基准而言是一个相当大的差距。这一卓越的能力突显了来自 DeepSeek-R1 的蒸馏技术的有效性,该技术已被证明对非 o1 类模型极为有益。

中文基准。

Qwen 和 DeepSeek 是两个对中文和英文都有强大支持的代表性模型系列。在事实性基准中文 SimpleQA 上,尽管 Qwen2.5 在更大的、包含 18T 词元的语料上训练(比 DeepSeek-V3 预训练的 14.8T 词元多 20%),DeepSeek-V3 仍以 16.4 分的优势超越 Qwen2.5-72B。

在中文教育知识评估的代表性基准 C-Eval 和 CLUEWSC(中文 Winograd 模式挑战赛)上,DeepSeek-V3 和 Qwen2.5-72B 表现出相似的水平,表明两个模型都针对具有挑战性的中文语言推理和教育任务进行了良好优化。

表 7:英语开放式对话评估。对于 AlpacaEval 2.0,我们使用长度控制的胜率作为指标。

5.3.3 开放式评估

除了标准基准外,我们还使用 LLM 作为评判者,在开放式生成任务上评估我们的模型,结果如表 7 所示。具体而言,我们遵循 AlpacaEval 2.0(Dubois et al., 2024)和 Arena-Hard(Li et al., 2024a)的原始配置,它们利用 GPT-4-Turbo-1106 作为评判者进行成对比较。在 Arena-Hard 上,DeepSeek-V3 针对基线 GPT-4-0314 取得了超过 86% 的令人印象深刻的胜率,与 Claude-Sonnet-3.5-1022 等顶级模型表现相当。这突显了 DeepSeek-V3 的强大能力,尤其是在处理包括编码和调试任务在内的复杂提示时。此外,DeepSeek-V3 作为第一个在 Arena-Hard 基准上超越 85% 的开源模型,取得了突破性的里程碑。这一成就显著缩小了开源与闭源模型之间的性能差距,为开源模型在具有挑战性的领域所能取得的成果树立了新的标准。

类似地,DeepSeek-V3 在 AlpacaEval 2.0 上展现出卓越的性能,超越了闭源和开源模型。这展示了其在写作任务和简单问答场景处理方面的出色能力。值得注意的是,它以 20% 的显著幅度超越了 DeepSeek-V2.5-0905,突显了其在处理简单任务方面的实质性改进,并展示了其进步的有效性。

5.3.4 作为生成式奖励模型的 DeepSeek-V3

我们将 DeepSeek-V3 的评判能力与最先进模型 GPT-4o 和 Claude-3.5 进行比较。表 8 展示了这些模型在 RewardBench(Lambert et al., 2024)上的性能。DeepSeek-V3 取得了与最佳版本的 GPT-4o-0806 和 Claude-3.5-Sonnet-1022 相当的性能,同时超越了其他版本。此外,DeepSeek-V3 的评判能力也可以通过投票技术得到增强。因此,我们采用 DeepSeek-V3 配合投票,为开放式问题提供自我反馈,从而提高对齐过程的有效性和鲁棒性。

表 8:GPT-4o、Claude-3.5-sonnet 和 DeepSeek-V3 在 RewardBench 上的性能。

5.4 讨论
5.4.1 从 DeepSeek-R1 蒸馏

我们基于 DeepSeek-V2.5 对来自 DeepSeek-R1 的蒸馏贡献进行了消融。基线在短 CoT 数据上训练,而其竞争对手使用上述专家检查点生成的数据。

表 9 展示了蒸馏数据的有效性,在 LiveCodeBench 和 MATH-500 基准上都显示出显著的改进。我们的实验揭示了一个有趣的权衡:蒸馏带来了更好的性能,但也大幅增加了平均回复长度。为了在模型准确性和计算效率之间保持平衡,我们为 DeepSeek-V3 在蒸馏中仔细选择了最优设置。

我们的研究表明,从推理模型中进行知识蒸馏为后训练优化提供了一个有前景的方向。虽然我们当前的工作专注于从数学和编码领域蒸馏数据,但这种方法在跨各种任务领域的更广泛应用方面显示出潜力。这些特定领域所展示的有效性表明,长-CoT 蒸馏对于增强需要复杂推理的其他认知任务中的模型性能可能是有价值的。跨不同领域进一步探索这种方法仍然是未来研究的一个重要方向。

表 9:来自 DeepSeek-R1 的蒸馏的贡献。LiveCodeBench 和 MATH-500 的评估设置与表 6 相同。

5.4.2 自奖励

奖励在 RL 中起着关键作用,引导着优化过程。在通过外部工具验证较为直接的领域,例如某些编码或数学场景,RL 展现出卓越的功效。然而,在更一般的场景中,通过硬编码构建反馈机制是不切实际的。在 DeepSeek-V3 的开发过程中,对于这些更广泛的场景,我们采用宪法式 AI 方法(Bai et al., 2022),利用 DeepSeek-V3 自身的投票评估结果作为反馈来源。这种方法产生了显著的校准效果,显著提升了 DeepSeek-V3 在主观评估中的性能。通过整合额外的宪法式输入,DeepSeek-V3 可以朝着宪法式方向进行优化。我们相信,这种将补充信息与 LLM 作为反馈来源相结合的范式具有至关重要的意义。LLM 作为一种通用的处理器,能够将来自不同场景的非结构化信息转化为奖励,最终促进 LLM 的自我改进。除了自奖励之外,我们也致力于发掘其他通用且可扩展的奖励方法,以持续提升模型在一般场景中的能力。

5.4.3 多词元预测评估

DeepSeek-V3 不是仅预测下一个单一词元,而是通过 MTP 技术预测接下来的 2 个词元。结合推测解码(Leviathan et al., 2023; Xia et al., 2023)的框架,它可以显著加速模型的解码速度。一个关于额外预测词元接受率的自然问题随之产生。根据我们的评估,第二个词元预测的接受率在各种生成主题中介于 85% 和 90% 之间,展现出一致的可靠性。这种高接受率使 DeepSeek-V3 能够实现显著改进的解码速度,提供 1.8 倍的 TPS(每秒词元数)。