Nemotron-Cascade 级联强化学习
2025-12-27
DL论文
00

目录

🏆 关键成果
3. Supervised Fine-Tuning
3.1. Training Framework
3.2 对话模板
3.3 sft数据
通用领域数据
数学推理数据
代码推理数据
科学推理数据
工具调用数据
4. Cascade RL
4.1. 训练框架
1. 什么是on-policy机制
2. 去KL化是什么意思
3. 序列级奖励 + Token级优化
4. 组内标准化
5. 最终目标
4.2. Reward Modeling
RLHF的训练数据对
Training Recipe
RM evaluation
Ablation studies on RM
4.3 基于人类反馈的强化学习(RLHF)
4.4 Instruction-Following Reinforcement Learning (IF-RL)
4.5 数学强化学习
4.6. Code RL
4.7 软件工程强化学习(SWE RL)
6. Deep Dive on RLHF
5.2
6.3 稳定RLHF训练的实用技巧
8.1 Reinforcement Learning for LLMs
8.2 Supervised Fine-Tuning and Distillation
1. 监督微调(Supervised Fine-Tuning, SFT)的定位
2. 知识蒸馏(Distillation):从大模型到小模型的迁移
3. SFT与RL的协同作用

https://arxiv.org/pdf/2512.13607

https://huggingface.co/collections/nvidia/nemotron-cascade

本文提出了“级联分域强化学习”方法,通过分阶段、分领域的强化学习训练流程,解决了异构推理任务混合训练效率低下的难题,从而训出了在编程竞赛中达到国际银牌水平的14B通用推理模型。

看这图,几个阶段训练,准确率最终没低:

image.png

🏆 关键成果

  1. SOTA 性能

    • 提出的 Nemotron-Cascade-14B 在多项基准(如 LiveCodeBench)上超越包括 Gemini-2.5-Pro、GPT-4.5 等在内的主流大模型。
    • IOI 2025 中达到银牌水平。
  2. 统一推理模型突破

    • 构建 Nemotron-Cascade-8B 统一模型,支持用户在对话中自由切换思考/非思考模式
    • 成功弥合了统一模型与专用思考模型间的性能差距,证明了小模型亦能兼容多模式学习。
  3. 技术透明与开源

    • 公开完整训练配方、数据与模型权重,促进社区复现与研究。

训练过程:

image.png

这篇论文统一了think和nothink的模型到一个模型身上去:我们表明,一个统一的推理模型可以在思考和非常想模式中有效运行,在确保通过开放数据和训练配方实现透明性的同时,缩小了与专用思考模型之间的推理差距。

3. Supervised Fine-Tuning

3.1. Training Framework

多阶段监督微调

第一阶段:本阶段包含通用领域数据以及数学、科学和代码推理数据,最大序列长度为 16K 词元。对于通用领域数据,每个提示包含思考模式和非思考模式的并行回复,而数学、科学和代码数据仅包含思考模式的回复。训练执行 1 个轮次。

第二阶段:本阶段通过更长的回复进一步增强模型的推理能力,并使其具备工具使用和软件工程技能。为此,我们将通用领域数据与新的第二阶段数学、科学和代码推理数据,以及工具使用和软件工程数据集重新组合。除通用领域数据外,所有其他领域仅包含思考模式的回复。训练执行 1 个轮次。

image.png

3.2 对话模板

模型的交互模式,这对于我们支持思考和非思考两种生成模式的统一推理模型尤为重要。我们采用标准的 ChatML 模板,并在用户提示中引入了两个控制标志 /think和 /no_think,用于明确指示模型以相应的模式生成回复。

Qwen3 采用了一种冗余机制,支持通过显式标志或通过 enable_thinking参数修改模板这两种方式进行模式切换。我们的早期实验表明,显式标志比基于模板的提示能带来更可靠的模式转换。

通过此简化,在非思考模式下省略了空的 块,因为它不再需要。

对于工具调用任务,我们在系统提示的 和 标签内指定所有可用工具。我们进一步指示模型在 <tool_call>和 </tool_call>标签内执行工具调用。

image.png

3.3 sft数据

通用领域数据

我们构建了一个庞大的语料库,包含280万个例子,总共320亿个“词”(token),数据来自各种通用领域。这么做是为了给模型打好基础,并增强它的对话能力。这个语料库涵盖了多种任务,比如日常聊天、问答、创意写作、安全性、执行指令、角色扮演等等。

同时,针对那些需要丰富知识的任务,我们从公开数据集中收集了大量问题,还特别补充了法律、伦理等专业领域的难题。最终,这部分形成了一个单独的语料库,有120万个例子,150亿个“词”。

不过,如果直接把这些数据混在一起用,会遇到三个明显的问题:

  1. 回答太短:很多回答只有一个字或一句话,内容不够详细。
  2. 质量不齐:有些回答不准确,或者不是最佳答案。
  3. 风格混乱:因为数据来源不同,直接训练会导致模型回答问题的风格前后不一致。

