微软GFPO:有效减少思考膨胀问题,system2也可以很自信

《Sample More to Think Less: Group Filtered Policy Optimization for Concise Reasoning》 解决大语言模型在通过强化学习(RL)提升准确率时,普遍存在的“响应长度膨胀”问题。作者指出,许多模型为了追求更高的分数,会生成大量冗长、重复的“填充”性文本,这在推理时造成了不必要的计算浪费。为解决此问题,论文提出了GFPO (Group Filtered Policy Optimization,组过滤策略优化)。其核心思想:在训练阶段“想得更多”,通过采样更大的响应组,并根据响应长度和**token效率(每token奖励)**这两个关键指标进行过滤,只在最优的样本上进行训练,从而教会模型在推理(测试)阶段“想得更少”,生成更简洁的回答。在多个STEM和编程基准测试中,长度膨胀减少了46-85%,同时保持了准确率。此外,自适应难度GFPO (Adaptive Difficulty GFPO),它能根据问题的实时难度动态分配训练资源,实现了效率与准确性的更优平衡。 用一次性的训练时间计算,换取持续的、部署时的推理时间计算节省,这为高效推理模型的开发提供了极具价值的新思路。 Group Filtered Policy Optimization GFPO的核心思想是:与其在所有生成的响应上进行无差别训练,不如引入一个“过滤”步骤,有选择性地学习。其关键流程被拆解为: 1)扩大采样:对每个问题,从当前策略中采样一个比GRPO更大的响应组$\mathcal{G}=\{o_{1},...,o_{G}\}$。 2)度量与排序:根据一个用户指定的度量函数(如响应长度、token效率等),对组内所有$G$个响应进行评分和排序。 3)拒绝采样与筛选:只保留排序后最优的$k$个响应,形成子集$\mathcal{S}$(其中$k < G$)。这个过程通过一个二进制掩码$m \in \{0,1\}^G$来实现,被选中的响应$m_i=1$,被拒绝的$m_i=0$。 4)修正优势计算:这是最关键的一步。优势值的计算只在被选中的子集$\mathcal{S}$内部进行。其公式被定义为:$\hat{A}*{i,t}^{(m)}=\frac{R(q,o*{i})-\mu_{S}}{\sigma_{S}}m_{i}$。其中,$\mu_S$和$\sigma_S$分别是子集$\mathcal{S}$的奖励均值和标准差。对于被拒绝的响应($m_i=0$),它们的优势值被直接置为零,因此它们对策略更新的梯度贡献也为零。模型只从那些“表现出期望属性”(如简洁)的样本中学习如何获得高奖励。 GFPO变体: token效率GFPO (Token Efficiency GFPO):它使用的过滤指标不是纯粹的长度,而是奖励与长度的比率 (reward/length)。这鼓励模型生成“性价比”高的响应,允许在获得足够高奖励的前提下产生较长的回答,从而追求简洁与效果的平衡。 自适应难度GFPO (Adaptive Difficulty GFPO):这是一个更智能的策略。它首先通过样本的平均奖励来实时估计问题的难度,然后动态地调整保留的样本数量$k$。对于简单问题,它采用更激进的过滤(更小的$k$)来强制模型简洁;对于难题,它保留更多的样本(更大的$k$)以鼓励充分探索。 将优势函数中的基线计算范围从整个样本组(G)缩小到经过筛选的子集(S),并将被拒绝样本的优势直接清零。这是一个极其简洁而强大的干预手段。它没有去设计复杂的惩罚项,而是让不符合期望的样本在梯度更新中“沉默”,从而以一种非常高效和直接的方式引导策略的优化方向。 实验分析 模型与基线方面,使用仅经过监督微调(SFT)的Phi-4-reasoning作为基础模型,并与经过标准GRPO训练的Phi-4-reasoning-plus进行对比,确保了比较的公平性。数据集方面,虽然训练集包含7.2万个数学问题,但作者特意限制模型在100个训练步内只看到6400个问题,这与基线的训练量完全一致,从而排除了数据量差异带来的影响。奖励函数的设计是加权的准确率和n-gram重复惩罚,值得注意的是,这个奖励函数本身已经包含了对长度的惩罚,但作者在引言中已论证其不足以抑制GRPO的长度膨胀,这反过来加强了GFPO方法的必要性。 本章最重要的贡献之一是定义了关键评估指标——超额长度缩减率 (Excess Length Reduction, ELR),其公式为:$ELR=\frac{L_{GRPO}-L_{GFPO}}{L_{GRPO}-L_{SFT}}$。这个指标衡量的是GFPO在多大程度上“抵消”了由GRPO训练所引入的额外长度。例如,100%的ELR意味着GFPO将响应长度完全恢复到了SFT基线的水平。这是一个比单纯比较绝对长度更具洞察力的指标,因为它精确地量化了新方法对“问题”(即长度膨胀)的解决程度。在组规模设置上,作者将GFPO的采样组规模G设置为8、16、24,但保留的组规模k始终小于等于8,以确保其接收的策略梯度信号数量与GRPO基线(G=8)相当,这是一个严谨的实验设计,旨在公平地隔离出“过滤”这一操作本身的效果。 结果分析 GFPO能否在保持准确率的同时,有效抑制响应长度的膨胀?其不同变体和参数(如$k$和$G$)的效果如何?作者通过在多个标准数学和代码推理基准(AIME 24/25, GPQA, Omni-MATH, LiveCodeBench)上评估三种GFPO变体(Shortest k/G, Token Efficiency, Adaptive Difficulty),得出了一系列强有力的结论。 首先,实验明确了**“想得更少,需要采得更多”**。仅在与GRPO相同的组规模内进行子采样(如Shortest 6/8),长度缩减效果微乎其微。必须扩大初始采样池(即增大$G$),才能为过滤提供足够多的优质(短)候选。其次,保留率 (k/G) 是控制长度的关键杠杆,降低保留率能有效缩短响应长度。 在所有变体中,token效率 (Token Efficiency) GFPO 表现最为亮眼,它在所有任务上都实现了最大幅度的长度缩减(高达70.9%-84.6%),同时统计上并未显著降低准确率,证明了“每token奖励”是比纯长度更优的简洁性度量。自适应难度 (Adaptive Difficulty) GFPO 则展示了其智能性,在与固定k值方法计算成本相当的情况下,它通过动态分配探索预算(即k值),在多个基准上取得了更优的长度-准确率平衡。 ...

