NLP——技术报告解读-DeepSeek-V3.2

注:本文包含 AI 辅助创作

Paper Summary

  • DeepSeek-V3.2:在高效计算与卓越推理和智能体性能之间取得平衡的模型
  • DeepSeek-V3.2 关键技术:
    • (1) DeepSeek 稀疏注意力 (DeepSeek Sparse Attention, DSA): 论文引入了 DSA,这是一种高效的注意力机制,能在保持长上下文场景下模型性能的同时,显著降低计算复杂度
    • (2) 可扩展的强化学习框架 (Scalable Reinforcement Learning Framework): 通过实施一个鲁棒的强化学习协议并扩展后训练计算量,DeepSeek-V3.2 的性能与 GPT-5 相当
      • DeepSeek-V3.2-Speciale(DeepSeek-V3.2 的高计算量变体) 超越了 GPT-5,并且其推理能力与 Gemini-3.0-Pro 持平,在 2025 年国际数学奥林匹克 (International Mathematical Olympiad, IMO) 和国际信息学奥林匹克 (International Olympiad in Informatics, IOI) 中均取得了金牌表现
    • (3) 大规模智能体任务合成流程 (Large-Scale Agentic Task Synthesis Pipeline): 为了将推理能力整合到工具使用场景中,论文开发了一种新颖的合成流程,系统地大规模生成训练数据。这种方法促进了可扩展的智能体后训练,在复杂、交互式环境中显著提升了模型的泛化能力和遵循指令的鲁棒性
  • 图 1:DeepSeek-V3.2 及其同类模型的基准测试
    • 对于 HMMT 2025,论文报告的是二月份的比赛结果,与基线一致
    • 对于 HLE,论文报告的是纯文本子集

Introduction and Discussion

  • 推理模型的发布标志着 LLM 演进中的一个关键转折点,在可验证领域的整体性能的显著飞跃
  • 自这一里程碑以来,LLM 的能力迅速发展;但在过去几个月中出现了明显的分化
    • 虽然开源社区持续取得进展,但闭源专有模型 (Anthropic; DeepMind; OpenAI, 2025) 的性能提升轨迹以明显更快的速度在加速
    • 闭源和开源模型之间的性能差距不仅没有缩小,反而似乎在扩大,专有系统在复杂任务中表现出日益卓越的能力
  • 作者分析确定了限制开源模型在复杂任务中能力的三个关键不足
    • 在架构上,主要依赖普通注意力 (vanilla attention) (2017) 机制严重限制了长序列的效率
      • 这种低效性对可扩展部署和有效后训练都构成了重大障碍
    • 在资源分配方面,开源模型在后训练阶段的计算投入不足,限制了其在困难任务上的表现
    • 在 AI 智能体 (AI agents) 的背景下,与专有模型相比,开源模型在泛化能力和指令遵循能力方面表现出明显的滞后 (EvalSys, 2025; 2025; 2025),这阻碍了其在实际部署中的有效性
  • 为了解决这些关键限制,论文做了如下改进:
    • 第一:引入 DSA,一种旨在显著降低计算复杂度的高效注意力机制
      • 该架构有效解决了效率瓶颈,即使在长上下文场景下也能保持模型性能
    • 第二:开发了一种稳定且可扩展的 RL 协议,允许在后训练阶段进行显著的计算扩展
      • 该框架分配的后训练计算预算超过了预训练成本的 \(10%\),从而解锁了高级能力
    • 第三,提出了一种新颖的流程,以促进工具使用场景中可泛化的推理
      • 首先,实施一个冷启动 (cold-start) 阶段,利用 DeepSeek-V3 (DeepSeek-AI, 2024) 的方法论将推理和工具使用统一在单个轨迹内
      • 随后,论文推进到大规模智能体任务合成,生成了超过 1,800 个不同的环境和 85,000 个复杂的 Prompt
      • 这种广泛的合成数据驱动了 RL 过程,显著增强了模型在智能体上下文中的泛化能力和指令遵循能力
  • 小结:
    • DeepSeek-V3.2 在多个推理基准测试中与 Kimi-k2-thinking 和 GPT-5 取得了相近的性能
    • DeepSeek-V3.2 显著提升了开源模型的智能体能力,在之前工作(EvalSys,2025; 2025; 2025)引入的长尾智能体任务上表现出卓越的熟练度
    • DeepSeek-V3.2 成为智能体场景中一个极具成本效益的替代方案,在显著降低成本的同时,大大缩小了开源模型与前沿专有模型之间的性能差距
    • 特别地:为了推动开源模型在推理领域的前沿,论文放宽了长度约束以开发 DeepSeek-V3.2-Speciale
      • DeepSeek-V3.2-Speciale 达到了与领先闭源系统 Gemini-3.0-Pro (DeepMind) 相当的性能
      • 在 IOI 2025、ICPC World Final 2025、IMO 2025 和 CMO 2025 中均表现出金牌水平的性能
    • 注:论文评估了 CMO 2025 的英文版。IMO 2025 和 CMO 2025 的问题以及推理代码可在 github.com/deepseek-ai/DeepSeek-Math-V2 找到

DeepSeek-V3.2 Architecture

DeepSeek Sparse Attention

  • DeepSeek-V3.2 的架构与 DeepSeek-V3.2-Exp 完全相同
  • 与 DeepSeek-V3.1 的最后一个版本 DeepSeek-V3.1-Terminus 相比,DeepSeek-V3.2 唯一的架构修改是通过持续训练(Continuous Training)引入了 DeepSeek 稀疏注意力 (DeepSeek Sparse Attention, DSA)
  • DSA 原型 (Prototype of DSA)
    • DSA 的原型主要由两个部分组成:一个 Lightning Indexer 和一个细粒度 Token 选择机制 (fine-grained token selection mechanism)
  • Lightning Indexer
    • 计算查询 Token \(\mathbf{h}_{t}\in\mathbb{R}^{d}\) 与前一个 Token \(\mathbf{h}_{s}\in\mathbb{R}^{d}\) 之间的索引分数 \(I_{t,s}\),确定哪些 Token 将被查询 Token 选择:
      $$I_{t,s}=\sum_{j=1}^{H^{l} }w_{t,j}^{I}\cdot\text{ReLU}\left(\mathbf{q}_{t,j}^{I} \cdot\mathbf{k}_{s}^{I}\right), \tag{1}$$
      • \(H^{l}\) 表示 Indexer 头 (indexer heads) 的数量;
      • \(\mathbf{q}_{t,j}^{I}\in\mathbb{R}^{d^{l} }\) 和 \(w_{t,j}^{I}\in\mathbb{R}\) 来源于查询 Token \(\mathbf{h}_{t}\);
      • \(\mathbf{k}_{s}^{I}\in\mathbb{R}^{d^{l} }\) 来源于前一个 Token \(\mathbf{h}_{s}\)
    • 出于吞吐量考虑,论文选择 ReLU 作为激活函数
    • 鉴于 Lightning Indexer 具有少量头部并且可以在 FPS 中实现,其计算效率非常显著
  • 细粒度 Token 选择机制 (fine-grained token selection mechanism)
    • 给定每个查询 Token \(\mathbf{h}_{t}\) 的索引分数 \(\{I_{t,s}\}\),fine-grained token selection mechanism 仅检索与最高 k 个索引分数对应的键值条目 \(\{\mathbf{c}_{s}\}\)
    • 然后,通过在查询 Token \(\mathbf{h}_{t}\) 和稀疏选择的键值条目 \(\{\mathbf{c}_{s}\}\) 之间应用注意力机制来计算注意力输出 \(\mathbf{u}_{t}\):
      $$\mathbf{u}_{t}=\text{Attn}(\mathbf{h}_{t},\left\{\mathbf{c}_{s}\mid I_{t,s}\in \text{Top-k}(I_{t,:})\right\}). \tag{2}$$
  • 在 MLA 下实例化 DSA (Instantiate DSA Under MLA)
    • 出于从 DeepSeek-V3.1-Terminus 进行持续训练的考虑,论文为 DeepSeek-V3.2 基于 MLA (DeepSeek-AI, 2024) 实例化了 DSA
    • 在 kernel 层面,为了提高计算效率,每个键值条目必须在多个查询之间共享 (2025)
    • 基于 MLA1 的 MQA (Multi-Query Attention) 模式 (Shazeer, 2019) 实现了 DSA,其中每个潜在向量 (MLA 的键值条目) 将在查询 Token 的所有查询头之间共享
    • 基于 MLA 的 DSA 架构如图 2 所示
    • 详情见:DeepSeek-V3.2 的开源实现以明确指定细节 和 论文附录