为了解决这些问题,我们采取了一个新方法:对于每一个问题,我们用两个先进的大语言模型(DeepSeek-R1和DeepSeek-V3)来生成回答。一个模型生成带有“思考过程”的详细回答,另一个生成直接的回答。这样我们就得到了两种格式、风格一致的高质量答案。

为了进一步提高数据质量,我们还做了额外的处理:

  • 对于本身质量就很高的原始回答,我们予以保留,以保证数据的多样性。
  • 对于有标准答案的问题(比如选择题),我们会剔除那些和正确答案不一致的模型回答,确保训练后模型输出更准。
  • 对于没有标准答案的问题,我们会用另一个辅助的大模型来交叉检查生成的回答,过滤掉其中可能质量不高的内容。

解决数据不足的问题

我们发现,在“让模型听指令”和“创意写作”这些任务上,现成的训练数据不够用。为了弥补这个缺口,我们采取了以下方法:

  1. “一个问题,多种回答”:对于同一个问题,我们让模型用不同的“种子”生成多个版本的回答。

  2. 手动打造“连续对话”:为了增强模型“聊天”的能力,我们手动制造了一些多轮对话的数据:

    • 续写与修改:对于创意写作的单段内容,我们手动加上“第二轮”指令,比如让模型“用更幽默的风格重写一遍”或者“补充更多细节”,模拟真实编辑和润色的过程。
    • 拼接聊天:我们把多个独立的、不相关的单轮问答,像拼积木一样随机组合成一段连续对话。这能有效模拟真实聊天机器人中话题自然转换、多轮交互的场景。

数学推理数据

使用 AceReason-Nemotron-1.1等数学问答对直接在第一阶段sft。

使用DeepSeek-R1和DeepSeek-R1-0528来为NuminaMath等数学问题生成带推理的问答对。

代码推理数据

与数学推理数据类似的做法。

科学推理数据

从优质种子中筛选复杂题目 -> 用AI生成更多样化的变体 -> 严格清洗以防止作弊 -> 构建成带有推理过程的数据 -> 用于分阶段训练模型。

标准:使用了严格的 9-gram重叠检测(即连续9个词完全一样就视为污染)。

工具调用数据

使用了名为“Llama-Nemotron”(由Nathawani等人在2025年提出)的工具调用数据集。

4. Cascade RL

4.1. 训练框架

在整理 RL 数据时,我们确保 SFT 和 RL 数据集在提示方面严格不重叠,因此模型在 RL 训练过程中无法利用从 SFT 中记忆的答案来回答给定的提示。

先人类反馈强化学习(RLHF),然后进行领域特定的可验证奖励强化学习(RLVR)。

RLHF 通过减少冗余和重复来显著提高生成响应的质量,从而在受限的响应长度(例如,64K 个 token)内提升推理性能。

灾难性遗忘发生在模型在多个领域顺序训练时,在获取新知识的同时覆盖了先前学习的知识,这是监督学习中常见的问题,其中不连续的训练数据集导致更新将模型推向新的分布。

级联跨领域强化学习(RL)对于 LLMs 在结构上有几个差异,可以缓解这个问题:

i) 在 RL 中,训练数据的分布是策略相关的;LLM 生成自己的经验。当引入新的目标或任务时,LLM 仍然探索状态,这意味着如果旧行为仍然有用或高奖励,它们会持续采样。这与监督学习(例如 SFT)形成对比,在监督学习中,先前领域的样本除非明确重放,否则会消失。

ii) RL 优化预期累积奖励,而不是每个输入的精确目标。因此,更新侧重于改善长期结果,而不是显式地拟合新的 token 级分布。保持奖励相关的旧知识自然会持续存在。当新任务与旧任务共享结构时,更新倾向于泛化而不是覆盖。

iii) 当新领域的奖励与先前领域产生剧烈冲突时(例如,优化简洁回答与详细分步推理之间的冲突),灾难性遗忘仍可能发生,尤其是在来自不同领域的提示在语义上相似时。然而,RLHF 和 RLVR 的奖励结构在多个领域(如数学、代码、推理和指令遵循)中存在显著重叠,因为它们都旨在使输出更好、更准确,并更符合人类偏好或验证信号。例如,减少冗余或幻觉通常对所有领域都有益。

iv) 在我们的 Cascade RL 框架中,我们进一步尽可能减少提示重叠,因为跨领域的提示通常已经具有区分性。例如,我们从 RLHF 阶段移除所有数学和竞赛编程相关的提示,以减少跨领域干扰。此外,领域特定的 RL 是从更通用的领域(例如,RLHF、指令遵循)组织到更专业的领域(例如,数学、代码、SWE),以防止专业能力被通用行为覆盖。

写出并解释这个GRPO (Group Relative Policy Optimization) 的目标函数公式。

公式

