动态列表

    别再分开训!SFT+RL融合范式全解析:统一视角下的六大方法

    白强伟 2025-08-22 14:27 北京

    效率翻倍,难题也能啃!

    ©作者 | 白强伟

    单位 | 熵基跃迁

    研究方向 | 强化学习

    为什么要融合SFT和RL

    RL 虽然能够有效提升模型的推理能力,但一个重要的前提是基础模型本身具备了一定的相关能力。在 RL 训练中,通过多次 rollout 能够采样到正确的轨迹,这样通过 RL 才能进一步提升。这无疑限制了 RL 的探索空间。

    因此,主流的方式是通过 SFT 赋予模型一些基础能力,然后在进一步利用 RL 来提升相关能力。但是一些研究认为两阶段的方式并不是最优的:

    • [1] 通过实验发现,RL 能改善中低难度问题的解决能力,SFT 则对高难度问题更有效;

    • [4] 则认为更大模型(或者专家)构造的 SFT 包含跳跃逻辑,通过 SFT 难以完全模仿这些逻辑,导致进行 RL 时难以 rollout 出有效的正样本;

    • [3][5] 则直接认为两个独立的阶段本身没有必要存在,应该统一;

    • [6] 进一步分析,发现 SFT 和 RL 之间存在着某种对抗,SFT 使模型大幅度偏离基础模型,而 RL 又会将其拉回基础模型;

    综上,这些研究均认为有必要将 SFT 和 RL 融合为单一阶段。

    基础知识

    在标准的 LLM 训练流程中,通常包含三个阶段:Pre-training、SFT 和 RL。Pre-training 阶段采用自回归的方式在海量数据上完成预训练,为后续的 Post-training 奠定基础。Post-training 通常分为 SFT 和 RL,这两个阶段均需要一个多样性丰富的 prompt 集合

    2.1 SFT

    在该阶段对于 prompt ,会采用专家撰写、人工合成或者强模型蒸馏的方法来构造高质量的响应 。这里不妨假设 ,其中 代表人类专家或者更强的模型等。那么,SFT 训练的损失函数为

    该损失函数的梯度表示为

    2.2 RL

    RL 通常在 SFT 阶段后进行。在 On-Policy 的设定下,对于 promt ,通常会从当前策略 中采样响应 。RL 的损失函数为

    该损失函数的策略梯度为

    其中, 是针对 的奖励。公式(4)是标准 REINFORCE 的梯度,在实际中通常为了降低方差会采用带基线的 REINFORCE。

    带基线的 REINFORCE 本质上是用优势函数来代替奖励,相比于奖励的直接含义,优势函数代表相对于平均状况的改善程度。因此,带基线的 REINFORCE 的梯度为:

    其中, 的优势。

    2.2.1 GRPO

    到目前为止,GRPO 已经近乎于 LLM 后训练中 RL 算法的事实标准了。GRPO 是 PPO 的一种无 critic 模型的变种,针对同一个 promt ,会同时采样 个响应 ,每个响应 对应于一个标量奖励

    在标准的 PPO 中需要 critic 模型来辅助计算优势,GRPO 则采用组内标准化实现优势的近似计算:

    这里 是指第 个响应的第 个 token 的优势。除了优势的计算外,损失函数与 PPO 类似

    其中 是重要性采样。

    交替进行SFT和RL

    ReLIFT [1] 认为 RL 改善中低难度问题,SFT 改善高难度问题。因此,设计了一种交替方案。具体来说,在 RL 过程中将 rollout 过程中完全错误的样本放入缓冲池。当缓冲池满时,利用这些样本进行 SFT。

    将SFT用作RL中的Off-Policy样本

    相比于交替进行 SFT 和 RL,LUFFY [2] 则将 SFT 用作 Off-Policy 样本,然后通过重要性采样将其统一在 RL 过程中。显然,这样的方式更自然一些。

    4.1 符号

    表示直接使用策略进行 rollout 得到的 Non 条轨迹。

    则是 条 SFT 数据。

    4.2 混合On和Off的样本

    最简单的方式是直接将 Off-Policy 的样本混合到 On-Policy 数据中进行训练,那么损失函数可以写为:

    其中 是归一化因子。

    但是上式中的 off policy objective 中的重要性采样 如果仍然使用 并不合适,因为分母中的 并不是产生 off policy 数据 的分布。因此,第一项应该采用新的重要性采样:

    将新的重要性采样系数(9)替换公式(8)就得到了最终的混合损失函数:

    4.3 重要性采样修正

    依照公式(10)进行训练,虽然解决了梯度偏差的问题。但是,训练中发现其加速收敛的同时,也显著抑制了探索,导致快速的熵坍缩,如上图左所示。

    进一步的分析认为,当模型同时接收 On 和 Off 的信号时,其倾向于优先加强那些既存在于 On-Policy 轨迹中,也存在于 Off-Policy 轨迹中的概率较高 token。

    那些来自于 Off-Policy 轨迹中的低概率 token,对于推理至关重要,但是由于 太小导致学习信号微弱。

    因此,[2] 提出利用一个修正函数 来调整重要性采样 ,即使用 替换公式(10)中的

    为什么能放大 Off-Policy 轨迹中的低概率 token?

    对于 Off-Policy 部分的损失函数针对 的梯度可以表示为

    观察上式可以发现新损失函数相当于在原始策略梯度的基础上添加了一个权重因子 。为了简化分析,可以合理假设离策略对其生成样本的置信度为 1,即 。那么权重因子进一步简化为 。由于 ,当 时,,相当于放大梯度。反之,当 时,,这是一个非常小的数,相当于缩小梯度。

    同时进行SFT和RL

    相较于 LUFFY [2] 通过将 SFT 视为 Off-Policy 样本,从而统一至 RL。SRFT [6] 则进一步采用了偏向于实践的风格,即同时采用 SFT 和 RL 损失。

    SFT 损失函数。标准的 SFT 损失函数为如公式(1)所示,但是若一个样本的熵太高,则表明该样本对当前模型来说比较陌生。应该降低 SFT 损失的比例,因此采用带有权重的 SFT 损失函数:

    其中

    Off-Policy RL 损失函数。类似于 LUFFY,将 SFT 视为 Off-Policy 样本:

    其中 同 LUFFY 的公式(9)。

    On-Policy RL 损失函数。在二元奖励 {+1, -1} 设定下,标准的 On-Policy RL 损失函数为:

    但是,SRFT 为了缓解熵坍缩,对正样本部分的损失添加了一个基于熵的权重:

    其中 。当熵较大时,意味着模型对这个样本不太确定,较大的 强制模型更多的学习该样本。

    最终的损失函数。将公式(11)、(12)和(13)求和得到最终的损失函数:

    因此,该方法同时进行 SFT、Off-Policy RL 和 On-Policy RL。

    将SFT用作hint

    hint 是指问题和部分正确答案的拼接。标准 RL 的主要问题是针对难问题无法 rollout 出正样本。SFT 作为天然正样本,可以将其一部分响应与问题进行拼接,从而构造出一个 hint。策略基于 hint 进行 rollout,而不是原始的 prompt。

    基于 hint 的方法主要围绕两个问题:a. 如何构造合适的 hint?b. hint 部分在训练中怎么处理?

    6.1 如果构造合适的 hint

    动态调整 hint 的长度[3][5] 采用了动态调整 hint 长度的方式,从而构造出难度循序渐进的 hint。这种方式即能调整难度,也能缓解训推不一致的问题。假设一条 SFT 样本的完整长度为 [3] 使用余弦退火的方式动态调整 hint 的占比系数 。但不直接使用 作为 hint 的长度,而是将 视为试验数, 作为成功概率的二项分布,然后基于该分布采样 hint 长度 [5] 则是从动态区间 中进行采样,其中上界 high 是固定的,下界 low 则是通过余弦函数从 high 一直衰减到 0。这样,模型能够从刚开始基于较多提示才能回答对问题,逐步能够独立回答对问题。

    基于 rollout 的结果调整 hint[4] 提出二分搜索的方式寻找合适的 hint。具体来说,分如下情况:

    • 若基于当前的 hint 进行 rollout,所有 rollout 均失败,则加长 hint;

    • 若基于当前的 hint 进行 rollout,所有 rollout 均成功,则缩短 hint;

    • 介于二者之间则认为是难度适宜的 hint;

    6.2 训练方式

    标准 RL 训练方式[4][5] 均是将基于 hint 得到的 rollout 当做普通 rollout,采用标准 RL 进行训练。相比于 [4] 仅使用基于 hint 的 rollout,[5] 则会将标准 rollout 和基于 hint 的 rollout 混合在一起进行训练。此外,[5] 认为 hint 部分直接加入到强化学习中,会强制模型学习概率降低的 token,产生巨大梯度,从而导致训练不稳定。因此,需要对来自于 SFT 部分的 token 进行筛选,仅保留熵最高的 top-k% 个 token 的梯度。

    结合 SFT 和 RL 训练方式[3] 对于 hint 部分和 rollout 部分采用了不同的损失函数。对于 hint 部分使用 SFT 损失函数,对于 rollout 部分使用 RL 损失函数。具体来说,在 GRPO 的设定下,每个 prompt 会产生 个 response ,每个 的前 部分属于 hint。那么,损失函数为

    参考文献

    [1] Learning What Reinforcement Learning Can't: Interleaved Online Fine-Tuning for Hardest Questions

    https://arxiv.org/pdf/2506.07527

    [2] Learning to Reason under Off-Policy Guidance

    https://arxiv.org/pdf/2504.14945

    [3] UFT: Unifying Supervised and Reinforcement Fine-Tuning

    https://arxiv.org/pdf/2505.16984

    [4] BREAD: Branched Rollouts from Expert Anchors Bridge SFT & RL for Reasoning

    https://arxiv.org/pdf/2506.17211

    [5] Blending Supervised and Reinforcement Fine-Tuning with Prefix Sampling

    https://arxiv.org/pdf/2507.01679

    [6] SRFT: A Single-Stage Method with Supervised and Reinforcement Fine-Tuning for Reasoning

    https://arxiv.org/pdf/2506.19767

    更多阅读

    #投 稿 通 道#

    让你的文字被更多人看到

    如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

    总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

    PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

    📝 稿件基本要求:

    • 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注

    • 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

    • PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

    📬 投稿通道:

    • 投稿邮箱:hr@paperweekly.site

    • 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

    • 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

    △长按添加PaperWeekly小编

    🔍

    现在,在「知乎」也能找到我们了

    进入知乎首页搜索「PaperWeekly」

    点击「关注」订阅我们的专栏吧

    ·

    阅读原文

    跳转微信打开

    联系我们