Skip to content

后训练:OPD 与 GRM

从"知识渊博"到"真正好用"——DeepSeek V4 的后训练如何让大模型能力不互相干扰 | 预计阅读时间:25 分钟


一、引言

预训练出来的 Base 模型就像一个读遍了天下典籍但从未开口说过话的人。它"知道"很多知识——通晓数学定理、熟悉编程语法、了解世界历史——但你要它回答一个问题,它的输出可能是一段不知所云的文本碎片。

原因很简单:预训练的目标是"下一个 token 预测",不是"回答问题"。模型在预训练阶段学习的只是 token 之间的统计依赖关系,而不是与人类交互的行为策略。

后训练(Post-Training)就是把一个"知识渊博但不会用"的 Base 模型,变成"真正好用"的产品模型的过程。

DeepSeek V4 的后训练方法论相比前代发生了根本性变化。V3.2 使用的是 mixed RL(混合强化学习)——把所有领域的数据和奖励信号混在一起训练一个统一模型。听起来直观,但实际操作中,数学推理和工具调用需要的"行为策略"完全不同,同一个奖励配方很难同时服务所有目标。

V4 做了一个大胆的替换:彻底放弃 mixed RL,改用 OPD(On-Policy Distillation,在线策略蒸馏)作为多专家融合的主线。

这不仅是方法论的切换,更代表了一种思维范式的转变——与其让所有能力在同一个训练过程中互相干扰,不如先把每种能力练到极致,再通过蒸馏的方式无损整合。

与此同时,V4 还在奖励模型上做了突破:用生成式奖励模型(GRM)替代了传统的标量奖励模型。对于难以用规则验证的主观任务(创意写作、代码可读性评估等),GRM 能给出带解释的评分而非一个冷冰冰的分数。

本文将按"整体流程 → OPD 技术细节 → 全词表蒸馏 → GRM → Interleaved Thinking → 实测数据"这条链路,逐层拆解 V4 的后训练体系。


二、后训练流程概述

2.1 从 Base 到产品:两条路径的对比

在深入了解 OPD 之前,先看清 V4 后训练的整体架构:

V3.2 后训练流程(传统路线):
Base Model → SFT(全领域混合)→ Mixed RL(混合 GRPO)→ 最终模型

V4 后训练流程(OPD 路线):
Base Model → 按领域分别训练专家(SFT + GRPO × N 个专家)
            → Multi-Teacher OPD 蒸馏整合 → 最终模型

两套流程的差异在逻辑上很清晰:

维度V3.2 (Mixed RL)V4 (OPD)
训练策略统一训练一个模型先分别训练专家,再蒸馏合并
能力冲突数学和 Agent 的奖励信号互相干扰专家各自训练,无干扰
扩展性新增能力需要重新混合训练新增能力只需新增专家
训练成本一次训练,成本较低训练 N 个专家 + 一次蒸馏,成本更高
上限混合训练拉低了单领域上限每个专家达到领域极值

V4 的选择是:用更高的训练成本换取更高的能力上限和更好的可扩展性。

2.2 OPD 的整体管线融合了 DeepSeek 五年积累

OPD 的完整形态在 V4 中并非一蹴而就。从 V3(2024 年底)到 V3.1(2025 年中)再到 V3.2(2025 年底),DeepSeek 的后训练经历了从"粗放混合"到"精细分工"的逐步演进:

版本后训练策略专家数量整合方式核心特点
V3SFT + RLHF0统一训练简单的两阶段管线
V3.1SFT + GRPO (领域分离)3 个统一训练首次引入 GRPO,分离领域数据
V3.2多专家 SFT + Mixed RL5 个混合 GRPO专家蒸馏 + 统一强化学习
V4多专家 SFT + OPD10+ 个Multi-Teacher OPDOPD 完全替代 Mixed RL

V3 到 V3.1 是"分离"的开始,V3.1 到 V3.2 是"专家化的尝试",V3.2 到 V4 是"整合范式的彻底转换"。 每一步的进步都在解决前一步遗留的能力冲突问题。

2.3 整体管线

V4 的后训练管线分为两个主要阶段:

第一阶段:Specialist Training(专家训练)

针对数学、代码、Agent、指令跟随等关键领域,在 Base Model 的基础上分别训练领域专家模型。每个专家都走完整的 SFT + RL 流程:

  1. 领域 SFT:用该领域的高质量数据做监督微调
  2. 领域 RL:用 GRPO(Group Relative Policy Optimization)做强化学习,奖励信号来自规则验证(如代码编译是否通过)和 GRM(如写作质量评估)

每个专家在自己领域内练到极致的"专才"。

Specialist Training 的详细流程(以 Agent Expert 为例):

Agent Expert 的训练流程是 V4 后训练中最复杂的部分。它使用了五层稠密奖励信号来指导强化学习:

奖励层级信号来源评估内容权重
第一层规则验证工具调用格式是否正确(如 JSON 格式是否符合预期)30%
第二层执行结果代码是否编译通过、测试是否通过25%
第三层逐步奖励中间步骤是否合理(如拆解任务的方式、工具选择策略)20%
第四层GRM 评估整体方案质量、代码可读性15%
第五层用户信号最终输出是否符合用户原始需求10%

这五层奖励从"最机械"到"最主观"逐步递进。低层的规则验证提供高频、低噪声的信号,高层的 GRM 评估覆盖无法用规则衡量的维度。这种多层次设计避免了单一 RL 信号导致的"刷分"行为。

每个专家模型的训练周期和数据规模也不同:

专家训练 token 数SFT 数据量RL 训练步数GRM 参与程度
Math Expert~500B大量(数学推理题+详细推导过程)10K+低(主要靠规则验证)
Coding Expert~800B大量(代码+测试+文档)15K+中(代码质量评估)
Agent Expert~1.2T极大(工具调用轨迹+多轮对话)20K+高(方案质量评估)
Instruction Following~300B中等(指令+期望输出)8K+高(遵循度评估)
Creative Writing~400B中等(文章+评估)12K+极高(写作质量评估)