JGRPO(θ)=E(q,a)D,{oi}i=1Gπθ(q)[1i=1Goii=1Gt=1oiA~i,t]\mathcal{J}_{\text{GRPO}}(\theta) = \mathbb{E}_{(q,a)\sim\mathcal{D}, \{o_i\}_{i=1}^G \sim \pi_\theta(\cdot|q)} \left[ \frac{1}{\sum_{i=1}^G |o_i|} \sum_{i=1}^G \sum_{t=1}^{|o_i|} \tilde{A}_{i,t} \right]

其中:

A~i,t=rimean({ri}i=1G)std({ri}i=1G)对所有 t\tilde{A}_{i,t} = \frac{r_i - \text{mean}(\{r_i\}_{i=1}^G)}{\text{std}(\{r_i\}_{i=1}^G)} \quad \text{对所有 } t

公式解释

这个公式描述了GRPO的训练目标,主要包含以下几个关键部分:

1. 期望外层结构

  • (q,a)D(q,a) \sim \mathcal{D}:从数据集 D\mathcal{D} 中采样问题 qq 和真实答案 aa
  • {oi}i=1Gπθ(q)\{o_i\}_{i=1}^G \sim \pi_\theta(\cdot|q):对于每个问题,使用当前策略 πθ\pi_\theta 生成 GG 个rollout(输出序列)

2. 归一化项

  • 1i=1Goi\frac{1}{\sum_{i=1}^G |o_i|}:对所有rollouts的总token数进行归一化
  • oi|o_i|:第 ii 个rollout的token数量

3. 优势函数 A~i,t\tilde{A}_{i,t}(Group-Normalized Advantage)

  • rir_i:第 ii 个响应获得的奖励分数
  • mean({ri}i=1G)\text{mean}(\{r_i\}_{i=1}^G):这一组 GG 个rollouts的奖励均值
  • std({ri}i=1G)\text{std}(\{r_i\}_{i=1}^G):这一组 GG 个rollouts的奖励标准差
  • 关键特点:对每个token tt,优势值都相同(取决于整个序列的奖励)

4. 核心思想

  • On-policy采样:每次迭代都用当前策略 πθ\pi_\theta 生成新数据,然后只执行一次梯度更新,确保重要性采样比率恰好为1
  • 组归一化:在同一组的 GG 个rollouts内进行奖励标准化,使训练更稳定
  • 去除KL散度项:简化了传统GRPO目标,直接优化标准REINFORCE目标
  • Token级损失:虽然奖励是序列级的,但损失在token级别计算

这种简化使得算法更接近原始的REINFORCE,但通过组归一化和on-policy采样保持了训练稳定性。

好的,让我用大白话逐一解释:

1. 什么是on-policy机制

想象你在学习打篮球:

on-policy (用最新的自己来学习):

  • 今天上午练投篮 → 下午立刻复盘今天上午的动作 → 明天用改进后的动作练习
  • 关键: 每次学习都用"当前版本的自己"产生的数据

off-policy (用过去的自己来学习):

  • 今天练投篮 → 一周后才复盘 → 但这一周你已经进步了,看一周前的录像可能不太适用了
  • 问题: 学习的数据来自"旧版本的自己",可能已经过时

论文的做法: 每轮都是:

  1. 用当前模型生成G个答案
  2. 立刻用这G个答案更新模型
  3. 下一轮用更新后的模型重新生成
  4. 不保存旧数据,每次都用最新的模型生成新数据

2. 去KL化是什么意思

传统方法担心模型"学坏了",会加一个"刹车":

传统GRPO (有KL约束):

展开代码
目标 = 让模型得高分 - β × (新模型和老模型的差异) ↑ ↑ 想要这个大 但不能差太多

这篇论文 (去掉KL):

展开代码
目标 = 让模型得高分 (就这么简单!)

为什么敢去掉"刹车"? 因为用了严格on-policy:

  • 每次只走一小步(一次梯度更新)
  • 然后立刻重新生成数据
  • 相当于"走一步,看一步",不会跑偏太远

类比:

  • 有KL: 给车装了限速器,怕开太快
  • 去KL + on-policy: 不装限速器,但是每开100米就停下来重新看地图,所以也不会迷路

3. 序列级奖励 + Token级优化

这个最好理解,举个例子:

数学题: 1+1=?

模型生成: "Let's think step by step. 1+1 equals 2."

展开代码
Token1: "Let's" Token2: "think" Token3: "step" ... Token10: "2" Token11: "."

序列级奖励: 整个答案对了 → 奖励 = +1,错了 → 奖励 = 0

Token级优化: 虽然只有整体对错一个奖励,但每个token都要学习:

展开代码
"Let's" → 获得优势 +0.5 "think" → 获得优势 +0.5 "step" → 获得优势 +0.5 ... "2" → 获得优势 +0.5 "." → 获得优势 +0.5

所有token获得相同的优势值,告诉它们"这次答对了,你们都干得不错!"

为什么这样做? 虽然不知道哪个token更重要,但至少可以告诉模型"这条路是对的",让所有参与的token都获得正反馈。

4. 组内标准化

假设同时做3道题:

题目难度不同:

  • 简单题: 80%的人答对 → 模型生成4个答案: 对对对对 → 奖励: 1,1,1,1
  • 难题: 20%的人答对 → 模型生成4个答案: 对错错错 → 奖励: 1,0,0,0

如果直接用原始奖励:

  • 简单题4个都是1 → 梯度很大,模型会过度学习简单题
  • 难题只有1个是1 → 梯度小,学不到东西

标准化后 (z-score):

简单题组:

展开代码
平均分 = 1, 标准差 = 0 标准化后都变成 0 (因为大家都一样,没有信息量)

难题组:

展开代码
平均分 = 0.25, 标准差 ≈ 0.43 答对的那个: (1 - 0.25)/0.43 ≈ +1.74 (强化!) 答错的三个: (0 - 0.25)/0.43 ≈ -0.58 (抑制)

效果:

  • 简单题大家都会,就不要反复学了(梯度≈0)
  • 难题的对错信息更珍贵,要重点学习(梯度大)

5. 最终目标

是的,就是要最大化那个公式!

通俗来说:

展开代码
最大化 = (平均来看) 让模型生成高奖励的token序列

具体过程:

  1. 生成G个答案
  2. 看哪些答对了 (高奖励),哪些错了 (低奖励)
  3. 增加"答对的那些答案"里每个token出现的概率
  4. 减少"答错的那些答案"里每个token出现的概率
  5. 重复这个过程

最终效果: 模型学会了"怎样的思考路径能答对题",概率慢慢向正确答案倾斜。


总结一句话: 这个方法就是"让模型做题 → 看答案对错 → 答对的路径多走,答错的路径少走 → 下次做新题 → 重复",而且通过组内比较来避免简单题刷分。

4.2. Reward Modeling

RLHF的训练数据对

我们搞了点“特别的数据”来升级训练数据。

数据来源:

“坏老师”(强模型):​ 用 DeepSeek-V3-0324​ 来生成坏答案。(我们不是直接命令它“写个错误答案”(这招试了,没用) 用DeepSeek-V3模型,把原始问题稍微改写一下,让它意思偏一点。然后把这个“有点偏题的问题”拿去问那个厉害的模型,它就会自然而然地给出一个“跑题的、不好的答案”。)

“好学生”(弱模型):​ 用更早的 DeepSeek-V3​ 来生成好答案。

Training Recipe

使用 Bradley-Terry 目标函数来训练人类偏好数据的奖励模型。该模型基于 Qwen2.5-72B-Instruct 初始化,在最后一个隐藏层上添加线性预测头,通过最大化人类偏好的对数似然进行训练。

Bradley-Terry 公式 P(y≻y'|x) = exp(r(x,y)) / [exp(r(x,y)) + exp(r(x,y'))] 用于计算在给定输入 x 的条件下,被偏好回复 y 优于非偏好回复 y' 的概率。其中 r(x,y) 表示奖励模型对回复的评分。训练目标是最小化负对数似然损失函数 ℒ(θ) = -E[log P(y≻y'|x)]。

对于每个提示,模型通过对比方式比较两个响应,使 RM 学会给优选响应分配更高的标量分数,给非优选响应分配较低的分数。这个标量分数被视为衡量模型响应"质量"的代理指标。训练采用批大小 256、学习率 2e-6、AdamW 优化器,训练 1 个 epoch。文档提到他们尝试了更长的训练计划,但发现单个 epoch 产生了最佳效果。

RM evaluation

目前,虽然我们通过RewardBench筛选奖励模型,排除低分模型,但高分模型并不总能通过RLHF过程产生最佳的对齐策略,这既因为该基准作为代理指标的局限性,也源于RLHF过程本身的不确定性。

Ablation studies on RM

  1. 模型越大肯定越强:我们使用 Qwen2.5-Instruct 系列(7B、14B、32B 和 72B)训练了不同大小的奖励模型,观察到性能随模型大小呈正相关,证实了规模法则(Kaplan 等人,2020)同样适用于奖励模型训练的背景(参见表 3 中的(a)-(d))。

  2. 大模型聪明,小模型只是学习形,学习不到神:较大的 LLMs 对偏好数据中的风格伪影表现出更强的鲁棒性,而较小的模型则更倾向于关注响应的风格而非其整体质量。

模型大小是重要的: image.png

  1. 一个偏好数据训练过的模型可能只是在最开始有优势。用海量的偏好数据做“预习”虽然能赢在起跑线,但并不能保证最终效果最好。从零开始、用更纯粹的基础模型进行充分的长时间训练,反而可能达到更高的上限(Qwen2.5-72B-Instruct )。

4.3 基于人类反馈的强化学习(RLHF)

我们将介绍作为级联强化学习(Cascade RL)流程第一阶段的 RLHF 实施方案。

我们发现,奖励模型的泛化能力对保障 RLHF 训练稳定性至关重要,且更大规模的奖励模型(例如 720 亿参数的 RM)对策略大语言模型生成的分布外(OOD)样本具有更强的适应能力。