Continued Pre-Training
  • 从一个上下文长度已扩展到 128K 的 DeepSeek-V3.1-Terminus base checkpoint 开始,进行持续预训练,随后进行后训练(最终得到 DeepSeek-V3.2)
  • DeepSeek-V3.2 的持续预训练包括两个训练阶段
    • 对于这两个阶段,训练数据的分布与用于 DeepSeek-V3.1-Terminus 的 128K 长上下文扩展数据完全一致
  • 密集预热阶段 (Dense Warm-up Stage) : 使用一个简短的预热阶段来初始化 Lightning Indexer (预热)
    • 在此阶段,论文保持密集注意力,并冻结除 Lightning Indexer 外的所有模型参数
    • 为了使 Indexer 输出与主要注意力分布对齐,对于第 \(t\) 个查询 Token
      • 先通过对所有注意力头求和来聚合主要注意力分数
      • 然后,沿序列维度对该和进行 L1 归一化以产生目标分布 \(p_{t,:}\in\mathbb{R}^{t}\)
    • 基于 \(p_{t,:}\),论文将 KL 散度损失设置为 Indexer 的训练目标:
      $$\mathcal{L}^{l}=\sum_{t}\mathbf{D}_{\text{KL} }\big{(}p_{t,:}\big{|}\text{Softmax }(I_{t,:})\big{)}. \tag{3}$$
    • 对于预热,使用 \(10^{-3}\) 的学习率
    • 只对 Indexer 训练 \(1000\) 步,每步包含 \(16\) 个 128K Token 的序列,总计 2.1B Token
  • 稀疏训练阶段 (Sparse Training Stage) : Indexer 预热之后,引入细粒度 Token 选择机制,并优化所有模型参数以使模型适应 DSA 的稀疏模式
    • 在此阶段,论文仍然保持 Indexer 输出与主要注意力分布的对齐,但仅考虑被选择的 Token 集合 \(\mathcal{S}_{t}=\{s|I_{t,s}\in\text{Top-k}(I_{t,:})\}\):
      $$\mathcal{L}^{l}=\sum_{t}\mathbf{D}_{\text{KL} }\big{(}p_{t,\mathcal{S}_{t} }\big{|}\text{Softmax}(I_{t,\mathcal{S}_{t} })\big{)}. \tag{4}$$
  • 特别注意:作者将 Indexer 输入从计算图中分离 (detach) 出来进行单独优化
    • Indexer 的训练信号仅来自 \(\mathcal{L}^{l}\),而主要模型的优化仅根据语言建模损失进行
    • 在这个稀疏训练阶段,论文使用 \(7.3\times 10^{-6}\) 的学习率,并为每个查询 Token 选择 \(2048\) 个键值 Token
    • 对主要模型和 Indexer 都训练了 \(15000\) 步,每步包含 \(480\) 个 128K Token 的序列,总计 9437 亿 Token
  • 图 2: DeepSeek-V3.2 的注意力架构,其中 DSA 在 MLA 下实例化
    • 绿色部分说明了 DSA 如何根据 Indexer 选择 top-k 的键值条目

Post-Training

  • 持续预训练(continued pre-training)后再执行后训练
  • DeepSeek-V3.2 的后训练也采用与稀疏持续预训练阶段相同的方式使用稀疏注意力
  • DeepSeek-V3.2 保持与 DeepSeek-V3.2-Exp 相同的后训练流程,其中包括专家蒸馏和混合强化学习训练
  • 专家蒸馏(Specialist Distillation)
    • 对于每项任务,首先开发一个专门针对该特定领域的专用模型
      • 所有专家模型都从同一个预训练的 DeepSeek-V3.2 基础 Checkpoint 进行微调
    • 除了写作任务和通用问答外,论文的框架还涵盖六个专业领域:
      • 数学、编程、通用逻辑推理、通用智能体任务、智能体编码和智能体搜索
      • 所有这些领域都同时支持 Thinking 模式和非 Thinking 模式
    • 每个专家都通过大规模 RL 计算进行训练
    • 使用不同的模型来生成长链 Thinking 推理( Thinking 模式)和直接响应生成(非 Thinking 模式)的训练数据
      • 专家模型用来为最终 Checkpoint 生成特定领域的数据
      • 实验结果表明,在蒸馏数据上训练的模型达到的性能水平仅略低于领域特定专家,并且通过后续的 RL 训练可以有效地消除性能差距
  • 混合 RL 训练(Mixed RL Training)
    • 对于 DeepSeek-V3.2,论文仍然采用 GRPO (DeepSeek-AI, 2025; 2024) 作为 RL 训练算法
    • 与 DeepSeek-V3.2-Exp 一样,将推理、智能体和对齐训练合并到一个 RL 阶段
    • 这种方法有效地平衡了不同领域的性能,同时避免了通常与多阶段训练范式相关的灾难性遗忘问题
    • 对于推理和智能体任务,论文采用基于规则的结果奖励、长度惩罚和语言一致性奖励
    • 对于通用任务,论文采用生成式奖励模型,其中每个 Prompt 都有其自己的评估准则(Rubrics RM?)

      For general tasks, we employ a generative reward model where each prompt has its own rubrics for evaluation

  • DeepSeek-V3.2 与 DeepSeek-V3.2-Speciale
    • DeepSeek-V3.2 整合了从专家蒸馏出的推理、智能体和对齐数据,并经过数千步的持续 RL 训练以到达最终 Checkpoint
    • 为了研究扩展 Thinking 的潜力,开发了一个实验性变体,DeepSeek-V3.2-Speciale
      • 该模型仅在 RL 期间长度惩罚降低的情况下,专门在推理数据上进行训练
      • 作者还整合了来自 DeepSeekMath-V2 (2025) 的数据集和奖励方法,以增强数学证明方面的能力
  • 作者重点强调:在第 3.1 节中介绍如何创建一个稳定的方案来扩大 RL 计算规模,以及在第 3.2 节中介绍如何将 Thinking 整合到智能体任务中的努力
  • 图 3:DeepSeek-V3.1-Terminus 和 DeepSeek-V3.2 在 H800 集群上的推理成本