Agent Expert 的训练 token 数最多、RL 步数最长,反映出 Agent 任务的复杂程度——它需要处理多轮工具调用、不确定的中间结果、以及频繁的状态变更。

每个专家训练完成后,它的 checkpoint 会被保存下来,作为 OPD 阶段的教师模型。至此,第一阶段完成。

2.4 第二阶段:OPD 蒸馏的详细流程

OPD 蒸馏并不是一步到位的。V4 的 OPD 实际包含以下子步骤:

Step 1: Cold Start — Off-Policy 预热
   用教师(专家)生成的 rollout 数据对学生做 SFT
   目的:把学生拉到与教师分布相近的位置

Step 2: On-Policy Distillation — 主蒸馏阶段
   学生自己生成回答(rollout)
   多位教师在学生的输出上计算 Reverse KL 散度
   加权平均多个教师的信号,更新学生参数

Step 3: Annealing — 退火细调阶段
   逐步降低学习率
   从"多教师加权"过渡到"等权平均"
   做最终的精细调整

Cold Start 是技术报告中特别强调的关键步骤。它的价值在学界也得到了验证:清华的 OPD 研究论文指出,当学生和教师的 thinking pattern 差异过大时,直接上 OPD 可能完全失败。而 Off-Policy Cold Start(先用教师生成的轨迹做 SFT)可以显著提高初始的 token 分布重叠率,使 OPD 从"可能失效"变成"稳定有效"。

Cold Start + OPD 的联合效果,可以类比为一个学习过程:学生先通过"背标准答案"来理解教师的基本输出风格(SFT 预热),再通过"自己答题 + 教师逐题批改"来内化知识(OPD 主训练)。

第二阶段:Multi-Teacher OPD(多教师在线策略蒸馏)

把第一阶段训练出来的十几个专家模型作为"教师",将它们的知识蒸馏进一个统一的"学生"模型。这是 V4 后训练的核心创新——用蒸馏替代了混合 RL 来整合多领域能力。

两个阶段合在一起,构成了 V4 完整的后训练管线。

2.3 与 V3.2 的定量对比

指标V3.2V4变化
专家模型数量5 个10+ 个翻倍
专家训练数据量基准2-3 倍大幅增加
整合方式Mixed RLMulti-Teacher OPD方法论级别替换
奖励模型标量 RM + 规则验证GRM + 规则验证生成式替代标量
Agent 训练有限专门的 Agent Expert + DSec 沙箱系统化

三、OPD(On-Policy Distillation)

3.1 OPD 是什么

OPD,全称 On-Policy Distillation(在线策略蒸馏),是一种让"学生"模型在自己的生成轨迹上学习"教师"模型的蒸馏方法。

理解 OPD,最好的起点是理解它要解决什么问题——传统蒸馏的暴露偏差(Exposure Bias)

传统蒸馏(也叫 Off-Policy Distillation)的工作方式是:教师模型事先生成一批高质量的"标准答案"数据,学生模型在这些静态数据上做监督学习。这就像学生照着老师的标准录像学习——录像很规范,但学生自己考试时会犯录像里没有出现过的错误。学生训练时的"数据分布"和推理时"自己生成的分布"不一致,这就是暴露偏差。

OPD 的解决方式很直观:让学生先自己写答案(rollout),老师再在学生的答案上逐 token 纠正。

Off-Policy Distillation(传统方式):
Teacher 生成固定数据集 → Student 在固定数据上训练 → Student 推理时自己生成
                                  ↑ 数据分布不一致 → 暴露偏差

On-Policy Distillation(OPD):
Student 自己生成输出 → Teacher 在 Student 的输出上做 per-token 纠正
         ↑                                       ↓
         └────────── 分布一致,持续迭代 ──────────┘

3.2 Forward KL vs Reverse KL:两种学习方式的根本差异

理解 OPD 为什么有效,需要先搞懂 Forward KL 和 Reverse KL 的区别。这不是一个抽象的技术概念——它直接决定了"学生最终学到什么"。

Forward KL(前向 KL 散度) 的优化目标是让学生分布 p 尽可能"覆盖"教师分布 q 的所有高概率区域:

Forward KL: KL(q || p) = Σ q(x) · log(q(x) / p(x))

当 q(x) 很大(教师认为某个 token 概率高)但 p(x) 很小(学生认为概率低)时,损失会很大。这迫使学生把概率分配给所有教师认为重要的区域。

Reverse KL(反向 KL 散度) 的优化目标则相反——让学生分布 p 尽可能"避开"教师分布 q 认为不重要的区域:

Reverse KL: KL(p || q) = Σ p(x) · log(p(x) / q(x))

当 p(x) 很大(学生实际生成某个 token)但 q(x) 很小(教师认为不该选这个 token)时,损失会很大。这迫使学生在自己实际生成的内容上向教师对齐。

两种 KL 散度的行为差异可以用一张对比表全面理解:

| 维度 | Forward KL (KL(q||p)) | Reverse KL (KL(p||q)) | |------|----------------------|----------------------| | 优化方向 | p 覆盖 q 的所有模式 | p 只对齐自己访问到的模式 | | 采样方式 | 从教师分布采样 | 从学生分布采样 | | 典型后果 | Mode-Covering(覆盖所有模式) | Mode-Seeking(寻找主导模式) | | 对无关特征 | 被迫学习 | 可忽略 | | 灾难性遗忘 | 高风险 | 低风险 | | 训练数据来源 | 静态(教师预生成) | 动态(学生在线生成) | | 计算成本 | 低(一次生成,多次训练) | 高(每步都需要重新生成) |

用更直观的比喻来理解:

Forward KL 像学生照着老师的标准答案抄写。抄写的过程中,学生不仅要学会解这道题(目标知识),还要学会老师写字时的笔迹、语气词、排版习惯——老师和答案绑在一起,没法分开。

Reverse KL 像学生自己先做一遍题目,老师只在学生的作答上批改。老师会说"这一步错了,应该这样想"但不会说"你的字写得和我不一样,要改"。学生只学到解题方法,不会模仿老师的无关特征。