我们发现,如果把奖励模型不太懂、容易判断错的问题(OOD提示)放进核心训练(RLHF)里,会发出错误或混乱的信号,导致训练“学歪了”,甚至直接崩溃。

乱出题会把孩子教懵:想象你在教一个小孩什么行为是好的(比如礼貌、乐于助人),什么行为是不好的(比如说谎、伤人)。如果你突然拿一道高等数学题去问他,他完全不会。这时你再批评他,他不仅学不会数学,反而会困惑:“我刚才不是在学习礼貌吗?为什么突然骂我?” 这会让他对整个“学习什么是好行为”这件事都产生混乱和抵触。文中的“OOD提示”和“数学/编程提示”就相当于这些“超纲的难题”。

用对“评分标准”很重要:评价一个小孩礼貌与否,你看他的言行就能判断。但评价一道数学题对不对,你需要标准答案和解题步骤。用“看言行”的标准去批改“数学题”,给出的分数(奖励信号)肯定不准。文中的“奖励模型”就像“看言行”的评分标准,而“基于规则的验证器”就像“对照标准答案批改数学题”的评分标准。

所以:我们的RLHF数据集主要侧重于提升助益性、无害性以及与人类偏好的对齐性,同时避免与后续级联强化学习阶段将增强的领域重叠。

训练方案
RLHF 可帮助大语言模型更好地遵循用户意图并与人类偏好对齐。

我们还观察到,RLHF 提升了整体生成质量,并且有趣的是,尽管我们构建的 RLHF 数据集中并未包含数学或代码相关的指令,它仍能提高在数学和代码基准测试中的推理表现。

此外,RLHF 倾向于减少重复和冗余表达,从而压缩了简单问题中的思考标记数量。这反过来又提升了后续数学 RL 和代码 RL 阶段的推理效率和训练稳定性。

因此,我们设计了级联 RL 流程,从 RLHF 阶段开始。

我们的 RLHF 训练从 SFT 检查点初始化,采用 GRPO 算法,并遵循 §4.1.2 中的统一 RL 训练配置(例如,在策略、标记级别损失、无 KL 散度)。

对于专用思考模型,我们自然在思考模式下进行 RLHF;

对于统一模型,我们在非思考和思考两种模式下进行 RLHF 训练,每个批次中两种模式的指令数量均等分配。更多研究详见 §6.1。

奖励函数
RLHF 训练使用奖励模型生成的奖励分数作为奖励函数。

具体来说,我们提取模型的答案,将其与对应问题拼接,应用奖励模型的聊天模板,并将格式化后的输入馈送至奖励模型,以获得逐点奖励分数。

对于在非思考模式和思考模式下运行的大语言模型,答案提取方式有所不同:在非思考模式下,我们直接提取助手角色后的模型答案;在思考模式下,我们排除推理痕迹,仅提取思考过程后的最终总结(即 <\think> 标记后的模型生成内容)。如果思考过程未正常终止(即缺少 <\think> 标记),则回退至将整个未完成的响应发送给奖励模型。这类不完整的生成通常会获得较低的奖励分数,因为奖励模型未针对未完成或未见过的推理痕迹进行训练,从而有效惩罚冗长或不完整的思考过程。训练过程中,对于 8B 和 14B 模型,我们在 RLHF 阶段均设置最大响应长度为 12K,不应用过长过滤,这有助于生成更简洁的内容。

模型在RLHF阶段后,效果有提升的,也有下降的,看下面这个图。在IFEval测试数据里不好,其主要原因是 RLHF 训练中使用的提示与 IFEval 中的测试提示之间存在不可避免的语义重叠。

image.png

为防止生成过程中出现语言混杂现象,当输入提示为纯英文但生成响应(含思维链与总结)包含非英语词汇时,我们会施加额外的语码转换惩罚。

由于奖励模型的评分无边界限制,我们采用自适应奖励分配机制:对混合语言生成的响应,将其奖励值设定为当前批次最低分减10。这确保其在GRPO算法中获得相对最低分,从而对语码转换行为形成最强抑制。

我们未引入额外奖励塑形技术,因为72B奖励模型提供的奖励信号已具备高质量特性。

超参数设置: 针对8B与14B模型,我们在RLHF阶段设定最大响应长度为12K且不过滤过长结果,此举可有效促进内容精炼性。采用批次大小128,每个提示生成8条候选序列,温度参数设为0.6,top-p值为0.95。使用AdamW优化器(Kingma, 2014)并以2e-6为学习率,熵损失系数与KL损失系数均设为零。训练约800步完成,更多超参数细节可参阅附录D。

4.4 Instruction-Following Reinforcement Learning (IF-RL)

再来一遍的意义:带有可验证奖励的指令遵循强化学习​ 可进一步提升指令遵循的准确性。

数据集:Llama-Nemotron、LMSYS-Chat-1M等。