Scaling GRPO

  • 首先回顾 GRPO 的目标
  • GRPO 通过最大化以下关于从旧策略 \(\pi_{\text{old} }\) 采样得到的一组响应 \(\{o_{1},\cdots,o_{G}\}\) 的目标函数来优化策略模型 \(\pi_{\theta}\),给定每个问题 \(q\):
    $$
    \mathcal{J}_{\text{GRPO} }(\theta) =\mathbb{E}_{q\sim P(Q),\{o_i\}_{i=1}^{G}\sim\pi_{\text{old} }(\cdot|q)}\Bigg[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|o_i|}\sum_{t=1}^{|o_i|}
    \min \left(r_{i,t}(\theta)\hat{A}_{i,t},\text{clip}\left(r_{i,t}(\theta),1-\varepsilon,1+\varepsilon\right)\hat{A}_{i,t}\right)-\beta\mathbb{D}_{\text{KL} }\left(\pi_{\theta}(o_{i,t})\parallel\pi_{\text{ref} }(o_{i,t})\right)\Bigg],
    $$
    • \(r_{i,t}(\theta)\) 是当前策略与旧策略之间的重要性采样比率:
      $$
      r_{i,t}(\theta)=\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\text{old} }(o_{i,t}|q,o_{i,<t})}
      $$
    • \(\varepsilon\) 和 \(\beta\) 是分别控制剪切范围和 KL 惩罚强度的超参数
    • \(\hat{A}_{i,t}\) 是 \(o_{i,t}\) 的优势,通过对组内的结果奖励进行归一化来估计
      • 使用一组奖励模型为组中的每个输出 \(o_i\) 评一个结果奖励 \(R_i\),分别得到 \(G\) 个奖励 \(R=\{R_1,\cdots,R_G\}\)
      • \(o_{i,t}\) 的优势通过从输出 \(o_i\) 的奖励中减去组的平均奖励来计算,即 \(\hat{A}_{i,t}=R_i-\text{mean}(R)\)
  • 论文接下来介绍了基于 GRPO 算法的额外更新策略,这些策略可以稳定 RL 的扩展
无偏 KL 估计(Unbiased KL Estimate):有趣的做法
  • 给定 \(o_{i,t}\) 是从旧策略 \(\pi_{\text{old} }(\cdot|q,o_{i,< t})\) 中采样的,这里校正 k3 估计器 (Schulman, 2020) 以使用当前策略 \(\pi_{\theta}\) 和旧策略 \(\pi_{\text{old} }\) 之间的重要性采样比率来获得无偏 KL 估计
    $$
    \mathbb{D}_{\text{KL} }\big(\pi_{\theta}(o_{i,t})\parallel\pi_{\text{ref} }(o_{i,t})\big)=\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\text{old} }(o_{i,t}|q,o_{i,<t})}\left(\frac{\pi_{\text{ref} }(o_{i,t}|q,o_{i,<t})}{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}-\log\frac{\pi_{\text{ref} }(o_{i,t}|q,o_{i,<t})}{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}-1\right).
    $$
  • 作为此调整的直接结果,该 KL 估计器的梯度变得无偏,从而消除了系统性估计误差,促进了稳定的收敛
  • 这与原始的 k3 估计器形成鲜明对比,特别是当采样到的 Token 在当前策略下的概率远低于参考策略时,即 \(\pi_{\theta}\ll\pi_{\text{ref} }\)
    • 在这种情况下,k3 估计器的梯度会分配不成比例的大且无界的权重来最大化这些 Token 的似然,从而导致噪声梯度更新,这些更新累积起来会降低后续迭代中的样本质量并导致不稳定的训练动态
  • 在实践中,论文发现不同领域受益于不同强度的 KL 正则化
  • 对于某些领域,例如数学应用相对较弱的 KL 惩罚甚至完全省略它都可以获得改进的性能
  • 详细推到证明见附录
Off-Policy Sequence Masking
  • 为了提高 RL 系统的效率,通常生成大量的 rollout 数据,随后将其分割成多个小批次用于若干次梯度更新步骤
    • 但这种做法本质上引入了离策略行为
  • 此外,用于高效数据生成的推理框架通常经过高度优化,其实现细节可能与训练框架不同
    • 这种训练-推理的不一致性进一步加剧了离策略的程度
  • 为了稳定训练并提高对离策略更新的容忍度,论文掩码那些引入显著策略分歧的负序列,其衡量标准是数据采样策略 \(\pi_{\text{old} }\) 与当前策略 \(\pi_{\theta}\) 之间的 KL 散度
  • 论文在 GRPO 损失中引入一个二元掩码 \(M\):
    $$
    \mathcal{J}_{\text{GRPO} }(\theta)=\mathbb{E}_{q\sim P(Q),\{o_i\}_{i=1}^{G}\sim\pi_{\text{old} }(\cdot|q)}\Bigg[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|o_i|}\sum_{t=1}^{|o_i|}
    \min \left(r_{i,t}(\theta)\hat{A}_{i,t},\text{clip}\left(r_{i,t}(\theta),1-\varepsilon,1+\varepsilon\right)\hat{A}_{i,t}\right)M_{i,t}-\beta\mathbb{D}_{\text{KL} }\left(\pi_{\theta}(o_{i,t})\parallel\pi_{\text{ref} }(o_{i,t})\right)\Bigg],
    $$
  • 其中
    $$
    M_{i,t}=\begin{cases}
    0 & \hat{A}_{i,t}<0,\frac{1}{|o_i|}\sum_{t=1}^{|o_i|}\log\frac{\pi_{\text{old} }(o_{i,t}|q,o_{i,<t})}{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}>\delta\
    1 & \text{otherwise},
    \end{cases}
    $$
  • \(\delta\) 是一个控制策略分歧阈值的超参数
  • 注意:这里的 \(\pi_{\text{old} }\) 表示推理框架直接返回的采样概率,因此旧策略与当前策略之间的 KL 散度考虑了上述两种离策略来源
  • 同样值得注意的是,论文只掩码具有负优势的序列
  • 直观地说,模型从自身错误中学习受益最大,而高度离策略的负样本可能是有害的,可能误导或破坏优化过程的稳定性
  • 论文通过经验观察到,这种离策略序列掩码操作改善了在某些原本会表现出不稳定性的训练场景中的稳定性
  • 理解:
    • 这个做法很常见,主要是当 \(A < 0\) 时,原始 PPO 的 Clip 机制无法限制 \(\frac{\pi_\theta}{\pi_{\theta_\text{old}}}\) 很大的情况
Keep Routing
  • 混合专家(MoE)模型通过在推理期间仅激活专家模块的子集来提高计算效率
  • 但推理和训练框架之间的差异,加上策略更新,可能导致即使对于相同的输入,在推理和训练期间也产生不一致的专家路由
    • 这种不一致性会引起活跃参数子空间的突然变化,从而破坏优化的稳定性并加剧离策略问题
  • 缓解这个问题的方案:
    • 作者保留了在推理框架中采样期间使用的专家路由路径 ,并在训练期间强制执行相同的路由路径确保优化相同的专家参数
    • 作者发现这种保持路由操作对于 MoE 模型的 RL 训练稳定性至关重要,并且自 DeepSeek-V3-0324 以来已在论文 RL 训练流程中采用
Keep Sampling Mask
  • Top-p 和 top-k 采样是广泛使用的采样策略,用于提高 LLM 生成的响应质量
  • 在 RL 训练中采用这些策略也是有益的,因为它避免了采样极低概率的 Token(理解:这就避免了使用这些 Token 用作优化目标)
  • 这种截断保持了样本质量,但它引入了 \(\pi_{\text{old} }\) 和 \(\pi_{\theta}\) 之间动作空间的不匹配
    • 这违反了重要性采样的原则并使训练不稳定
  • 解决这个问题的方案:
    • 作者在从 \(\pi_{\text{old} }\) 采样期间保留截断掩码,并在训练期间将它们应用于 \(\pi_{\theta}\),确保两种策略共享相同的动作子空间
  • 根据经验,作者发现将 top-p 采样与保持采样掩码策略结合使用可以有效保持 RL 训练期间的语言一致性

Thinking in Tool-Use

Thinking Context Management
  • DeepSeek-R1 已经证明,融入 Thinking 过程可以显著增强模型解决复杂问题的能力
    • 基于这一见解,作者的目标是将 Thinking 能力整合到工具调用场景中
  • 作者观察到,复制 DeepSeek-R1 的策略会导致显著的 Token 效率低下
    • 注:DeepSeek-R1 的策略是在第二轮消息到达时丢弃推理内容
    • 这种方法迫使模型在每次后续工具调用时为整个问题冗余地重新推理
  • 为了缓解这个问题,作者开发了如图 4 所示的、为工具调用场景严格定制的上下文管理:
    • 仅当对话中引入新的用户消息时,才会丢弃历史推理内容
      • 如果仅追加与工具相关的消息(例如,工具输出),则推理内容在整个交互过程中保留
    • 当推理痕迹被移除时,工具调用及其结果的历史记录仍保留在上下文中
  • 特别需要注意:某些智能体框架,例如 Roo Code 或 Terminus,通过用户消息模拟工具交互
    • 由于上述上下文管理规则,这些框架可能无法完全受益于论文增强的推理持久性
    • 因此,作者建议在此类架构中使用非 Thinking 模型以获得最佳性能
  • 图 4:工具调用场景中的 Thinking 保留机制