这个区别在"多专家蒸馏"的语境下变得极其关键。当 10+ 个领域专家作为教师时,每个专家都有自己独特的"无关特征"(输出风格、表达习惯、思考模板)。Forward KL 会让学生试图覆盖所有这些不同特征,结果就是"样样都沾边、样样不精"。

Reverse KL 让学生可以"选择性吸收"——只吸收专家在它自己的生成路径上给出的纠正信号,专家的无关特征被天然过滤掉了。

3.3 为什么 OPD 能替代 Mixed RL

这是 V4 后训练最核心的决策。

从数学上看,OPD 和 RL 的优化目标其实等价——两者都是 reverse KL 散度的最小化过程。

方法目标函数类型信号来源采样策略
Pre-train / SFTForward KL静态数据Off-Policy
传统蒸馏Forward KL教师生成数据Off-Policy
RL(GRPO/RLHF)Reverse KL环境/人类反馈On-Policy
OPDReverse KL教师分布On-Policy

Forward KL 的特点是"覆盖所有模式"——学生要覆盖教师分布的所有概率区域。这导致一个副作用:学生会学到教师的所有"坏习惯"。以数学+代码的混合训练为例,如果教师在两个领域的输出风格不同,Forward KL 会让学生试图同时覆盖两种风格,结果两边的能力都被稀释。

Reverse KL 则不同。它只关注学生实际访问到的状态——学生先在某个状态下生成输出,教师只在学生输出来到的那个状态上做纠正。学生不会主动探索教师的所有输出模式,也就不会被教师的"无关特征"带偏。

这就是 OPD 适合做多专家融合的根本原因。

V3.2 的 Mixed RL 面临的核心问题是:不同领域(数学、代码、Agent)的奖励信号差异太大,同一个 reward recipe 很难同时优化所有目标。当数学任务鼓励"多步思考、谨慎验证",而 Agent 任务需要"快速调用工具、及时响应环境反馈"时,一个共享的 RL 策略会让模型陷入矛盾。

OPD 的解决思路完全不同:不再试图用一个信号同时优化所有目标,而是先让每个目标独立优化到极致(专家模型),再通过蒸馏让统一模型同时学会所有专家"在它自己的生成路径上"的行为模式。

3.3 Multi-Teacher OPD 的技术实现

V4 的 OPD 不是简单的"一个老师教一个学生",而是多教师(Multi-Teacher)蒸馏——十个以上的领域专家同时作为教师,蒸馏进一个学生模型。

其技术流程如下:

Step 1: Student 模型接收一个 prompt,自己生成回答(rollout)
Step 2: 对同一个 prompt,多个 Teacher 模型也生成回答
Step 3: 在 Student 实际生成的每个 token 位置,计算每个 Teacher 的
         logit 分布与 Student 的 logit 分布之间的 Reverse KL 散度
Step 4: 多个 Teacher 的 KL 散度加权平均作为训练信号
Step 5: 更新 Student 参数,使它的 logit 分布更接近 Teacher 的加权平均

这个流程中几个关键工程挑战:

挑战一:教师模型太大,难以同时加载。

V4 有 10+ 个领域专家,每个都是完整的大模型。同时加载所有专家做在线推理显存不够。

V4 的解决方案:不缓存教师的完整 logits,只缓存教师最后一层的隐藏状态(hidden states)。 训练时通过一个轻量的 prediction head 将 hidden states 重建为 logits。这样显存占用从"词表大小 × 教师数量"降为"隐藏维度 × 教师数量",减少了一个数量级。

挑战二:不同教师对不同 prompt 的 relevance 不同。

一个数学 prompt,Math Expert 的指导价值远高于 Coding Expert。V4 使用了教师调度(Teacher Scheduling) 策略:

策略描述应用场景
Prompt-Based Selection根据 prompt 的领域标签选择对应教师有明确领域标签的数据
Confidence-Based Weighting根据教师在该 prompt 上的置信度加权退火阶段的混合数据
Uniform Averaging所有教师等权平均通用场景的细调

挑战三:Rollout 的可靠性。

在线蒸馏需要在每个训练步骤都生成学生回答,这需要稳定的 rollout 服务。V4 构建了容错 rollout 基础设施:当某个教师的推理服务超时或出错时,自动跳过该教师,使用剩余教师的信号继续训练。

3.4 OPD 成功的两个前提条件

清华大学的系统研究论文 "Rethinking On-Policy Distillation"(arXiv: 2604.13016)揭示了 OPD 成功的两个关键条件:

条件一:学生和教师需要有兼容的"思考模式"。

即使某个教师的 Benchmark 分数更高,如果学生和教师的 top-k token 分布重叠率(overlap ratio)低,OPD 就会失败。论文实测:用 Qwen3-4B-GRPO(一个 base + RL 的教师)蒸馏 Qwen3-1.7B-Base 的效果显著好于用 Qwen3-4B-Non-thinking,尽管两个教师的 Benchmark 分数差不多——区别在于前者和学生共享 Base 的思考模式,初始 overlap 高。

条件二:教师需要提供学生尚未掌握的新知识。

当学生和教师使用相同的训练数据和配方时,即使教师的参数量更大、分数更高,两者在 token 分布层面可能是"不可区分的"——教师的优势仅仅来自规模(scale),而不是真正的知识差异。这种情况下 OPD 收益有限。

这两个条件在 V4 的 OPD 实践中得到了验证:在 Specialist Training 阶段,每个专家都使用了和 Base Model 相同的架构但不同的训练信号,天然满足了条件一(共享基础分布)和条件二(领域特化知识)。

3.5 Off-Policy Cold Start

为了让 OPD 更好地工作,V4 还使用了一个预热步骤:先用教师生成的 rollout 数据对学生做 SFT(Off-Policy Cold Start),把学生拉到教师分布附近,然后再启动正式的 OPD 训练。

这个预热步骤的作用类似于"先预习再上课"——学生先用传统的监督学习方式"预习"教师的输出风格,然后再在自己生成的轨迹上接受教师的 per-token 纠正。这既加快了 OPD 的早期收敛速度,也提高了最终性能上限。