August 14, 2025 · 小茄墩

强化学习开始做预训练了!

《Reinforcement Pre-Training》 传统的大模型预训练虽然可靠,但可能只是在学习表面的文本关联性,而用于对齐的强化学习(RL)又面临数据昂贵、难以规模化的问题。这篇论文最具启发性的做法是,从根本上“重塑”了预训练任务。它不再将“预测下一个词”看作一个简单的分类任务,而是将其提升为一个需要“推理”的过程。模型被激励去思考为什么下一个词是这个,而不是那个,并且只要预测正确,就能从训练数据本身获得一个可验证的奖励。这种方法巧妙地将海量的无标注文本数据,转变成了强化学习的训练场,既解决了RL的规模化问题,又可能让模型学到更深层次的推理能力,而不仅仅是记忆。论文用“樱桃蛋糕”的比喻(将RL融入预训练蛋糕本身)来对比传统的“蛋糕上的樱桃”(RL作为后续微调),生动地说明了这一范式的根本性转变。 现代语言模型的基础——标准的“下一个词预测”(NTP)任务,其目标函数是最大化文本序列的对数似然概率,即 “带可验证奖励的强化学习”(RLVR),其目标函数是最大化从环境中获得的期望奖励 。 通过并列这两种方法,读者可以清晰地看到:一个依赖于庞大的数据进行自监督学习,另一个则依赖于带有明确答案的标注数据和奖励信号进行学习。这个对比凸显了一个核心矛盾:规模化与强反馈之间的差距,而RPT正是在试图弥合这个差距。 强化学习预训练 首先,在任务定义上,创造性地提出了“下一词元推理”(Next-Token Reasoning)任务。模型在预测下一个词 $y_t$ 之前,必须先生成一段“思考链”(chain-of-thought)$c_t$ 。这种做法,如图2所示,强迫模型在输出最终答案前进行一系列的头脑风暴、自我批判和修正,从而将庞大的预训练语料库转变为一个巨大的推理问题集。其次,在训练机制上,它采用了在线强化学习(on-policy RL)。模型会针对一个上下文,生成多条(实验中为8条)不同的“思考轨迹” ,然后根据最终预测的词是否与真实答案一致来给予奖励。这里的奖励函数设计也很巧妙,采用“前缀匹配奖励”,即预测的字节序列只要是真实答案的有效前缀就给予奖励,这优雅地处理了预测可能跨越多个词元的情况 。最后,在预训练设置中,一个非常实用的关键做法是“数据过滤” 。研究者用一个较小的代理模型计算每个词元的预测熵,并过滤掉那些熵很低(即很容易预测)的词元。这使得计算成本高昂的强化学习过程可以专注于那些真正需要复杂推理才能解决的“硬骨头”,极大地提升了训练效率。 实验 本章通过一系列详实的实验,验证了RPT范式的有效性,其中几个发现尤其具有启发意义。 第一,在语言建模能力上,经过RPT训练的14B(140亿参数)模型,其预测下一个词的准确率,不仅远超同等规模的基线模型,甚至能媲美一个大得多的32B模型。这强烈暗示了RPT可能是通往更强模型能力的一条“捷径”,用更少的参数实现了更强的性能。 第二,RPT展现了优秀的“规模化特性”(Scaling Properties)。实验数据显示,其性能随着RL计算量的增加,呈现出非常平滑且可预测的幂律增长(公式为 $P(C)=\frac{A}{C^{\alpha}}+P^{*}$)。这是一个至关重要的结论,因为它表明RPT是一个可靠的、可持续的提升模型能力的方法,只要投入更多计算,就能获得更好的模型。 第三,RPT预训练过的模型是更好的“强化学习起点” 。在后续针对下游任务的RL微调中,RPT模型能达到更高的性能上限,而如果对基线模型继续做传统的预训练,其推理能力反而会下降 。 最后,通过对模型“思考过程”的分析,发现RPT诱导出的推理模式与常规解决问题的模式不同,它更多地使用“假设”和“演绎”等探索性思维。案例分析也表明,模型并非在简单地套用模板,而是在进行真正的审议,包括分析上下文、生成多种可能性并进行权衡,这证实了RPT确实在培养更深层次的理解能力。