Cold-Start
  • 鉴于已有推理数据(非智能体)和非推理智能体数据的可用性,整合这两种能力的一个直接策略是通过精心设计的 Prompting
  • 论文假设模型具备足够的能力来准确遵循明确的指令,从而能够在推理过程中无缝整合工具执行
  • 为了演示冷启动机制的运作(operation),论文选择性地采样训练数据,如附录表 6-8 所示
    • 需要注意的是,不同的任务 Prompt 与不同的系统 Prompt 相关联
  • 表 6-8 展示了一个对应于竞赛编程(competitive programming) Prompt 的示例
    • 表 6 展示了论文推理数据的一个示例,其中使用系统 Prompt 明确要求模型在最终答案之前进行推理,并使用特殊标签 <think></think> 来标记推理路径
    • 表 7 展示了非推理智能体数据的 Prompt ,其中系统 Prompt 包含工具调用的指导
    • 表 8 展示了论文设计的系统 Prompt ,用于指导模型在其推理过程中整合多个工具调用
  • 通过这种方式,尽管工具使用模式中的推理可能缺乏鲁棒性 ,但模型偶尔能够生成期望的轨迹 ,从而为后续的强化学习阶段提供基础
Large-Scale Agentic Tasks
  • 多样化的 RL 任务对于增强模型的鲁棒性至关重要
  • 对于搜索、代码工程和代码解释等任务,论文使用现实世界的工具,包括实际的网络搜索 API、编码工具和 Jupyter Notebooks
    • 虽然这些 RL 环境是真实的,但所使用的 Prompt 要么从互联网来源提取,要么是合成生成的,而不是从真实的用户交互中获取
  • 对于其他任务,环境和 Prompt 都是合成的
  • 论文使用的智能体任务如表 1 所述
    • 表 1:不同智能体任务的描述,包括任务数量、环境类型(真实或合成)和 Prompt 来源(提取或合成)
Search Agent
  • 论文采用基于 DeepSeek-V3.2 的多智能体管道来生成多样化、高质量的训练数据
    • 从大规模网络语料库中跨不同领域采样信息丰富的长尾实体
    • (一个)问题构建智能体 使用可配置深度和广度参数的搜索工具探索每个实体,将发现的信息整合成问答对
    • 具有异构配置(不同 Checkpoint 、系统 Prompt 等)的 (多个)答案生成智能体 为每个提出的 QA 对生成不同的候选响应
    • 具有搜索能力的 一个验证智能体 通过多次轮询验证所有答案,只保留真实答案正确且所有候选答案均可验证为错误的样本
    • 这些数据涵盖多种语言、领域和难度级别
  • 为了补充这些可验证的样本并更好地反映现实世界的使用情况
    • 第一:用来自现有有帮助 RL 数据集的过滤实例来增强数据集,对于这些数据集,搜索工具提供了 measurable benefits
    • 第二:开发跨多个质量维度的详细评估准则(rubrics),并采用生成式奖励模型根据这些准则对响应进行评分
    • 这种混合方法使得能够同时针对事实可靠性和实际帮助性进行优化
Code Agent
  • 论文通过从 GitHub 挖掘数百万个 issue-Pull Request (PR) pairs,为软件问题解决构建了大规模、可执行的环境
  • 该数据集使用启发式规则和 LLM-based 判断进行了严格过滤,以确保高质量,要求每个条目包含合理的问题描述、相关的 Gold Patch 以及用于验证的测试补丁
  • 论文使用由 DeepSeek-V3.2 驱动的自动化环境设置智能体来为这些 pairs 构建可执行环境
    • 该智能体处理包安装、依赖项解决和测试执行
    • 测试结果以标准的 JUnit 格式输出,确保跨编程语言和测试框架的一致解析
  • 只有当应用 Gold Patch 后,满足下面的条件,才认为环境成功构建
    • non-zero count of false-to-positive(F2P)test cases(表明问题已修复)
      • 即 F2P 数量不为 0:即至少存在一个测试用例曾经失败的,使用 Gold Patch 后成功了
    • zero count of pass-to-fail(P2F)test cases(表明没有 regressions)
      • P2F 数量为 0:即没有测试用例曾经成功,使用 Gold Patch 后,失败了
  • 使用此管道,论文成功构建了数万个可重现的问题解决环境,涵盖多种编程语言,包括 Python、Java、JavaScript、TypeScript、C、C++、Go 和 PHP
Code Interpreter Agent
  • 利用 Jupyter Notebook 作为代码解释器来解决复杂的推理任务
  • 作者策划了一组涵盖数学、逻辑和数据科学的多样化问题,每个问题都需要模型利用代码执行能力来得出 Solution
