对于那些使用过DeepSeek-R1等推理模型的人来说,可能都遇到过这样的情况:面对一个稍微棘手的问题,模型会陷入沉思,长篇大论地推导下去,既耗时又耗算力,结果却未必可靠。而现在,我们或许找到了一个解决方案。
近日,微软研究员Dimitris Papailiopoulos在𝕏上公布了一项新成果:Group Filtered Policy Optimization(GFPO)——一种颠覆性的强化学习算法。
GFPO能同时平衡训练与测试阶段的计算开销,在提升准确率的同时,将推理过程中因强化学习带来的多余token长度削减多达80%!
数据很惊人,但这究竟是如何做到的呢?
GFPO已在arXiv上线,所有细节首次公开,高效强化学习的新玩法即将揭晓。
在介绍GFPO之前,有必要先看看DeepSeek提出的组相对策略优化(GRPO)。
GRPO基于近端策略优化(PPO)算法,但进行了简化,即不再需要使用价值模型来估计基线优势。具体操作是对每个问题采样多个响应,并使用它们的平均奖励作为基线,而其优化的目标仍然是与PPO类似的裁剪替代目标(clipped surrogate objective)。
写成公式的话,如果令θ表示模型参数,q表示问题,o表示从旧策略π_θ_old采样的响应,则GRPO目标可以写成:
需要注意的是,尽管这里展示了标准的GRPO损失归一化公式,但包括verl和TRL在内的多个开源强化学习库都默认为GRPO使用了DAPO token级损失归一化,这也是该微软团队在实验中使用的方法。
GRPO的一个关键限制在于它依赖于单一的标量奖励信号,这使得它难以联合优化多个期望得到的响应属性,例如简洁性和准确度。结果就是,GRPO确实能提高准确度,但也会让响应长度大幅增加。
GFPO正是为了解决这个问题而生的,它可以同时优化多个响应属性。
GFPO是一种简单而有效的方法,可以针对想要的响应属性进行有针对性的策略优化。
GFPO会为每个问题采样更大的候选响应组,从而扩大响应池以包含更多具有所需特性的候选响应,然后在计算策略梯度时显式地过滤这些特性。虽然将简洁性或信息量等所需属性直接编码到标量奖励中是看似自然的做法,但同时编码多个特性却可能很难,尤其是在必须保证正确性的情况下。
数据过滤则是一种隐式、灵活的奖励塑造形式——类似于使用选择性采样来放大特定模型行为的迭代式自我改进方法。在此显式过滤步骤分离出所需的响应后,将在所选组内使用标准奖励来计算相对优势。因此,GFPO无需复杂的奖励工程,即可同时优化多个所需属性(例如长度和准确度)。
由于这里的目标是减少强化学习中响应长度的膨胀,因此该团队主要研究的是在保持与GRPO相当的准确度的用时,使用GFPO来优化缩短响应长度。
给定一个问题q,从当前策略采样大量响应G = {o_1, ..., o_G}。GFPO并不会在所有响应上平等地训练,而是会根据用户指定的指标应用选择步骤,过滤出大小为k的最符合期望的响应子集,然后进行训练。之后,为每个响应计算一个指标得分并进行相应排序,从中选出前k个响应,形成留存子集S ⊆ G(算法 1)。这里,该团队定义了一个二元掩码m ∈ {0, 1}^G,其中m_i = 1表示被选中响应,m_i = 0表示被拒绝响应。
下面是GFPO的形式化定义:
这里使用S中响应层面的奖励的平均值(μ_S)和标准差(σ_S)对所选子集S中响应的优势进行归一化。这样一来,便可以有意义地比较已表现出所需属性的响应,从而确保GFPO优先考虑过滤子集中奖励最高的响应。不在S中的响应的优势为零,从而可有效地被排除在策略更新之外。
因此,GFPO的主要干预措施是在优势估计层面,使其可与任何GRPO变体兼容,例如DAPO、Dr. GRPO或带有Dual-Clip PPO损失的GRPO。
虽然通过采样更多响应,GFPO会导致更高的训练时间计算成本,但由于学习到的策略比GRPO能产生更短的响应,因此这部分成本可以被抵消。
该团队还提出了GFPO变体:自适应难度GFPO(见算法 2),其目标是将更多的训练信号分配给更难的问题。
本文由主机测评网于2026-04-22发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260439498.html