指令遵循强化学习训练分两个阶段进行,每个阶段使用不同难度递增的数据混合。第一阶段侧重于 IFEval 分类法的指令约束,第二阶段侧重于 IF-Bench-Train 分类法。

指令遵循强化学习阶段的一个主要挑战是减轻其对在人类反馈强化学习阶段获得的人类对齐能力(例如,通过 ArenaHard 衡量)可能产生的负面影响。在早期实验中,我们观察到,简单地使用基于规则的指令遵循验证器作为奖励函数会降低人类对齐结果。这是因为基于规则的验证器只关注响应是否遵循指令指定的约束,而不考虑响应的整体质量。例如,对于提示"在 300 字内写一份摘要",只要字数在 300 字以下,即使是一份写得很差的答案仍可能获得满分奖励。

IF-RL和RLHF的顺序不能反。反了效果变差。

对于统一推理模型,出现了一个有效策略:我们首先在思考模式和非思考模式下都进行人类反馈强化学习,然后仅在非思考模式下应用指令遵循强化学习。

另一种方法是设计一个指令遵循强化学习中的奖励函数,该函数能同时兼顾人类偏好和精确的指令遵循能力。对于专用思考模型而言,这对于减轻指令遵循强化学习对 ArenaHard 等基准测试的负面影响至关重要。

使用组合奖励函数的指令遵循强化学习”中的奖励函数。 这个奖励函数的设计核心是解决一个核心矛盾:如何让模型在严格遵守复杂、详细的指令约束(如“用三点列表回答”、“字数少于200字”、“避免使用专业术语”)的同时,不牺牲其作为AI助手的整体回答质量、有用性和自然对话感。