通用智能体(General Agent)【这里的流程还需要再明确】
  • 为了在 RL 中扩大智能体环境和任务规模,作者用了一个自动环境合成智能体,它合成了 1827 个面向任务的环境

    • 这些任务难以解决但易于验证
    • 合成工作流程主要包括环境和工具集构建、任务合成以及 Solution 生成
  • 具体来说,工作流程如下

    • 1)给定一个任务类别(例如,规划旅行行程)和一个配备 bash 和搜索工具的沙盒,智能体首先使用这些工具从互联网生成或检索相关数据,并将它们存储在沙盒数据库中
    • 2)智能体合成一组特定于任务的工具每个工具都实现为一个函数
    • 3)为了创建既具有挑战性又可自动验证的任务 ,智能体做如下工作:
      • 首先:基于当前数据库 propose 一个简单任务,同时抽取这个任务的 Python 实现 Solution Function 和 Verification function
        • 对 Solution function 的要求:
          • 第一:这里的 Solution function 仅限于调用工具函数或执行逻辑计算,不能调用其他函数或直接访问数据库 ,确保只能通过工具接口(interface)解决问题
          • 第二:这个 Solution function 产生的结果必须由 Verification function 验证
        • 如果以上 Solution function 验证未通过,智能体将修改 Solution function 或 Verification function ,直到它产生的 Solution function 输出通过 Verification function 验证
      • 然后:智能体迭代地增加任务难度 ,并更新相应的 Solution function 和 Verification function
        • 在此迭代过程中,如果当前工具集不足以解决任务,智能体将扩展工具集
          • 问题:扩展的依据是什么?何时扩展?
      • 问题:是针对同一个问题,逐步提升任务难度?还是针对不同难度的问题,先解决简单问题,再解决复杂问题?
  • 遵循此工作流程,获得了数千个 <环境, 工具, 任务, 验证器>(<environment, tools, task, verifier>) 元组

    • 理解:这里的 <environment, tools, task, verifier> 是匹配对齐的,在这个环境 envirnoment 下,用这些工具 tools 能解决的任务 task 和 可以验证该 任务是否成功的验证器 verifier
  • 然后使用 DeepSeek-V3.2 在该数据集上执行 RL,并仅保留 pass@100 非 0 的实例,最终得到 1827 个环境及其相应的任务(共 4417 个)

  • 下面展示了一个合成的行程规划示例

  • 示例说明:此示例强调,虽然为满足所有约束的行程计划搜索大型组合空间具有挑战性,但检查给定的候选 Solution 是否满足这些约束则相对简单

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    **合成任务示例:行程规划(An Example of Synthesized Task: Trip Planning)**
    我正在计划从杭州开始的三天旅行,需要帮助创建 2025 年 10 月 1 日至 10 月 3 日的行程。
    一些重要要求:在整个旅行中,我不想重复任何城市、酒店、景点或餐厅。
    另外,请确保你推荐的每家酒店、餐厅和景点实际上都位于我当天将要入住的城市。
    关于第二天还有一件事——我正在试图精明地控制预算。如果我最终预订了每晚 800 元人民币或更贵的豪华酒店,那么我需要更加谨慎地控制其他开支:
    我在两家餐厅(午餐和晚餐)的总消费应保持在 350 元人民币以下,两家餐厅的评分至少应为 4.0 星,并且下午景点的门票需要低于 120 元人民币。
    如果第 2 天的酒店属于中高端范围(500-800 元人民币),那么我有更多的灵活性——我只需要确保我选择的至少一家餐厅评分在 4.0 或更高,并且景点门票应低于 180 元人民币。
    对于更经济实惠的酒店(200-500 元人民币范围),我只需要确保至少一家餐厅的评分在 3.2 或以上。你能帮我制定这个行程吗?

    **提交结果格式(Submit Result Format)**
    ```json
    [
    {"time": "2025-10-01", "city": "city_name", "hotel": "hotel_name", "afternoon_restaurant": "restaurant_name", "afternoon_attraction": "attraction_name", "evening_restaurant": "restaurant_name"},
    {"time": "2025-10-02", "city": "city_name", "hotel": "hotel_name", "afternoon_restaurant": "restaurant_name", "afternoon_attraction": "attraction_name", "evening_restaurant": "restaurant_name"},
    {"time": "2025-10-03", "city": "city_name", "hotel": "hotel_name", "afternoon_restaurant": "restaurant_name", "afternoon_attraction": "attraction_name", "evening_restaurant": "restaurant_name"}
    ]

    行程规划工具集(Tool Set for Trip Planning)

    函数名称 描述
    get_all_attractions_by_city(city) 获取给定城市的所有景点
    get_all_cities() 从数据库获取所有城市
    get_all_hotels_by_city(city) 获取给定城市的所有酒店
    get_all_restaurants_by_city(city) 获取给定城市的所有餐厅
    get_city_by_attraction(attraction) 获取给定景点名称的城市
    get_city_by_hotel(hotel) 获取给定酒店名称的城市
    get_city_by_restaurant(restaurant) 获取给定餐厅名称的城市
    get_city_transport(city) 获取给定城市的所有市内交通选项
    get_infos_by_attraction(info_keywords, attraction) 获取给定景点的指定信息
    get_infos_by_city(info_keywords, city) 获取给定城市的指定信息
    get_infos_by_hotel(info_keywords, hotel) 获取给定酒店的指定信息
    get_infos_by_restaurant(info_keywords, restaurant) 获取给定餐厅的指定信息
    get_inter_city_transport(from_city, to_city) 获取给定城市对之间的所有交通方式
    get_weather_by_city_date(city, date) 获取给定城市-日期对的天气
    submit_result(answer_text) 提交最终答案内容

Evaluation

Main Results

  • 作者在多个 Benchmark 上进行了评估,包括:
    • MMLU-Pro (2024)
    • GPQA Diamond (2023)
    • Human Last Exam (HLE) Text-only (2025)
    • LiveCodeBench (2024.08-2025.04)
    • Codeforces
    • Aider-Polyglot
    • AIME 2025
    • HMMT Feb 2025
    • HMMT Nov 2025 (2025)
    • IMOAnswerBench (2025)
    • Terminal Bench 2.0
    • SWE-Verified (OpenAI, 2024b)
    • SWE Multilingual (2025)
    • BrowseComp (2025)
    • BrowseCompZh (2025)
    • \(\tau^{2}\)-bench (2025)
    • MCP-Universe (2025)
    • MCP-Mark (EvalSys, 2025)
    • Tool-Decathlon (2025)
  • 评估说明及结果:
    • 工具使用基准使用标准函数调用格式进行评估,其中模型配置为思考模式
    • MCP-Universe (2025) 和 MCP-Mark (EvalSys, 2025),使用内部环境评估所有模型
      • 因为搜索和 playwright 环境可能与官方设置略有不同
    • 论文中,将温度设置为 1.0,上下文窗口设置为 128K tokens
    • 对于数学相关任务,如 AIME, HMMT, IMOAnswerBench 和 HLE(理解:其实 HLE 中不全是数学):
      • 论文使用以下模板进行评估:"{question}\n Please reason step by step, and put your final answer within \boxed{}"
        • 理解:这是一个业内目前常用的 Thinking 模板
      • 注:对于 HLE,论文还使用官方模板评估了 DeepSeek-V3.2-Thinking,得分为 23.9
  • 在推理任务上(reasoning tasks):
    • DeepSeek-V3.2 与 GPT-5-high 表现相当,略逊于 Gemini-3.0-Pro
    • 与 K2-Thinking 相比,DeepSeek-V3.2 以显著更少的输出 token 获得了相似的分数,如表 3 所示
    • 这些性能提升可归因于分配给 RL 训练的计算资源增加
      • 在最近几个月,作者观察到性能的持续改进与 RL 训练预算的延长相关,该预算已超过预训练成本的 \(10%\)
      • 作者假设额外的计算预算分配可以进一步增强推理能力
      • 论文呈现的 DeepSeek-V3.2 性能受到长度约束奖励模型的限制;在移除该限制后,论文观察到模型性能的进一步提升,详见第 4.2 节
  • 在代码智能体任务中(code agent evaluations):
    • DeepSeek-V3.2 在 SWE-bench Verified 和 Terminal Bench 2.0 上均显著优于开源 LLM
      • 展示了 DeepSeek-V3.2 在现实世界编码工作流程中的潜力
    • 关于 Terminal Bench 2.0 的特别说明
      • (如前所述)作者为 “思考模式(thinking mode)” 设计的上下文管理策略目前与 Terminus 不兼容;
      • 因此,报告的 46.4 分是使用 Claude Code 框架实现的
      • 作者也使用 Terminus 在非思考模式(non-thinking mode)下评估了 DeepSeek-V3.2,得分为 39.3
    • 对于 SWE-bench Verified,主要得分是使用 DeepSeek 的内部框架获得的
      • 在其他设置(包括 Claude Code 和 RooCode 框架,以及非思考模式)下的鲁棒性测试产生了一致的结果,范围在 72 到 74 之间
  • 对于搜索智能体评估(search agent evaluation)
    • 论文使用标准的商业搜索 API 评估论文的模型
    • 由于 DeepSeek-V3.2 最大仅支持 128K 的上下文长度,大约 \(20%\) 以上的测试用例超过此限制
      • 为了解决这个问题,作者采用了一种上下文管理方法来获得最终分数
      • 注:不使用上下文管理的分数是 51.4
    • 更多细节在第 4.4 节提供
  • 在工具使用基准上(tool-use benchmarks):
    • DeepSeek-V3.2 显著缩小了 open-source 与 closed-source LLM 之间的性能差距,但仍低于 frontier 模型
    • 对于 \(\tau^{2}\)-bench
      • 作者使用模型本身作为 User Agent,获得的最终类别分数为 63.8 (Airline), 81.1 (Retail), and 96.2 (Telecom)
    • 对于 MCP 基准
      • 作者使用函数调用格式,并将工具输出放在标记为 ‘tool’ 角色的消息中,而不是 ‘user’ 角色
      • 在论文的测试中,作者观察到 DeepSeek-V3.2 经常进行冗余的自我验证,生成了过长的轨迹
        • 这种倾向通常导致上下文长度超过 128K 的限制,特别是在诸如 MCP-Mark GitHub 和 Playwright 评估等任务中
          • 因此,这种现象阻碍了 DeepSeek-V3.2 的最终性能
        • 但集成上下文管理策略可以进一步提高性能
          • 论文将此确定为未来工作的方向和对用户的实用考虑
        • 即使 DeepSeek-V3.2 存在此问题,它仍然显著优于现有的开源模型
      • Notably,由于这些基准中使用的环境和工具集在 RL 训练期间未遇到过 ,观察到的改进证明了 DeepSeek-V3.2 将其推理策略泛化到领域外智能体场景的能力
        • 非思考模型在智能体场景中的评估见附录表 9

Results of DeepSeek-V3.2-Speciale

  • 表 3 表明,DeepSeek-V3.2-Speciale 通过利用增加的推理 token 获得了卓越的性能,在多个基准上超越了最先进的 Gemini-3.0-Pro
  • Remarkably,如表 4 所示
    • DeepSeek-V3.2-Speciale 这个通用模型在 2025 年国际信息学奥林匹克竞赛(IOI)和 ICPC 世界总决赛(ICPC WF)中达到了金牌级别的性能,而无需针对性的训练
    • Furthermore,通过结合 Shao 等人 (2025) 的技术,DeepSeek-V3.2-Speciale 模型在复杂的证明任务中表现出色,达到了 2025 年国际数学奥林匹克竞赛(IMO)和中国数学奥林匹克竞赛(CMO)的金牌门槛\(^5\)
    • 详细的评估协议在附录 D 中提供
  • However,DeepSeek-V3.2-Speciale 的 token 效率仍然显著低于 Gemini-3.0-Pro
    • 为了降低部署成本和延迟,作者在官方 DeepSeek-V3.2 的训练中施加了更严格的 token 约束,旨在优化性能与成本之间的权衡
    • 作者认为 token 效率仍然是未来研究的一个关键领域

Synthesis Agentic Tasks

  • 在本节中,作者进行消融实验来研究合成智能体任务的效果
  • 论文关注两个问题
    • 第一:合成任务对强化学习来说是否足够具有挑战性?
    • 第二:这些合成任务的泛化能力如何,即它们能否迁移到不同的下游任务或现实世界环境?
  • 为了回答第一个问题,作者从通用合成智能体任务中随机抽取 50 个实例,并评估用于合成的模型和 frontier closed-source LLM
  • 如表 5 所示,DeepSeek-V3.2-Exp 的准确率仅为 12%,而 frontier closed-source 模型的准确率最多为 62%
    • 这些结果表明,合成数据包含了对 DeepSeek-V3.2-Exp 和 frontier closed-source 模型都具有挑战性的智能体任务
  • 为了研究合成数据上的 RL 能否泛化到不同的任务或现实世界环境
    • 作者对 DeepSeek-V3.2 的 SFT Checkpoint(记为 DeepSeek-V3.2-SFT)应用 RL
  • 为了排除长 Thinking 链和其他 RL 数据的影响
    • 作者仅在非思考模式下对合成智能体任务进行 RL
  • 作者将上述模型与 DeepSeek-V3.2-SFT 和 DeepSeek-V3.2-Exp 进行比较
    • 其中 DeepSeek-V3.2-Exp 仅在搜索和代码环境中进行了 RL 训练(即不包含 合成数据)
    • DeepSeek-V3.2-SFT 则未经过任何 RL 训练
  • 如图 5 所示,在合成数据上进行大规模 RL 在 Tau2Bench、MCP-Mark 和 MCP-Universe 基准上相比 DeepSeek-V3.2-SFT 带来了显著的改进
    • 相比之下,将 RL 限制在代码和搜索场景并未改善这些基准上的性能,进一步凸显了合成数据的潜力

Context Management of Search Agent

  • 即使使用扩展的上下文窗口(如 128k),智能体工作流,特别是在基于搜索的场景中,也经常会遇到最大长度限制,从而过早地截断推理过程
    • 这个瓶颈抑制了测试时计算潜力的充分发挥
  • 为了解决这个问题,当 token 使用量超过上下文窗口长度的 80% 时,作者引入了上下文管理,采用简单的策略在测试时扩展 token 预算
  • 这些策略包括:
    • (1) 总结 (Summary) :总结溢出的轨迹并重新启动 rollout;
    • (2) 丢弃-75% (Discard-75%) :丢弃轨迹中前 75% 的工具调用历史以释放空间;
    • (3) 全部丢弃 (Discard-all) :通过丢弃之前所有工具调用历史来重置上下文(类似于新的上下文工具 Anthropic (2025a))
  • 为了比较,论文还实现了一个并行扩展基线:
    • 并行最少步骤 (Parallel-fewest-step) :采样 N 个独立的轨迹并选择步骤最少的轨迹
  • 论文在 BrowseComp 基准 (2025) 上评估这些策略
  • 如图 6 所示:
    • 在不同的计算预算下,上下文管理通过允许模型扩展测试时计算、提供更多空间来执行额外的执行步骤,从而带来显著的性能提升
    • Summary 将平均步骤从 140 扩展到 364,将性能从 53.4 提高到 60.2;但其整体效率相对较低
    • 尽管 Discard-all 很简单,但它在效率和可扩展性方面都表现良好,达到了 67.6 分,与并行扩展相当,同时使用的步骤显著更少
  • In summary:
    • 测试时计算可以通过上下文管理串行扩展,也可以并行扩展,两者都能有效扩展模型的问题解决能力
    • 但不同的策略表现出不同的效率和可扩展性
      • Thus,在对模型性能进行基准测试时,考虑实际的计算成本至关重要
      • Meanwhile,寻找串行和并行扩展的最佳组合以最大化效率和可扩展性,仍然是未来工作的一个关键方向

Conclusion, Limitation, and Future Work

  • 论文介绍了 DeepSeek-V3.2,有效弥合计算效率与高级推理能力之间差距
  • DeepSeek-V3.2 使用 DSA 解决了关键的计算复杂性,同时没有牺牲长上下文性能
  • (通过增加计算预算)DeepSeek-V3.2 在推理基准上实现了与 GPT-5 相当的性能
  • 论文的大规模智能体任务合成 Pipeline 的集成显著提高了工具使用熟练度,为具有开放 LLM 的鲁棒和可泛化的人工智能智能体开启了新的可能性
  • 高计算变体 DeepSeek-V3.2-Speciale,通过在 IMO 和 IOI 中获得的金牌成就得到了验证,为开放 LLM 树立了一个里程碑
  • 尽管取得了这些成就,与诸如 Gemini-3.0-Pro 这样的 frontier closed-source 模型相比,作者承认存在某些局限性
    • 第一:由于总训练 FLOPs 较少,DeepSeek-V3.2 的世界知识的广度仍然落后于领先的专有模型
      • 论文计划在未来的迭代中通过扩大预训练计算来解决这一知识差距
    • 第二:token 效率仍然是一个挑战;
      • DeepSeek-V3.2 通常需要更长的生成轨迹(即更多 token)来匹配像 Gemini-3.0-Pro 这样的模型的输出质量
      • 未来的工作将侧重于优化模型推理链的智能密度以提高效率
    • 第三,解决复杂任务的能力仍然不如前沿模型,作者将进一步改进论文的基础模型和后训练方案

附录 A: MLA 的 MHA 与 MQA 模式

  • 图 7:MLA 的 MHA 和 MQA 模式示意图
    • 对于 DeepSeek-V3.1-Terminus,训练和前填充时使用 MHA 模式,解码时使用 MQA 模式
    • 图 7 展示了 MLA 的两个方面(MHA 和 MQA 模式)以及它们之间的转换

附录 B:冷启动模板

  • 表 6: 推理数据系统 Prompt 示例。系统 Prompt 要求模型在 <think></think> 标签中输出推理过程
  • 表 7:[工具描述][工具调用格式] 将被替换为具体的工具和论文设计的工具调用格式
  • 表 8:模型在 Thinking 过程中执行工具调用

附录 C:non-thinking mode DeepSeek-V3.2 智能体能力评估

  • 表 9:DeepSeek-V3.2 非思考模式与思考模式对比
    • 表中的终端测试台分数使用 Claude Code 框架评估
    • 使用 Terminus 框架的非思考模式终端测试台 2.0 分数为 39.3
  • 非思考模式的性能略逊于思考模式,但仍然具有竞争力

附录 D:IOI、ICPC 世界总决赛、IMO 及 CMO 的评估方法

  • 对于所有竞赛:
    • 模型的最大生成长度设置为 128k
    • 不使用任何工具或互联网访问,测试严格遵守竞赛的时间和尝试限制
  • 对于 IOI 评估
    • 作者根据官方竞赛规则设计了提交策略,规则允许每道题最多提交 50 次,并根据在所有子任务中获得的最高分对每次提交进行评分
    • 具体来说:
      • 首先为每道题采样 500 个候选 Solution,然后应用一个多阶段过滤流程
      • 在初始阶段,剔除未能通过提供的样例测试用例或超出长度限制的无效提交
      • 随后,使用 DeepSeek-V3.2-Exp 模型来识别并剔除那些模型明确表示无法或拒绝解决问题的样本
      • 从剩余的有效候选方案中,论文选择具有最长 Thinking 轨迹的 50 个样本进行最终提交
  • 对于 ICPC 评估
    • 作者采用了相同的过滤方法,但初始采样规模较小
    • 论文为每道题生成 32 个候选 Solution ,并应用相同的过滤标准来选择提交
  • 在 IMO 和 CMO 任务中
    • 作者采用 generate-verify-refine 的循环
    • 模型迭代地改进其 Solution ,直到获得完美的自我评估或达到最大修订上限,此过程与 Shao 等人 (2025) 的方法相同

附录:Unbiased KL Estimate 的推导

Background :带 KL 约束的强化学习目标

  • 考虑 LLM 强化学习中的一般目标函数:
    $$
    J_{\text{RL} }(\theta; x) = \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ r(x, y) \right] - \beta \cdot D_{\mathrm{KL} }\left[ \pi_\theta(\cdot|x) \parallel \pi_{\theta_0}(\cdot|x) \right]
    $$
  • 其中:
    • \(x\) 是输入(如 prompt)
    • \(y = (y_1, \dots, y_T)\) 是模型生成的 token 序列
    • \(r(x, y)\) 是 reward
    • \(\pi_{\theta_0}\) 是参考策略(通常为初始策略或 SFT 模型)
    • \(\beta\) 是 KL 正则化系数

自回归模型下的 KL 散度展开

  • 由于语言模型是自回归的,有:
    $$
    \pi_\theta(y|x) = \prod_{t=1}^T \pi_\theta(y_t|x, y_{ < t})
    $$
  • 因此 KL 散度可写为:
    $$
    \begin{align}
    D_{\mathrm{KL} }[\pi_\theta(y|x) \parallel \pi_{\theta_0}(y|x)]
    &= \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ \sum_{t=1}^T \log \frac{\pi_\theta(y_t|x, y_{ < t})}{\pi_{\theta_0}(y_t|x, y_{ < t})} \right] \\
    &= \sum_{t=1}^T \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ \log \frac{\pi_\theta(y_t|x, y_{ < t})}{\pi_{\theta_0}(y_t|x, y_{ < t})} \right] \quad \text{交换期望与求和顺序}
    \end{align}
    $$
  • 注意到内部只依赖于 \(y_{\le t}\),而期望是对整个序列 \(y\) 的,所以可以利用全概率公式(联合概率密度分解成 \(< t\) 的部分和 \(t\) 本身),于是可以将期望分解为:
    $$
    \mathbb{E}_{y \sim \pi_\theta(\cdot|x)}\left[ \log \frac{\pi_\theta(y_t|x, y_{ < t})}{\pi_{\theta_0}(y_t|x, y_{ < t})} \right]
    = \mathbb{E}_{y_{ < t} \sim \pi_\theta(\cdot|x)} \left[ \mathbb{E}_{y_t \sim \pi_\theta(\cdot|x, y_{ < t})} \left[ \log \frac{\pi_\theta(y_t|x, y_{ < t})}{\pi_{\theta_0}(y_t|x, y_{ < t})} \right] \right]
    $$
  • 上面中括号里面的内容可以转换成 KL 散度的形式:
    $$
    \mathbb{E}_{y_t \sim \pi_\theta(\cdot|x, y_{ < t})} \left[ \log \frac{\pi_\theta(y_t|x, y_{ < t})}{\pi_{\theta_0}(y_t|x, y_{ < t})} \right] = D_{\mathrm{KL} }\big( \pi_\theta(\cdot|x, y_{ < t}) \parallel \pi_{\theta_0}(\cdot|x, y_{ < t}) \big)
    $$
  • 于是第 \(t\) 项变为:
    $$
    \text{Term}_t = \mathbb{E}_{y_{ < t} \sim \pi_\theta(\cdot|x)} \left[ D_{\mathrm{KL} }\big( \pi_\theta(\cdot|x, y_{ < t}) \parallel \pi_{\theta_0}(\cdot|x, y_{ < t}) \big) \right]
    $$
  • 最终得到:
    $$
    \begin{align}
    D_{\mathrm{KL} }[\pi_\theta(y|x) \parallel \pi_{\theta_0}(y|x)]
    &= \sum_{t=1}^T \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ D_{\mathrm{KL} }\big( \pi_\theta(\cdot|x, y_{ < t}) \parallel \pi_{\theta_0}(\cdot|x, y_{ < t}) \big) \right] \\
    &= \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ \sum_{t=1}^T D_{\mathrm{KL} }\big( \pi_\theta(\cdot|x, y_{ < t}) \parallel \pi_{\theta_0}(\cdot|x, y_{ < t}) \big) \right] \quad \text{交换期望与求和顺序}
    \end{align}
    $$

引入旧策略采样(重要性采样)

  • 在实际训练中(如 PPO、GRPO),我们无法直接从当前策略 \(\pi_\theta\) 采样(因为参数正在更新),而是从旧策略 \(\pi_{\theta_{\text{old} } }\) 采样轨迹 \(\{o_i\}_{i=1}^G\)
  • 因此,目标函数需通过重要性采样重写,对于任意函数 \(f(y)\),有:
    $$
    \mathbb{E}_{y \sim \pi_\theta(\cdot|x)}[f(y)]
    = \mathbb{E}_{y \sim \pi_{\theta_{\text{old} } }(\cdot|x)} \left[ \frac{\pi_\theta(y|x)}{\pi_{\theta_{\text{old} } }(y|x)} f(y) \right]
    $$
  • 对自回归模型,重要性权重可分解为 token-level 的形式:
    $$
    \frac{\pi_\theta(y|x)}{\pi_{\theta_{\text{old} } }(y|x)} = \prod_{t=1}^T \frac{\pi_\theta(y_t|x, y_{ < t})}{\pi_{\theta_{\text{old} } }(y_t|x, y_{ < t})}
    $$
  • 但在 PPO/GRPO 实践中,常采用 token-level importance weight,即每一步单独加权(而非整句),这是工程上的近似但有效
  • 进一步理解:这里的 Token-level 重要性权重本是不能拆开的,必须乘起来才能做到在数学上等价?

将 KL 项放入采样期望内(关键步骤)

  • 原目标:
    $$
    J_{\text{RL} }(\theta;x) = \mathbb{E}_{y\sim\pi_\theta}[r(x,y)] - \beta \cdot \mathbb{E}_{y\sim\pi_\theta} \left[ \sum_{t=1}^T D_{\mathrm{KL},t} \right]
    $$
  • 其中
    $$ D_{\mathrm{KL},t} = D_{\mathrm{KL} }\big( \pi_\theta(\cdot|x, y_{ < t}) \parallel \pi_{\text{ref} }(\cdot|x, y_{ < t}) \big) $$
  • 将奖励和 KL 散度合并为单个期望:
    $$
    J_{\text{RL} }(\theta;x) = \mathbb{E}_{y\sim\pi_\theta} \left[ r(x,y) - \beta \sum_{t=1}^T D_{\mathrm{KL},t} \right]
    $$
  • 现在用 \(\pi_{\theta_{\text{old} } }\) 采样,应用重要性采样:
    $$
    \begin{align}
    J_{\text{RL} }(\theta;x)
    &= \mathbb{E}_{y\sim\pi_{\theta_{\text{old} } } } \left[ \frac{\pi_\theta(y|x)}{\pi_{\theta_{\text{old} } }(y|x)} \left( r(x,y) - \beta \sum_{t=1}^T D_{\mathrm{KL},t} \right) \right] \\
    &= \mathbb{E}_{y\sim\pi_{\theta_{\text{old} } } } \left[ \frac{\pi_\theta(y|x)}{\pi_{\theta_{\text{old} } }(y|x)} \left( r(x,y) - \beta \sum_{t=1}^T D_{\mathrm{KL} }\big( \pi_\theta(\cdot|x, y_{ < t}) \parallel \pi_{\text{ref} }(\cdot|x, y_{ < t}) \big) \right) \right]
    \end{align}
    $$
    • 注:这里的 KL 本身依赖于 \(\pi_\theta\),重要性权重也依赖 \(\pi_\theta\)
  • 至此,可以看出,当 \(y \sim \pi_{\theta_\text{old}}\) 采样时,重要性权重需要同时对奖励 \(r(x,y)\) 和 KL 散度 \(\sum_{t=1}^T D_{\mathrm{KL} }\big( \pi_\theta(\cdot|x, y_{ < t}) \parallel \pi_{\text{ref} }(\cdot|x, y_{ < t}) \big)\) 进行修正才对

补充分析:k3 估计下的 Token-Level 无偏 KL 估计(DeepSeek-V3.2 的做法)

  • 上述的结果还是按照序列粒度评估的,单独考虑 KL 散度时,其实可以按照 Token-level 来考量
    • DeepSeek-V3.2 将 KL 项就是按照 token 分解,并对每个 token 的 KL 使用对应的重要性权重
  • 回忆 k3 估计(一种 KL 的无偏估计器):
    $$
    \begin{align}
    D_{\mathrm{KL} }[\pi_\theta \parallel \pi_{\text{ref} }] &\approx \frac{\pi_{\text{ref} }(a)}{\pi_\theta(a)} - \log \frac{\pi_{\text{ref} }(a)}{\pi_\theta(a)} - 1 \\
    &= \text{k3}
    \end{align}
    $$
    • 性质:对以上 k3 估计求 \(a \sim \pi_\theta\) 下的期望,满足
      $$ \mathbb{E}_{a \sim \pi_\theta}[\text{k3}] = D_{\mathrm{KL} }[\pi_\theta \parallel \pi_{\text{ref} }]$$
  • 但在 GRPO 中,样本是从 \(\pi_{\theta_{\text{old} } }\) 采的,所以要估计:
    $$
    \mathbb{E}_{a \sim \pi_\theta} [\text{k3}] = \mathbb{E}_{a \sim \pi_{\theta_{\text{old} } } } \left[ \frac{\pi_\theta(a)}{\pi_{\theta_{\text{old} } }(a)} \text{k3} \right]
    $$
  • 但若直接用 \(\pi_{\theta_{\text{old} } }\) 采样而不加权,则估计有偏;无偏估计应为:
    $$
    \begin{align}
    \widehat{D}_{\mathrm{KL} }^{\text{unbiased} }
    &= \frac{\pi_\theta(a)}{\pi_{\theta_{\text{old} } }(a)} \left( \frac{\pi_{\text{ref} }(a)}{\pi_\theta(a)} - \log \frac{\pi_{\text{ref} }(a)}{\pi_\theta(a)} - 1 \right) \\
    &= \frac{\pi_{\text{ref} }(a)}{\pi_{\theta_{\text{old} } }(a)} - \frac{\pi_\theta(a)}{\pi_{\theta_{\text{old} } }(a)} \log \frac{\pi_{\text{ref} }(a)}{\pi_\theta(a)} - \frac{\pi_\theta(a)}{\pi_{\theta_{\text{old} } }(a)}
    \end{align}
    $$
  • 但 DeepSeek 保留原始 k3 形式并乘以重要性权重:
    $$
    D_{\mathrm{KL} }[\pi_\theta \parallel \pi_{\text{ref} }]
    \approx \frac{\pi_\theta(o_{i,t} | q, o_{i,<t})}{\pi_{\theta_{\text{old} } }(o_{i,t} | q, o_{i,<t})} \left(\frac{\pi_{\text{ref} }(o_{i,t} | q, o_{i,<t})}{\pi_\theta(o_{i,t} | q, o_{i,<t})} - \log \frac{\pi_{\text{ref} }(o_{i,t} | q, o_{i,<t})}{\pi_\theta(o_{i,t} | q, o_{i,<t})} - 1 \right)
    $$
    • 这就是 DeepSeek-V3.2 文章中提到的 Unbiased KL Estimate
无偏性反向证明
  • 上面是正向推导形式,为了方便理解,其实也可以反向证明无偏性
  • 记重要性权重为:
    $$
    r_{i,t} = \frac{\pi_\theta(o_{i,t} | q, o_{i,<t})}{\pi_{\theta_{\text{old} } }(o_{i,t} | q, o_{i,<t})}
    $$
  • 则有:
    $$
    \mathcal{L}_{\text{KL} }^{\text{unbiased} }
    = r_{i,t} \left( \frac{\pi_{\text{ref} } }{\pi_\theta} - \log \frac{\pi_{\text{ref} } }{\pi_\theta} - 1 \right)
    $$
  • 其期望满足:
    $$
    \begin{align}
    \mathbb{E}_{o_{i,t} \sim \pi_{\theta_{\text{old} } } } \left[ \mathcal{L}_{\text{KL} }^{\text{unbiased} } \right]
    &= \mathbb{E}_{o_{i,t} \sim \pi_\theta} \left[ \frac{\pi_{\text{ref} } }{\pi_\theta} - \log \frac{\pi_{\text{ref} } }{\pi_\theta} - 1 \right] \\
    &= \mathbb{E}_{o_{i,t} \sim \pi_\theta} \left[ \text{k3} \right] \\
    &= D_{\mathrm{KL} }[\pi_\theta \parallel \pi_{\text{ref} }] \\
    \end{align}
    $$
    • 因此,DeepSeek-V3.2 文章中提到的 Unbiased KL Estimate 估计形式是无偏的

一些思考

  • DeepSeek-V3.2 的 Unbiased KL Estimate 的核心思想是:
    • 将 KL 散度项视为 reward 的一部分,并对其应用与 policy gradient 相同的重要性采样权重,从而保证 KL 梯度的无偏性
  • 最终,在 GRPO 目标函数中,KL 项变为:
    $$
    -\beta \cdot \frac{1}{G} \sum_{i=1}^G \frac{1}{ o_i } \sum_{t=1}^{ o_i }
    \underbrace{\frac{\pi_\theta(o_{i,t} | q, o_{i,<t})}{\pi_{\theta_{\text{old} } }(o_{i,t} | q, o_{i,<t})} \left(\frac{\pi_{\text{ref} }(o_{i,t} | q, o_{i,<t})}{\pi_\theta(o_{i,t} | q, o_{i,<t})} - \log \frac{\pi_{\text{ref} }(o_{i,t} | q, o_{i,<t})}{\pi_\theta(o_{i,t} | q, o_{i,<t})} - 1\right)}_{\text{Unbiased KL Estimate} }
    $$
  • 这使得整个目标函数的梯度在使用旧策略采样时仍保持对真实 KL 的无偏估计,提升了训练稳定性与效果
  • 这种做法比之前的一些丢弃 KL 散度的方法更好,但是否比改变形式的方法更好?