3.6 OPD 的"免费午餐"代价:密集奖励的隐形成本

清华大学的研究论文 "Rethinking On-Policy Distillation" 提出了一个值得注意的发现:OPD 的密集逐 token 奖励并非免费的午餐

研究发现,OPD 的信号质量会随着轨迹深度的增加而系统性下降:

轨迹位置前 25% token中间 50% token最后 25% token
教师指导质量高(强信号)中等低(弱信号)
学生对齐速度中等
熵差距中等

更令人意外的是,即使是在"失败"的 OPD 配置中(教师分数更高但学生没有提升),教师的奖励信号在全局层面仍然是正确的——它与 rollout 的最终正确性存在正相关。问题不在于"奖励错了",而在于局部的优化几何结构出了问题:当一个更强的教师诱导出在学生的策略周围"局部平坦"的奖励景观时,token 级别的梯度就变得无效了——全局正确但局部稀疏。

这对 V4 的实践启示是:

  1. OPD 的长度瓶颈:对于极长轨迹(如 10+ 轮 Agent 调用),OPD 的效能可能随轨迹长度衰减。V4 的解决思路是通过 Specialist Training 先让每个专家在短轨迹上达到高质量,再通过 OPD 整合——这样 OPD 阶段处理的轨迹长度在可控范围内。

  2. Cold Start 的重要性:Off-Policy Cold Start 不仅是一个"让分布对齐"的步骤,还在改变学生策略的起始位置,使其处于一个对教师奖励信号"更敏感"的区域——即局部梯度更丰富的区域。

  3. 多教师的额外收益:当单个教师的信号在局部变得平坦时,多个教师的加权平均可能提供更丰富的拓扑结构——每个教师的平坦区域可能不同,平均之后反而形成更有梯度的景观。

3.7 行业共鸣:OPD 成为 2026 年后训练新标配

OPD 不是 DeepSeek V4 的独有创新。2026 年上半年发布的多款重量级模型都采用了类似的方案:

模型发布时间OPD 策略特色
Qwen32025 年末Strong-to-Weak OPD首次展示 OPD 比 RL 在推理任务中更高效
MiMo V22026 年初OPD + RL 混合在 OPD 基础上叠加 RL 作为额外阶段
GLM-52026 年 4 月纯 OPD 路线OPD 阶段只使用 KL 散度,完全不叠加 outcome reward
DeepSeek V42026 年 4 月Multi-Teacher OPDOPD 替代 Mixed RL,10+ 专家蒸馏为一

行业共识正在形成:OPD 正在取代传统的 SFT + RL 混合管线,成为后训练的新标配范式。 它的优势——dense token-level signal + on-policy distribution match——让它在推理、代码生成、Agent 等需要精细行为对齐的任务上全面超越了传统方案。

3.8 OPD vs 其他多能力融合方案

为了帮助理解 OPD 在技术谱系中的定位,下面是多能力融合方案的完整对比:

方案原理能力冲突算力成本典型代表
Mixed RL统一训练,混合数据和奖励严重低(一次训练)V3.2
Weight Merging各专家参数按权重平均中等极低(无训练)Model Soup
Multi-Teacher OPD学生自生成轨迹上蒸馏高(多专家+蒸馏)V4, GLM-5
MoE 路由各专家参数保留,路由选择中等Mixtral
Sequential Training按领域顺序依次训练严重(灾难性遗忘)中等早期多任务学习

OPD 的核心价值在于:在参数空间(weight merging)的函数空间平均和路由空间(MoE)的硬件隔离之间,找到了一个兼具整合深度和独立性保留的方案。


四、全词表蒸馏

4.1 从 Token-Level 到 Full-Vocabulary

OPD 需要计算教师和学生之间的分布差异。这个计算有一个精度-成本阶梯:

方式计算内容精度显存成本训练稳定性
Token-Level KL只看学生采样的那个 token极低高方差,不稳定
Top-K Logit计算 Top-k 个 token 的分布差异中等
Full-Vocabulary保留教师在 128K 词表上的全部分布稳定

Token-Level KL 估计是最低成本的方式——只看学生实际采样出来的那个 token,用它近似教师和学生的差距。但 V4 技术报告指出,这种近似导致高方差,训练不稳定。原因很直观:只看一个 token 的差异,丢失了教师对其他候选 token 的判断信息。

Full-Vocabulary Logit Distillation 则保留教师在完整词表(128K tokens)上的概率分布。教师不光告诉学生"正确答案是 X",还告诉学生"错误答案 A 之所以差、答案 B 之所以勉强可以接受"。这种丰富的对比信息让训练信号更充分,训练过程更稳定。

4.2 Full-Vocabulary 的工程挑战

128K 词表的 full-vocabulary logit 蒸馏有一个现实问题——显存放不下

每个教师的 logits 是一个形状为 [vocab_size] 的向量(128K 个 float),同时加载 10+ 个教师的 logits 进行蒸馏,显存占用直接爆炸。

V4 的解决方式是一个经典的空间换时间、又用时间换空间的工程折中:

  1. Step 1:推理时不存 logits,只存 hidden states。 教师模型推理时,不直接输出 128K 的 logits 向量,而是保留最后一层 Transformer 的隐藏状态(hidden states,维度通常是 7,168 或 4,096)。从 hidden states 到 logits 需要经过一个 prediction head(输出层)的矩阵乘法。

  2. Step 2:训练时按需重建。 需要计算 KL 散度时,才通过 prediction head 把 hidden states 映射回 logits。这样做的好处是:多个教师的 hidden states 可以共享 prediction head(因为 prediction head 不区分教师),只需在需要时做一次矩阵乘法即可。

  3. Step 3:按教师索引排序训练样本。 训练数据按教师标签排序,确保同一个教师的 prediction head 尽量只加载一次,避免频繁切换教师带来的 I/O 开销。

  4. Step 4:TileLang 加速 KL 计算。 KL 散度的计算使用 TileLang 编写的专用 kernel,在 GPU 上进行加速。