ri={RIF(oi)+sigmoid(R^RM(oi)),if RIF(oi)=10,otherwiser_i = \begin{cases} R_{\text{IF}}(o_i) + \text{sigmoid}(\hat{R}_{\text{RM}}(o_i)), & \text{if } R_{\text{IF}}(o_i) = 1 \\ 0, & \text{otherwise} \end{cases}

IF-RL训练后:

image.png

4.5 数学强化学习

高质量精选:从原始约49K问题中,通过多轮严格筛选(如过滤简单题、非英语题、证明题、多选题、含图表题等),最终保留约18K个高质量数学问题用于训练。

防数据污染:应用9-gram过滤,防止与AIME、MATH等外部数学评测基准的数据重叠。

模型初始化:从经过RLHF(人类反馈强化学习)的模型开始进行Math RL,而非从SFT(监督微调)模型开始。这样做能提供更强的初始推理能力、更高效的表达,并显著减少Math RL所需的训练步数。

分阶段长度扩展训练 (核心技巧):

  • 24K (压缩阶段):用较短的token预算开始,迫使模型压缩冗长、低效的推理,解决“生成冗长但无法完成解答”的问题。关键:对超长生成采用“跳过”而非“给0奖励”,避免过度惩罚难题的长推理,保持训练稳定。
  • 32K (扩展阶段):在推理稳定后,放宽token预算。此阶段不强制长度过滤,让模型自然适应更长的上下文,在长度和准确率间找到平衡。
  • 40K (长推理阶段):最终阶段,明确激励模型利用更多token进行深度推理,旨在显著提升难题(如AIME难题)的解决能力(从30%提升至40%)。

动态过滤:在每个训练周期后,根据模型当前表现,动态过滤掉“已完全掌握”(100%正确)或“完全不会”(0%正确)的问题,并让难题有10%概率、简单题有1%概率重新进入训练集。这确保了约90%的训练样本能提供有效的学习信号,极大稳定了训练过程,是比动态采样更高效的替代方案。

移除正则化:完全移除了KL散度正则化,专注于策略优化。

4.6. Code RL

Code RL是一个目标明确、数据精炼、奖励严格的过程。它利用Math RL打下的推理基础,通过精心设计的二进制奖励和异步验证,高效地专攻竞争性编程能力,最终使小模型在代码基准上达到了媲美甚至超越其巨型教师模型的水平,同时保持了其他能力的稳定。

4.7 软件工程强化学习(SWE RL)

1. 目标与定位

  • 核心目标:提升模型在代码修复方面的能力,这是软件工程任务中最关键、最需要高级推理的子任务。
  • 流程位置:作为级联强化学习(Cascade RL)的最后阶段,因其任务比通用领域更专业化。

2. 关键挑战与应对策略

  • 训练与评估不一致:SFT阶段使用“真实定位文件”(即包含bug的确切文件)进行训练,而实际评估时,模型收到的是“定位阶段检索到的文件”(可能包含不相关的噪声文件)。这导致评估输入是训练数据分布之外的情况。
  • 应对方案:为RL训练精心构建两种提示子集,以弥合差距并增强模型鲁棒性:
    1. 仅含真实文件:与SFT一致,只使用真实定位文件。
    2. 混合定位文件:使用DeepSeek-R1-0528检索到的文件 + 真实定位文件混合构建提示,模拟评估时的噪声环境,使任务更具挑战性。
  • 长度扩展:将最大提示长度扩展至60K tokens(通过YaRN缩放),以容纳更多检索到的文件,但这进一步加剧了OOD问题。

3. 训练方法 (Training Recipe)

  • 免执行验证器奖励模型
    • 创新点:为了突破传统Docker环境执行补丁带来的可扩展性限制(通常数据集限于约10K样本),设计了无需执行的验证器作为奖励模型,实现了大规模RL训练。
    • 奖励计算:奖励 ( r ) 基于生成补丁与人工标注的真实补丁之间的相似度,公式如下:
      • 如果词汇相似度 ( s_{lex} = 1 )(完全匹配),奖励为 1
      • 如果生成补丁与原始代码片段完全相同,奖励为 0
      • 如果生成补丁无法解析,奖励为 -1
      • 否则,奖励为语义相似度分数 ( s_{sem} ),由大语言模型(Kimi-Dev-72B)评估生成补丁与真实补丁在功能上是否等效的概率("YES" token的概率)得出。
  • 两阶段长上下文扩展课程
    • 发现:输入上下文长度与SWE任务性能呈强正相关,更多检索文件能带来显著性能提升。
    • 策略:为避免直接长上下文训练导致的性能下降,采用渐进扩展策略:
      1. 16K上下文初始化:作为热身阶段,让模型在可控范围内学习多文件分析的基本技能和稳定的注意力机制。直接使用24K上下文会导致收敛不佳。
      2. 24K上下文扩展:在16K阶段奖励达到平台期后,将上下文扩展到24K。此时模型已具备扎实的多文件分析基础,能够有效利用更长的上下文进行更高级的跨文件推理和信息综合。
  • 基础设置:从Code RL后的检查点开始,进行在线策略RL,移除KL正则化。批次大小128,学习率2.5e-6,每个提示生成16个响应。

4. 效果与影响

  • SWE能力大幅提升:在SWE-bench Verified上取得显著提升(例如8B模型提升约5.5个百分点)。
  • 模型性能卓越
    • 14B-Thinking模型达到43.1%的pass@1解决率超越了近期开源的32B专用模型(如DeepSWE-32B的42.2%, SWE-agent-LM-32B的40.2%),也显著优于其他14B通用大模型。
    • 弥合专用与通用模型差距:经过完整的Cascade RL流程后,专用8B思考模型统一8B模型在SWE-bench上的性能差距大大缩小(从SFT后的30.2 vs. 26.1 变为 RL后的38.5 vs. 37.2),表明级联RL能有效提升通用模型在专业任务上的能力。
  • 对其他领域影响:SWE RL对其他领域的基准测试(数学、代码、知识推理、对齐)影响极小,性能波动主要源于检查点选择和评估方差。
  • 最终模型优势:统一的Nemotron-Cascade-8B模型在所有推理相关任务上表现与思考版本相当,同时在指令遵循任务上表现显著更好

总结来说,SWE RL通过构建模拟真实噪声评估环境的训练数据、创新的免执行语义奖励模型以及渐进式的长上下文扩展课程,高效地专攻代码修复能力,使模型在软件工程基准上达到了超越同类规模甚至更大规模专用模型的水平,同时保持了出色的通用性。

6. Deep Dive on RLHF

研究还发现较小规模的奖励模型往往会产生噪声较多的奖励信号,因此需要额外采用奖励塑形和KL正则化等技术以维持训练稳定性。对于较大规模的奖励模型则无需这些技术辅助:其奖励信号本身已具备足够的精确性和一致性,既能保障RLHF训练过程的稳定,也能在其他任务中获得更优表现。

用“一半一半”的混合模式来训练,效果最好。即使那些考核思维模式的测试题,用混合模式训练出来的模型得分也更高:

image.png

奖励模型大一点似乎好一些:

image.png

5.2

较低温度虽然能产生更稳定的熵曲线,但与较高温度设置相比,其代码推理性能有所下降。这一现象表明,在代码生成这类大规模、高噪声的采样空间中,较高温度有助于增强探索性,并在有限采样预算下提升样本效率。 然而,高温也可能引发训练不稳定性,导致熵值爆炸。

6.3 稳定RLHF训练的实用技巧

展开代码
在本节中,我们将介绍关于选择高效奖励模型和设计稳健的RLHF方案的研究发现。我们证明,采用最大奖励模型训练的RLHF在ArenaHard基准测试中(尤其是在风格控制条件下)表现出最优性能,这有助于区分大语言模型回答中的实质内容与风格偏好(Chiang等人,2024)。研究还发现,较小的奖励模型往往会产生噪声较多的奖励信号,因此需要额外采用奖励塑形和KL正则化等技术以维持训练稳定性。而对于较大的奖励模型,这些技术并非必需:其奖励信号本身已具备足够的准确性和一致性,能够实现稳定的RLHF训练,并在其他任务中获得更优表现。

虽然强化学习算法对于实现长篇思维链推理至关重要,但其训练过程可能不稳定,且容易过早崩溃。在RLHF中,这一问题被进一步放大,因为RLHF的训练依赖于可能包含噪声或超出分布的模型奖励。在本小节中,我们总结了一组在稳定RLHF训练中被证实有效的技术("实用技巧集"):

  1. KL惩罚项损失:KL惩罚项损失用于约束在线策略与冻结的参考策略之间的散度,确保策略不会偏离初始模型太远。我们发现,当RLHF训练过早崩溃时,引入这项KL惩罚是维持训练稳定性的有效方法。

  2. 策略梯度损失聚合方式:标准GRPO使用序列级损失,即首先在每个样本内平均令牌级损失,然后在批次间聚合。对于长思维链RL,通常建议使用令牌级损失,即直接平均批次中的所有令牌损失。然而,当RLHF出现早期崩溃迹象时,从令牌级聚合切换到序列级聚合,有助于抑制回答长度的急剧增加,从而稳定训练。

  3. 奖励塑形:由于我们的奖励模型是基于Bradley-Terry目标训练的,其原始奖励信号是无界的。使用无界奖励进行RLHF训练时,带有噪声或异常值的奖励可能导致训练不稳定。为解决此问题,我们设计了一种奖励塑形机制:对于每组奖励,我们计算其均值和标准差,然后对每个奖励进行归一化(减去均值并除以标准差),得到一个中心化并缩放的奖励。最后,我们应用一个tanh变换。这将塑形后的奖励限制在[-1, 1]的范围内,有效减轻了组内异常值和噪声奖励信号的影响,从而带来更稳定的RLHF参数更新。

表 11: 使用我们的统一 8B SFT 模型(性能见表 2)和 72B 奖励模型进行 RLHF 训练的结果。ArenaHard (SC) 指带有风格控制的 ArenaHard 分数。我们为每种方法在其训练崩溃前的轨迹中选择最佳检查点,并报告相应的训练步数。

技术方案步数ArenaHardArenaHard (SC)LCB v5LCB v6AIME24AIME25
KL惩罚=1e-3 + 序列级损失 + 奖励塑形50090.0389.1168.5965.6686.2073.80
KL惩罚=0 + 令牌级损失60091.0489.3768.4665.8686.3375.03

在我们早期使用 7B 奖励模型进行 RLHF 的实验中,我们发现应用这些"实用技巧"显著提高了训练稳定性,将稳定的强化学习步数从 350 步延长到 950 步,并获得了更好的 ArenaHard 分数(见表 10)。然而,当使用更强的奖励模型(例如 72B 奖励模型)时,RLHF 训练本身已很稳定,省略这些技巧可获得与使用技巧相当的、有时甚至略好的下游性能,如表 11 所示。我们的结论是,应将这些技巧视为一个工具箱,仅在训练出现不稳定迹象时部署使用。否则,第 4.3.2 节中描述的 RLHF 方案已足够。

8.1 Reinforcement Learning for LLMs

慢慢增加模型回答的最大长度(课程学习);

过滤掉太长的回答,避免因为被截断而受到不公平的惩罚。

8.2 Supervised Fine-Tuning and Distillation

1. 监督微调(Supervised Fine-Tuning, SFT)的定位

SFT是训练流程中不可或缺的预备阶段,用于将预训练的基础大语言模型(base LLM)“适配”到通用对话、指令遵循等任务上,为后续基于强化学习(RL)的对齐(alignment)做准备(引用了多篇相关研究)。简言之,SFT是让模型先学会“基础对话/任务执行”的能力,再进一步通过RL优化。

2. 知识蒸馏(Distillation):从大模型到小模型的迁移

为了构建紧凑的推理模型(即参数更少、计算更高效的小模型),另一种思路是将原本通过RL训练的大教师模型(如DeepSeek-AI等)的知识“蒸馏”到小模型中。具体有两种主流策略:

  • 离线蒸馏(Off-policy Distillation)
    先从教师模型生成合成响应或输出(例如教师模型针对问题生成的答案或token序列),然后训练学生模型(小模型)去预测这些教师生成的token或logits(模型输出的原始分数)。这种方法虽然生成合成数据(调用教师模型)的计算成本高,但一旦数据生成后,可高效复用(用于训练其他模型)。

  • 在线蒸馏(On-policy Distillation)
    在学生模型自身生成样本的基础上进行蒸馏(而非依赖教师模型的固定输出),目的是缩小与“直接通过在线RL训练”(即模型自己生成数据并实时优化)的模型之间的性能差距(引用Yang et al., 2025的研究)。

3. SFT与RL的协同作用

通常,RL会被应用于SFT模型之上,以开发出最先进的推理模型。作者团队此前的研究(Liu et al., 2025)发现:若能在RL过程中平衡好“探索”(尝试新策略)与“利用”(沿用已知有效策略),那么初始SFT模型与最终模型的性能差距会显著缩小。这意味着SFT为模型提供了良好的基础,而合理的RL过程能高效提升其推理能力。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!