June 10, 2025 · 小茄墩

蚂蚁强化学习框架又又又大幅升级了!

清华大学交叉信息学院与蚂蚁技术研究院的联合团队近日正式开源了全异步强化学习训练系统——AReaL-boba² (AReaL v0.3)。想要深入了解 AReaL 的发展历程,可以参考吴翼老师的亲自答。此次开源代码诚意十足! 本次 v0.3 版本带来了重大升级,全面实现了异步强化学习(RL)训练。新系统完全解耦了模型生成与训练过程,从而大幅提高了显卡利用率并显著提升了训练效率。基于 AReaL v0.3,团队已在代码任务上训练出新的 SOTA模型。 AReaL-boba² 原生支持多轮智能体强化学习训练。通过强化学习算法和训练系统的协同设计 (co-design),该系统在完全不影响模型效果的前提下,实现了稳定且高效的异步 RL 训练。这标志着团队正朝着全面支持 Agentic AI的最终目标不断迈进。 论文:《AReal: A Large-Scale Asynchronous Reinforcement Learning System for Language Reasoning》 该论文提出了一种名为AReaL的大规模异步强化学习(RL)系统,传统同步RL系统在训练大型语言模型(LLMs)时,因需等待批处理中最长输出完成才能进行模型更新,导致GPU利用率低下。AReaL通过完全解耦生成(rollout)和训练过程,让rollout工作节点持续生成新输出,训练工作节点则在收集到足够数据后立即更新模型,从而显著提高GPU利用率。为了保证训练稳定性,AReaL平衡了rollout和训练工作节点的负载以控制数据陈旧度,并采用了一种增强的、能处理过时样本的PPO变体。实验表明,AReaL在数学和代码推理任务上,相比同步系统,在相同GPU数量下能实现高达2.77倍的训练加速,同时保持甚至提升了最终性能。 同步RL系统的两大局限性 马尔可夫决策过程(MDP)框架$<\mathcal{S},\mathcal{A},r,P,\gamma,H>$,其中LRM实现参数化策略 $\pi_{\theta}$。优化目标为 实践中常使用$\gamma=1$且仅在最终动作上给予非零奖励的基于规则的奖励函数,并采用PPO算法进行优化,其目标函数为 其中 $u_{t}(\theta)=\frac{\pi_{\theta}(a_{t}|s_{t})}{\pi_{old}(a_{t}|s_{t})}$ 是重要性比例。 LRM的分布式训练通常在SFT之后进行,同步RL系统迭代执行生成和训练两个阶段。 同步RL系统的两大局限性:一是推理设备利用率不足,因为生成必须等待最长序列完成;二是同步RL系统扩展性差,因为将生成任务分散到所有设备导致每个GPU的解码批次减小,易陷入内存IO瓶颈。 系统架构 为解决同步系统的局限性,AReaL设计了一个完全解耦生成和训练的异步系统,旨在实现硬件高效、可扩展和灵活的RL工作流。其核心架构包含四个关键组件:1) 可中断Rollout工作节点:处理生成请求和权重更新请求;更新时会中断当前生成,丢弃旧权重计算的KV缓存,用新权重重新计算并继续未完成序列的解码,这导致轨迹可能由不同模型版本生成 。2) 奖励服务:评估模型生成响应的准确性(如代码任务中执行单元测试)。3) 训练工作节点:从重放缓冲区采样数据,达到训练批次大小后执行PPO更新,并将参数存入分布式存储;为保数据新鲜,数据仅使用一次。4) Rollout控制器:作为协调者,读取数据,调用rollout工作节点生成,将响应送至奖励服务获取奖励,将轨迹和奖励存入重放缓冲区,并在模型更新后调用rollout工作节点的权重更新。 该架构引入了两个算法挑战:一是数据陈旧性,训练批次包含来自多个先前策略版本的数据,可能降低学习性能 ;二是策略版本不一致,生成的轨迹段可能来自不同策略版本,这从根本上违反了标准PPO的假设。 解决AReaL中的算法挑战 首先,为了应对数据陈旧性,引入了**“有意识的陈旧性训练” (Staleness-Aware Training)**。关键做法是设定一个超参数 $η$ 表示训练批次中允许的最大陈旧度(相对于策略版本) 。当 $\eta=0$ 时,系统退化为同步RL 。系统通过动态控制发送给生成服务器的生成请求吞吐量来实现陈旧度控制,具体约束为 $\lfloor(N_{r}-1)/B\rfloor\le i+\eta$,其中 $N_r$ 是已生成的轨迹数, $B$ 是训练批大小, $i$ 是当前策略版本号。同时,优先从数据缓冲区中选择较旧的轨迹组成训练批次。鼓励使用较大的 $η$ 以获得最佳系统吞吐量,这也促使算法能有效利用更陈旧的数据。其次,为了解决策略版本不一致及进一步处理陈旧数据问题,采用了解耦的PPO目标函数。该目标函数将用于采样轨迹的行为策略$\pi_{behav}$ 和作为近期目标以正则化 $\pi_{\theta}$ 更新的近端策略 $\pi_{prox}$ 解耦。新的目标函数为: ...

June 10, 2025 · 小茄墩