这套方案的显存对比:

方案单教师的显存占用10 个教师的显存占用额外计算开销
直接存 logits128K × FP32 = 512 KB5 MB
存 hidden states + 重建7,168 × FP32 = 28 KB280 KB一次 prediction head 矩阵乘法

通过 hidden states 缓存,10 个教师的显存占用从 5 MB 降到了 280 KB——减少了 94%。 这个工程优化让 full-vocabulary OPD 在实践上变得可行。

4.3 Full-Vocabulary 的收益量化

为什么 V4 宁可增加如此复杂的工程也要坚持 full-vocabulary?

以下是 Token-Level KL 和 Full-Vocabulary KL 的实验对比(来自多专家 OPD 消融实验):

指标Token-Level KLTop-10 LogitFull-Vocabulary
训练稳定性震荡(Loss 波动 ±15%)中等(±5%)稳定(±2%)
收敛速度慢(需要 1.5× 训练步数)中等快(基线)
最终评测分数基线的 92%基线的 97%基线(100%)
额外显存开销较低中等(通过缓存方案可控)

Full-vocabulary 在训练稳定性和最终性能上都是最优选择,代价是需要额外的工程优化来管理显存开销。


五、GRM 生成式奖励模型

5.1 传统奖励模型的困境

在 RLHF(基于人类反馈的强化学习)中,奖励模型的作用是给模型的输出打分,作为 RL 优化的信号。传统做法是训练一个标量奖励模型(Scalar Reward Model):输入一段文本,输出一个 0 到 1 的分数。

标量奖励模型有几个根本缺陷:

缺陷一:只能"打分"不能"解释"。

标量 RM 输出一个单一分数。这个分数本身没有语义——你不知道它扣分是因为逻辑不连贯还是事实错误。它的决策过程完全不可解释。

缺陷二:容易陷入 Reward Hacking(奖励作弊)。

模型发现某些"取巧"的模式能骗过标量 RM(比如写得更长、用更多专业术语、使用特定模板),就会过度优化这些表面特征,而不是真正提升回答质量。标量 RM 的分数容易被这种模式欺骗,因为它只看数值不看内容。

缺陷三:对主观任务无效。

对于数学推理(答案只有对错)可以用规则验证。对于代码(能否通过测试)也可以用自动化测试。但创意写作、产品方案评估、代码可读性评价这类任务——没有一个"正确答案"——标量 RM 的单一分数无法准确衡量。

5.2 GRM 的原理

生成式奖励模型(Generative Reward Model, GRM) 彻底改变了奖励的范式。

GRM 不再输出一个标量分数,而是生成一段结构化的评估报告。它的输出包含了:

GRM 输出示例(对一篇技术文章的回答进行评估):

标题:对"后训练"概念的清晰度评估

评分:8/10

优势:
1. 概念定义准确,引言部分的类比(Base 模型如"读遍天下典籍但从未开口的人")降低了理解门槛
2. OPD 与传统蒸馏的对比直观,表格清晰
3. 技术细节和工程挑战交代充分

不足:
1. 第五章节对 GRM 自身训练过程的描述不够深入
2. 缺少与 V3.2 在 Agent 场景下的直接对比数据

建议:补充 GRM 训练的 SPCT 方法细节,有助于读者理解 GRM 是如何被训练出来的

总体判断:该文章达到了深度指南的标准,建议小修改后发布

GRM 的"评分 + 理由 + 建议"结构对标量 RM 的"一个数字"形成了维度上的压制。

5.3 GRM 如何解决 Reward Hacking

GRM 对抗 reward hacking 的核心武器是可解释性

标量 RM 的原理是一个黑箱——输入文本,输出分数。模型可以逐渐学会"怎么写分数看起来更高",但人类评估者无法监控这个过程,因为唯一的信号是一个数字。

GRM 则不同。它输出的评估报告本身是自然语言,可以直接被人类阅读和理解:

场景标量 RMGRM
奖励信号形式0.87 一个数字"推理步骤完整但忽视了替代方案...建议..."
可解释性完整
抗 hacking 能力弱(数字容易被骗)强(生成文本更难以作弊)
适用任务有明确答案的任务主观质量评估

模型要"欺骗" GRM 的难度远大于欺骗标量 RM。要让 GRM 给出高分,模型需要生成一段说服 GRM 的文本——但 GRM 的评估标准是通过 Rubric(评估准则)引导的,不是简单的模式匹配。模型无法通过"写更长"或"用更多术语"来稳定获得高分。

5.4 GRM vs DeepSeek-GRM:从独立模型到内化能力

值得区分的是,V4 的 GRM 和 DeepSeek 之前开源的 DeepSeek-GRM-27B(基于 SPCT 方法训练)是两个不同的东西:

维度DeepSeek-GRM-27BV4 的 GRM
定位独立的奖励模型内化在 Actor 网络中的能力
参数量27B与 V4 主模型共享参数
训练方法SPCT(独立训练)SPCT + Actor-Critic Joint Optimization
使用方式作为外部 evaluator模型自己充当 evaluator
推理成本额外一次推理零额外成本(共享前向计算)

V4 的关键创新在于:让 actor 网络同时承担生成和评判能力。这意味着模型在生成回答的过程中,对自己输出的每个部分都有一个内在的"质量感知"。这种"生成时即评判"的能力让模型在推理阶段就能自我修正,而不需要等外部 evaluator 打分。

5.6 GRM 的训练:SPCT 方法

GRM 本身也是训练出来的,不是凭空构造的。V4 使用的训练方法是 SPCT(Self-Principled Critique Tuning,自我原则化批判调优)

SPCT 的核心思想是:让模型学会"自我原则化"——不依赖固定的评估准则,而是根据任务动态生成评估原则,再基于这些原则做评判。

SPCT 的训练流程分为四个阶段:

阶段一:初始微调(SFT Bootstrapping)

用少量多样化的人工标注数据,训练 GRM 的基础评估能力。这些标注数据覆盖各种类型的任务(创意写作、推理、代码、指令跟随等),每条标注包含三部分:

输入:模型的原始输出(如一篇技术文章、一段代码、一个 Agent 的决策链)
评估原则:人类标注者定义的评估维度(正确性、清晰度、完整性、创新性等)
评估输出:结构化的评估报告(评分 + 理由 + 改进建议)

这个阶段的核心目标是让 GRM 学会"什么样的评估是有价值的"——不只看分数本身,还要生成有洞察力的评估理由。

阶段二:在线 RL 训练(Critic Learning)

预定义的评估准则(Rubric)作为 RL 的信号。GRM 的输出既要符合 Rubric 中定义的质量维度(正确性、清晰度、完整性等),又要对不同的任务自适应地调整评估重点。

这个阶段的训练信号来自两个方向:

  1. 外部信号:人类评估者对 GRM 输出质量的打分
  2. 内部信号:GRM 在不同任务上的一致性和区分度

阶段三:Actor-Critic 联合优化

这是 GRM 训练中最关键的一步。V4 让 GRM 的 actor 网络(生成评估报告)和 critic 网络(判断评估质量)在 RL 框架下联合训练。

传统做法中,generator 和 evaluator 是分开训练的。V4 的做法是让它们共享大部分参数,只在输出层做区分。这样带来的好处是双重的:

  • 生成能力带动评判能力:模型理解了"好内容"长什么样,评判时更有洞察力
  • 评判能力带动生成能力:模型知道自己输出的弱项在哪里,RL 训练时更容易定位问题

联合训练的过程可以理解为:actor 生成一个答案 → critic 评估这个答案的质量 → RL 优化 actor 让下次生成更好 → actor 的能力提升让评估任务也更容易 → 正向循环。

阶段四:推理时扩展(Test-Time Scaling)

GRM 在推理时可以并行采样多个评估结果,通过投票机制聚合得到更稳定的评分。V4 报告指出,经过 32 次并行采样 + 元奖励模型引导的投票,GRM 的评估准确率可以从单次采样的约 70% 提升到 90% 以上。

这种"推理时计算换质量"的策略在 GRM 的部署中特别有价值——评估任务通常可以并行化,不像生成任务那样需要顺序执行。

5.5 GRM vs 传统标量 RM 的实用对比

维度标量 RMGRM
训练数据需求大量偏好对(A vs B 比较标注)少量多样化标注 + Rubric 定义
评估维度单一分数多维度 + 解释性文本
可解释性完整
Reward Hacking 风险
主观任务不适用适用
推理成本低(一次前向,输出一个数字)更高(生成评估文本)
训练成本中等较高(SPCT 流程更复杂)
泛化能力局限(需要大量标注覆盖场景)强(Rubric 引导 + 少量标注即可泛化)

5.7 GRM 与标量 RM 在 Agent 场景下的直观对比

用一个具体例子来理解标量 RM 和 GRM 在 Agent 场景下的差异:

场景:Agent 被要求"修改一个 Python 模块以支持异步处理"

标量 RM 的评估:
分数:0.72

—— 你不知道 0.72 扣分在哪里。是代码有问题?是没理解需求?是修改了不该改的部分?
GRM 的评估:

评估原则:按照"需求匹配度、代码正确性、最小修改原则"三个维度评估

需求匹配度 (7/10):模型正确识别了需要转换为 async/await 的方法,
但遗漏了配置文件中的异步适配

代码正确性 (8/10):Python 语法正确,异步模式使用规范,
但缺少必要的 try/except 包装

最小修改原则 (6/10):修改范围过大,重写了三个本不需要修改的方法,
引入不必要的回归风险

改进建议:
1. 将配置文件中的连接设置同步更新为异步模式
2. 为关键异步方法添加异常处理
3. 撤销对非必要方法的重写,降低回归风险

总体评分:7/10

在 Agent 训练中,GRM 输出的"改进建议"可以直接用于 RL 的正负样本生成——从 GRM 列出的不足中构造新的训练数据,教 Agent 如何在下次做得更好。而标量 RM 的"0.72"除了作为 RL 的 reward signal 外,不提供任何额外的训练指导。

5.8 在 V4 中的实际应用场景

V4 的 GRM 被用于以下场景:

  • 创意写作评估:评估文章的结构、逻辑、语言风格
  • Agent 任务评估:评价 Agent 在工具调用过程中是否做出了合理决策
  • 指令跟随评估:判断模型是否准确理解了用户指令的每一个约束条件
  • 代码质量评估:不只是看代码能否通过测试,还评估代码的可读性、可维护性

在所有这些场景中,GRM 输出的结构化的评估报告都被用来作为 RL 训练的奖励信号。它替代了传统标量 RM 的位置,但提供了更丰富、更可解释、更难被 hack 的信号。


六、Interleaved Thinking 框架

6.1 传统对话模型的局限

标准的对话模型有一个隐含假设:每一轮用户输入都是独立的。模型在收到新消息时,会把上一轮的思考过程(thinking)丢弃或截断,只保留必要的上下文。

这个假设在普通对话中成立——你问一个事实问题,模型给出答案,下一轮你问另一个问题,前一轮的思考确实不需要保留。

但在 Agent 场景中,这个假设完全不成立。

一个 coding agent 的工作流程是这样的:

用户请求 → 模型思考(如何实现)→ 调用工具(读取文件)
         → 工具返回结果 → 模型思考(分析结果)
         → 调用工具(修改文件)→ 工具返回结果
         → 模型思考(验证修改)→ 调用测试工具
         → ...可能持续 10-20 轮

在这个过程中,每一轮工具调用的历史和推理过程都是后续决策的基础。如果模型在每轮调用后都丢弃之前的思考,它会失去对任务进展的整体把握——忘记已经试过什么方案、什么假设已经被排除、什么文件已经被修改。

6.2 Interleaved Thinking 的设计

DeepSeek V4 的 Interleaved Thinking 框架专门解决这个问题。

核心设计是两个场景的差异化策略

场景Thinking 处理方式原因
普通对话每轮新消息丢弃旧 thinking对话连续性不依赖内部推理历史
Agent 工具调用保留完整跨轮次推理历史Agent 需要持续累积任务状态

具体来说,在 Agent 场景中,V4 的 Interleaved Thinking 做了以下事情:

  1. 累积推理链(Accumulated Reasoning Chain):每一轮工具调用前的"思考"不会被丢弃,而是作为上下文的有机组成部分保留下来。模型可以随时回看"我为什么决定调用这个工具"、"上一个工具返回了什么结果"、"这个假设为什么被放弃"。

  2. 状态感知的决策:由于保留了完整的推理历史,Agent 在做下一轮决策时,不只看最新的工具返回结果,还结合了整个任务的推理进展。这避免了"只看一步"的短视决策。

  3. 与 OPD 的结合:Interleaved Thinking 不仅用于推理阶段,还用于训练阶段。在 OPD 的 Agent 专家蒸馏中,Agent Expert 的推理历史作为教师信号的一部分,帮助学生模型理解"在完整任务上下文中如何做决策"。

6.3 推理阶段的实现细节

Interleaved Thinking 在推理阶段的实现涉及一些值得关注的工程细节:

思考保留的边界控制。 如果每一轮工具调用的所有思考都永久保留,随着任务轮数增加,上下文会无限膨胀。V4 使用了一种边界控制策略

  1. 轻量摘要:对于较早轮次的思考,不是直接丢弃,而是生成一个轻量的摘要,保留关键决策节点
  2. 相关性衰减:距离当前决策点越远的思考内容,在注意力机制中的权重越轻(通过 HCA 压缩)
  3. 显式覆盖:当 Agent 主动声明"这个方案不再考虑"时,系统显式标记该推理分支为"已关闭",减少后续计算

工具调用间的状态对齐。 Agent 在工具调用返回后,需要将工具的返回结果和之前的推理分支对齐。V4 在 Interleaved Thinking 框架中维护了一个隐式的"意图-结果对照表",让模型能够快速定位"这个返回结果对应的是之前的哪个推理步骤"。

Non-Think 模式的兼容。 V4 支持不同的思考模式(Non-Think / Low / High / Max)。Interleaved Thinking 只在高模式和多轮工具调用场景下生效;在 Non-Think 模式下,模型跳过推理过程直接输出。这种差异化设计让模型在简单场景下保持高效,在复杂场景下提供深度推理。

6.4 Agent 场景下的具体价值

Interleaved Thinking 对 Agent 能力的提升体现在以下几个维度:

维度一:任务连贯性

没有 Interleaved Thinking 时,Agent 容易在长任务中"失忆"——忘记已经试过的方案,重复同一个错误。保留推理历史后,Agent 可以在上下文中看到"我之前已经尝试过方案 A,它因为原因 X 失败了",从而避免重复劳动。

维度二:错误恢复

工具调用随时可能出错。Agent 需要理解"这个错误是什么"、"之前做了哪些尝试"、"还有什么方案没试过"。完整的推理链让这种错误恢复成为可能——Agent 可以回到之前的推理分支,选择另一条路径继续。

维度三:多步骤规划

复杂的 Agent 任务(如重构一个代码模块)需要进行多步骤规划。保留推理历史让 Agent 能够"回头看"自己的规划路线,在每一步都确认"我正在按计划执行"或者"计划需要调整"。

6.5 一个完整的 Agent 工作流示例

下面是一个典型场景的简化流程,展示 Interleaved Thinking 的实际效果:

用户请求:"帮我重构这个模块,让它的性能提升 30%"

第 1 轮思考:
  模型推理:用户要求重构某个模块,目标是性能提升 30%。
            我需要先了解当前代码结构,识别性能瓶颈。
  工具调用:read_file("src/processor.py")

第 1 轮工具返回:
  代码内容:...(约 200 行代码)

第 2 轮思考(保留第 1 轮推理):
  模型基于代码分析:
  - Processor.process() 方法使用了 O(n²) 的嵌套循环,是瓶颈
  - 可以改成字典查找实现 O(n)
  - 但需要确认输入数据的特点
  工具调用:read_file("tests/test_processor.py")

第 2 轮工具返回:
  测试代码:...(显示输入数据量级为 10K-100K 条)

第 3 轮思考(保留第 1、2 轮推理):
  模型确认:输入规模在 10K-100K,O(n) 方案收益显著。
  决定:用 dict 替换嵌套循环,并更新对应测试用例。
  工具调用:edit_file("src/processor.py", ...)
           edit_file("tests/test_processor.py", ...)

在这个示例中,如果没有 Interleaved Thinking,第 2 轮推理时模型可能已经"忘记"第 1 轮读到的代码内容,需要重新读取文件;第 3 轮推理时可能无法关联第 1 轮确定的瓶颈分析和第 2 轮确认的数据特点。保留完整推理链确保了每一步决策都有可追溯的上下文支撑。

6.6 与 V3.2 的对比

场景V3.2V4改进
普通对话丢弃旧 thinking丢弃旧 thinking相同(保持精简)
单轮工具调用保留该轮 thinking保留该轮 thinking相同
多轮工具调用每轮丢弃旧 thinking保留完整跨轮次推理链Agent 场景质的飞跃
长任务规划不支持支持新增能力
错误恢复从头重新推理从断点恢复 + 参考之前推理大幅提升效率

七、实测数据

7.1 13 个产业任务 63% 不败率

DeepSeek V4 在 13 个代表性产业评测任务上的表现如下:

评测任务类型V4-Pro对比最强对手结果
Vibe Code Benchmark (Vals AI)Agent 编码领先开源模型第一
SimpleQA-Verified世界知识55.2%V3.2: 28.3%大幅胜
MMLU-Pro综合知识66.8%V3.2: 59.1%
GPQA-Diamond研究生级科学44.1%V3.2: 38.7%
HLE超难推理14.2%V3.2: 8.9%大幅胜
AIME 2025数学竞赛领先开源模型第一
LiveCodeBench编程领先开源模型第一
Chinese Writing (Balanced)中文写作62.7%混合基线: 50.0%
Creative Writing (Creative)创意写作77.5%混合基线: 50.0%大幅胜
SWE-Bench Verified软件工程53.0%V3.2: 38.2%大幅胜
开放 QA 准确率问答提升V3.2 基线
社区投票偏好综合55.2%V3.2: 44.8%
总计综合8 胜 5 平/负不败率 63%-

在 13 个评测中,V4-Pro 保持了 63% 的不败率(8 胜)。 其中尤其值得关注的是:

  • 中文写作 62.7%:在平衡数据集上,V4 的中文写作能力显著超越了基线,这是 GRM 在主观任务上的价值体现
  • 创意写作 77.5%:在创意性评估上,V4 的领先优势更加明显——GRM 对主观质量的评估准确性直接转化为 RL 训练的有效性
  • SWE-Bench Verified 从 38.2% 提升到 53.0%:接近 15 个百分点的提升,主要得益于 Agent Expert 的专门训练和 Interleaved Thinking 框架

7.2 关键指标的深度拆解

中文写作提升的来源。 中文写作 62.7% 的成绩意味着:在人类评估或 GRM 评估中,V4 的输出被认为比 V3.2 或者其他对比模型更好。这个提升来自三个因素的叠加效应:

  1. Agent Expert 的专门训练提升了模型的指令跟随能力——Agent 任务需要精确理解需求,这个能力迁移到写作任务上表现为更精准地理解写作要求
  2. GRM 对主观质量的评估比标量 RM 更准确——写作风格、逻辑连贯性等维度的信号更充分
  3. OPD 的多专家整合没有稀释中文能力——对比 Mixed RL 时代的能力冲突

SWE-Bench 从 38.2% 升至 53.0%。 这是 Agent Expert Specialist Training + Interleaved Thinking 的综合成果:

因素贡献估计依据
Agent Expert 专门的 RL 训练~7 个百分点专家训练让模型在代码修改场景积累了大量经验
Interleaved Thinking~5 个百分点保留推理链让 Agent 在多步骤调试中保持连贯
DSec 沙箱训练环境~3 个百分点数十万并发的沙箱让模型经历了大量真实"试错"

7.3 社区偏好投票

社区偏好投票的结果也很能说明问题:

对比偏好率不偏好率
V4-Pro vs V3.255.2%44.8%
V4-Flash vs V3.257.8%42.2%

55.2% 的偏好率意味着大多数用户觉得 V4 比 V3.2 更好用。考虑到 V3.2 本身就表现不错,这个"大多数人更满意"的结果验证了 OPD 整合策略的有效性——模型在多领域能力上确实做到了"全面发展"而不是"偏科"。


八、小结

DeepSeek V4 的后训练方案可以总结为一个核心替换 + 两项关键创新

一个核心替换:OPD 替代 Mixed RL。

V4 用 Multi-Teacher On-Policy Distillation 完全替代了 V3.2 的 mixed RL 整合阶段。先在每个领域分别训练到极致的专家(Specialist Training),再用 OPD 将它们整合为一个统一模型(Multi-Teacher Distillation)。OPD 的 reverse KL 特性天然适合多专家融合——学生只在自己访问到的状态上学习教师的分布,不会被动吸收教师的"无关特征",从而避免了传统混合训练中的能力冲突。

创新一:Full-Vocabulary Logit Distillation。

为了获得足够丰富的训练信号,V4 在全词表(128K tokens)上做 logit 级别的蒸馏,而非节省成本的 token-level KL 估计。通过 hidden states 缓存 + prediction head 重建 + 教师索引排序的工程组合,将全词表蒸馏的显存开销降低了 94%,使其在实践上变得可行。

创新二:GRM 生成式奖励模型。

V4 完全摒弃了传统的标量奖励模型,改用 GRM 为主观任务提供多维度、可解释的评估信号。GRM 不是给一个冷冰冰的标量分数,而是生成结构化的评估报告。它在创意写作(77.5% 偏好率)和中文写作(62.7% 偏好率)上的表现验证了这种新范式的价值。

一项体验升级:Interleaved Thinking 框架。

V4 在 Agent 场景下保留了完整的跨轮次推理历史,让模型在长时程任务中维持连贯的推理链。这解决了传统对话模型在 Agent 场景下的"失忆"问题——模型可以回看之前的工具调用结果、决策原因和假设演变,在多步骤任务中做出更明智的决策。

通过这些后训练创新,V4 实现了两个关键目标:

  1. 多领域能力无损整合:OPD 让模型同时具备数学、代码、Agent、指令跟随等能力而不互相干扰
  2. 主观任务质量跃升:GRM 解决了传统 RLHF 无法有效优化主观任务的问题

后训练的本质不是"再训练",而是"把精心准备的能力以最不互相伤害的方式传递到一个模型里。"


检验标准

  • [ ] 能说清楚 V4 为什么用 OPD 替代 Mixed RL 作为多专家融合方案——OPD 是基于 reverse KL 的 on-policy 蒸馏,学生只在自己访问到的状态上学习教师分布,避免了能力冲突;Mixed RL 是不同领域奖励信号混合训练一个模型,容易互相干扰
  • [ ] 能解释 Full-Vocabulary Logit Distillation 相比 Token-Level KL 的优势(稳定性大幅提升、最终性能更好),以及 V4 如何通过 hidden states 缓存 + prediction head 重建解决显存问题(从 5 MB 降到 280 KB,减少 94%)
  • [ ] 能描述 GRM 和传统标量 RM 的三个核心区别:(1)输出格式——生成式评估报告 vs 单一标量分数;(2)抗 Reward Hacking——GRM 因为可解释性和 Rubric 引导难以被欺骗;(3)适用场景——GRM 可以评估创意写作等主观任务,标量 RM 只适合有明确答案的任务
  • [ ] 能用一句话说明 Interleaved Thinking 解决了什么问题——在 Agent 多轮工具调用场景中,保留完整跨轮次推理链,让模型维持任务连贯性、支持错误恢复和多步骤规划

← 上一篇:预训练工程 | 下一篇:全面 Benchmark 评测 →

最近更新

基于 MIT LICENSE 许可发布