引言:当大模型变得“话痨”
近年来,大型语言模型(LLMs),例如DeepSeek R1在解决复杂推理任务方面取得了显著进展,尤其是在数学、科学和编程等领域。这很大程度上归功于强化学习(Reinforcement Learning, RL)技术的应用,特别是基于验证器奖励的强化学习(RLVR)方法,如PPO(Proximal Policy Optimization)和GRPO(Group Relative Policy Optimization)。这些方法通过奖励模型在推理过程中生成的正确“思考链”(Chain-of-Thought),使得模型能够“思考得更久”,从而解锁了前所未有的性能。
然而,这种能力的提升伴随着一个不容忽视的副作用:长度膨胀(Length Inflation)。为了在准确率上获得哪怕是微小的提升,模型倾向于生成越来越长的回答。这些冗长的回答中,许多词元(tokens)并非真正服务于逻辑推理,而仅仅是“填充物”——重复的计算、不必要的自我纠正、或者冗余的解释。这种现象不仅大幅增加了模型在推理(Inference)阶段的计算成本和延迟,也降低了用户体验,甚至可能因为引入更多步骤而增加出错的风险。
一个核心问题是:更长的推理链真的等同于更好的推理吗?微软研究院和威斯康星大学麦迪逊分校的研究人员在他们的最新论文《Sample More to Think Less: Group Filtered Policy Optimization for Concise Reasoning》中,对这一问题提出了挑战。他们发现,在很多情况下,更长的回答与正确性并无强关联,甚至可能呈负相关。
为了解决这一“模型话痨”问题,研究者们提出了一种简单而有效的新方法——组过滤策略优化(Group Filtered Policy Optimization, GFPO)。其核心思想可以用一句话概括:在训练时采样更多,让模型在推理时思考更少(Sample more at training-time, to think less at inference-time)。通过在训练阶段引入一个巧妙的过滤机制,GFPO能够在不牺牲甚至提升核心推理能力的前提下,显著抑制模型的长度膨胀,使其生成更简洁、高效的推理过程。
本文将对这篇论文进行深度解读,详细剖析其背后的动机、核心算法、实验设计以及深刻的分析洞见。
第一章:问题背景——大模型推理的“长度膨胀”现象
在深入了解GFPO之前,我们必须首先理解它试图解决的问题的根源和严重性。
1.1 强化学习如何导致“话痨”?
RLVR方法通过一个“验证器”或“奖励模型”来评估LLM生成的回答。这个验证器通常会给最终答案正确、推理步骤清晰的回答打高分。这种机制天然地激励模型生成详尽的、按部就班的推理过程。理论上,这是为了让模型的“思考”过程透明化,并确保其逻辑的严密性。
然而,在实践中,模型为了最大化奖励,学会了一种“讨巧”的策略:用长度换准确率。模型可能会发现,通过反复检查、用不同方式重述同一观点、或者列出所有可能的中间步骤,可以稍微提高最终答案正确的概率。即使这些额外的步骤对核心逻辑的贡献微乎其微,但只要它们不引入错误,并且让整个推理链看起来更“全面”,奖励模型就可能给予正面反馈。久而久之,模型就被训练成了一个谨小慎微但略显啰嗦的“话痨”。
1.2 更长 ≠ 更准:来自实践的证据
论文作者引用了多项研究来佐证“更长不等于更准”的观点。
-
Balachandran等人(2025)的研究发现,在AIME 25数学竞赛基准测试上,DeepSeek-R1模型生成的回答长度几乎是Claude 3.7 Sonnet的5倍,但两者的准确率却不相上下。 -
Hassid等人(2025)的研究也表明,在AIME和HMMT等数学测试中,QwQ-32B模型生成的最短回答比随机采样的回答准确率高出2%,同时使用的词元数减少了31%。
为了进一步验证这一点,本文作者对Phi-4-reasoning-plus模型在AIME 25数据集上的表现进行了专门分析。他们发现,在那些同时生成了正确和错误答案的问题中,高达72% 的情况下,更长的回答反而更可能是错误的。这有力地表明,过度的冗长不仅是效率低下的表现,更可能是模型推理出现偏差或陷入困境的信号。
1.3 现有方法的局限性
学术界已经注意到并尝试解决长度膨胀问题。一些方法,如Dr. GRPO和DAPO,通过改进损失函数中的归一化方式(Token-level Loss Normalization)来抑制长度。这些方法试图通过调整损失计算,使得长回答中的错误词元受到更重的惩罚。
然而,作者发现,仅仅依靠损失归一化是不够的。他们观察到,即使应用了这些先进的归一化技术,模型响应的长度仍然会随着训练的进行而迅速增长——在短短100个训练步骤内,平均长度从4k词元飙升至14k词元。
作者推测,这是因为损失归一化是一把双刃剑。它在惩罚长而错误的回答的同时,也放大了长而正确的回答所获得的奖励。对于那些本身就经过大量“按部就班”数据微调(SFT)的强大基础模型(如Phi-4-reasoning),这种机制无意中强化了它们固有的“详细”倾向,使其变得更加冗长。
因此,需要一种更直接、更根本的方法来对抗长度膨胀,而不仅仅是在损失函数上做文章。这正是GFPO提出的动机。
第二章:GRPO算法回顾
要理解GFPO,我们首先需要回顾它的基础——GRPO(Group Relative Policy Optimization)。GRPO本身是PPO算法的一个简化变体,专为LLM的RL训练设计。
2.1 从PPO到GRPO
PPO是强化学习领域的经典算法。它的核心是优势函数(Advantage Function) ,用于衡量在状态 下采取动作 相对于平均水平的好坏。为了计算优势,PPO通常需要训练一个独立的价值模型(Value Model)来估计每个状态的期望回报。这增加了训练的复杂性和不稳定性。
GRPO巧妙地绕过了价值模型。它的核心思想是:对于同一个问题(prompt),让模型生成一组(Group)共 个不同的回答。然后,将这一组回答的平均奖励作为基线(baseline)。对于其中任意一个回答,它的优势就是其自身奖励与这个组平均奖励的差值。
这种方法简单而有效,因为它直接利用了模型在同一问题上的多种表现来进行内部比较,避免了对一个独立价值模型的依赖。
2.2 GRPO的目标函数
GRPO的目标函数形式上与PPO类似,可以写为:
我们来分解一下这个复杂的公式:
-
是问题(prompt), 是生成的 个回答。 -
内部是PPO标志性的截断代理目标(Clipped Surrogate Objective),用于稳定策略更新。 -
是新旧策略在词元 上的概率比。 -
是在词元 上的优势估计。在GRPO中,整个回答的优势 计算如下:
其中 是回答 的总奖励。优势被组内的奖励均值和标准差归一化。 -
是KL散度惩罚项,防止新策略偏离旧策略太远。 -
是熵正则项,鼓励探索。
尽管GRPO很有效,但它有一个关键限制:它依赖于一个单一的标量奖励信号 。这使得我们很难同时优化多个目标,比如在追求高准确率(高奖励)的同时,还希望回答简短。这通常会导致模型为了奖励而牺牲简洁性,从而产生长度膨胀。
第三章:GFPO——组过滤策略优化的核心思想
GFPO正是为了解决GRPO的上述局限性而设计的。它在GRPO的基础上引入了一个简单但功能强大的修改:在计算优势和梯度之前,先对采样出的回答进行一次过滤。

3.1 GFPO的核心机制:采样-过滤-学习
GFPO的流程可以分解为三个步骤:
-
扩大采样(Sample More): 对于每个问题 ,不再像标准GRPO那样采样 个回答,而是采样一个更大的组,例如 个()。这增加了池中出现具有理想特质(如简短且正确)的回答的概率。 -
度量驱动的过滤(Filter): 定义一个或多个我们关心的度量(metric),例如“回答长度”或“词元效率”。根据这些度量,从 个回答中筛选出最好的 个,形成一个保留子集 。 -
选择性学习(Learn Selectively): 只在这个保留子集 内部计算优势和策略梯度。所有被过滤掉的( 个)回答,它们的优势被强制设为零,不参与模型的参数更新。
这个过程就像一位严格的老师,他让学生们尝试多种解题方法,但只对那些最简洁、最高效的解法进行点评和指导,而对那些冗长拖沓的解法直接忽略。通过这种方式,模型被引导向我们期望的行为方向发展。
这种数据过滤的方法,可以看作是一种隐式的奖励塑造(Implicit Reward Shaping)。我们不需要设计复杂的、包含长度惩罚项的奖励函数,而是通过直接选择“好”的样本,间接地将“简洁性”这个偏好注入到学习过程中。
3.2 GFPO的数学表达
GFPO的目标函数是对GRPO的直接修改。我们引入一个二进制掩码 ,其中如果回答 属于保留子集 ,则 ,否则 。
GFPO的目标函数可以写为:
关键在于优势项 的计算:
其中:
-
和 是只在保留子集 内部计算的奖励均值和标准差。这确保了优势的计算是在“好”的样本之间进行的,比较基准更高。 -
这一项是核心。对于所有不在 中的回答,它们的优势 直接为零,因此对策略更新的贡献也为零。

3.3 GFPO使用的关键度量
虽然GFPO框架可以集成任何度量,但本论文主要关注两个旨在减少长度膨胀的度量:
-
响应长度(Response Length): 最直接的度量。在过滤步骤中,直接选择 个最短的回答进行学习。这直接鼓励模型生成更简洁的输出。 -
词元效率(Token Efficiency): 定义为 奖励 / 长度(reward / length)。这个度量更加精妙。它不仅奖励简短,更奖励“物有所值”的长度。一个回答可以很长,但只要它能带来相应的高额奖励,它的词元效率就可能很高。反之,一个中等长度但答案错误的回答,其词元效率会非常低。这个度量旨在鼓励模型在简洁和有效之间找到最佳平衡。
第四章:GFPO的变体与实验设置
为了进一步提升GFPO的性能和效率,作者还提出了一种自适应的变体,并精心设计了一系列实验来验证其效果。
4.1 自适应难度GFPO(Adaptive Difficulty GFPO)
不同难度的问题对推理长度的需求是不同的。简单问题理应有简短的回答,而难题可能确实需要更长的推理链。一刀切地要求所有回答都变短可能不是最优策略。
基于此,作者提出了自适应难度GFPO。其核心思想是:根据问题的难度,动态地调整过滤的严格程度。
-
难度估计: 问题的难度可以通过这批采样回答的平均奖励来实时估计。平均奖励越低,通常意味着问题越难,模型越难获得正确答案。 -
动态调整 : 算法会维护一个关于问题难度的流式数据摘要(使用t-digest数据结构)。根据当前问题难度在所有历史问题中所处的分位数(例如,最难的25%,中等难度的50%等),动态地设定保留的回答数量 。 -
对于简单问题,设置一个较小的 (例如,从16个中保留4个),进行激进的过滤,强制模型学习简洁。 -
对于困难问题,设置一个较大的 (例如,从16个中保留8个),进行温和的过滤,允许模型进行更多的探索,保留更多可能正确的长推理链。
-
这种方法使得训练计算资源能够更智能地分配,重点关注那些最需要优化的困难问题,同时有效压缩简单问题上的冗余。
4.2 实验设置
为了公平且全面地评估GFPO,作者进行了一系列严谨的实验。
-
基础模型: Phi-4-reasoning,一个在STEM领域经过大量推理数据微调的140亿参数模型。 -
基线(Baseline): GRPO,具体实现是与基础模型配套的Phi-4-reasoning-plus,它本身就是用GRPO训练的。 -
数据集: 训练集包含7.2万个数学问题。值得注意的是,训练过程被严格限制在100个step,总共只会看到6400个问题,这与训练基线模型GRPO的设置完全相同,保证了公平性。 -
奖励函数: 使用了基线模型相同的奖励函数,它是一个综合了“长度感知的准确率”(对长而正确的回答有轻微惩罚)和n-gram重复惩罚的加权和。作者特别指出,这个奖励函数自身的长度惩罚不足以抑制GRPO的长度膨胀。 -
组大小(Group Size): -
基线GRPO: 。 -
GFPO: 实验了更大的采样组大小 ,同时保留的回答数 ,以确保与GRPO在梯度计算层面是对齐的。
-
-
评估基准: -
分布内(In-Distribution): AIME 2025/2024 (数学), GPQA (研究生水平问答), Omni-MATH (奥数级数学)。 -
分布外(Out-of-Distribution): LiveCodeBench (代码生成),用于测试模型在未经训练的领域上的泛化能力。
-
-
评估指标: -
Pass@1 准确率: 单次采样回答的准确率。 -
平均响应长度 (L): 生成回答的平均词元数。 -
超额长度缩减率 (Excess Length Reduction, ELR): 这是本文的一个关键创新指标,其计算公式为:
这里的 是未经RL训练的SFT模型的长度。ELR衡量的是,由GRPO训练过程所“增加”的这部分长度,有多大比例被GFPO成功地“削减”掉了。ELR为100%意味着GFPO完全消除了GRPO带来的长度膨胀,使回答长度恢复到SFT模型的水平。
-
第五章:核心实验结果与分析
实验结果清晰地展示了GFPO的有效性。
5.1 宏观表现:显著缩短长度,保持准确率


横跨所有五个基准测试,实验结果呈现出高度一致的趋势:
-
准确率保持稳定: 使用威尔科克森符号秩检验(Wilcoxon signed-rank test)进行统计分析,结果显示GFPO各个变体与基线GRPO之间的准确率差异在统计上不显著。这意味着GFPO在削减长度的同时,成功地保留了GRPO带来的核心推理能力。在某些情况下,如Omni-MATH,GFPO的准确率甚至略有提升。 -
长度显著缩减: 所有GFPO变体都大幅降低了响应长度。 -
基于长度(Shortest k/G)的GFPO,在的设置下,对GRPO的超额长度缩减率(ELR)在AIME 25上达到46.1%,在GPQA上达到57.3%,在Omni-MATH上达到71%。 -
基于词元效率(Token Efficiency)的GFPO表现最为出色,在所有任务上都取得了最大的长度缩减。其平均ELR高达79.5%,在AIME 24上甚至达到了84.6%。
-
-
“多看”是“少想”的前提: 作者进行了一项消融实验,只在GRPO的原始采样组()中进行过滤(例如,Shortest 6/8 GFPO)。结果发现长度缩减效果非常有限。这证实了GFPO的核心假设:必须通过扩大采样( G
↑)来增加候选池的多样性,才能有效地筛选出简洁且优秀的回答。简单的“少学”而不“多看”是行不通的。
5.2 k/G
保留比例是关键控制阀

通过对不同采样大小 (16, 24) 和保留数量 (8, 6, 4) 的组合进行实验,作者发现了一个关键规律:控制响应长度的核心杠杆是保留比例k/G。
-
无论是通过减少 (更严格的过滤)还是增加 (更大的候选池),只要 k/G
的值下降,模型的平均响应长度就会随之降低。 -
当然,这种降低并非线性。当 k/G
降低到一定程度(论文中观察到25%-33%是甜点区)后,继续降低带来的长度缩减收益会递减。这意味着过度激进的过滤可能没有必要。
5.3 帕累托前沿分析:GFPO实现更优的效率-准确率权衡

该图以二维散点图的形式,展示了不同模型在“准确率-响应长度”空间中的位置。理想的模型应该位于图的左上角(高准确率,低长度)。
-
GRPO模型(蓝色方块)在所有图上都位于相对靠右的位置,表明其长度较长。 -
绝大多数GFPO变体都位于GRPO的左侧或左上方。在除AIME 25外的所有四个基准上,至少有一个GFPO变体严格帕累托优于(Pareto-superior to) GRPO,即同时实现了更高的准确率和更短的长度。 -
即使在GRPO准确率最高的AIME 25上,多个GFPO变体也通过大幅缩短长度而处于帕累托前沿上,为使用者提供了在轻微准确率损失下换取巨大效率提升的选项。
5.4 智能采样策略的威力
-
词元效率GFPO: 这种“智能采样”方法通过优化 reward/length
,实现了最极致的长度压缩。它能有效地识别并惩罚那些“空有长度而无贡献”的词元,迫使模型生成高度凝练的推理。虽然训练过程中的性能曲线方差稍大,但最终效果证明了其作为一种优化简洁推理代理指标的有效性。 -
自适应难度GFPO: 这种方法在同等计算成本下(与Shortest 6/16 GFPO相比),在5个基准中的4个上取得了更强的长度缩减。更重要的是,它在最难的测试集GPQA上取得了所有模型中的最高准确率。这证明了根据问题难度动态分配“思考资源”的策略是有效的。
5.5 出色的分布外泛化能力
在未经训练的代码生成任务LiveCodeBench上,GRPO表现出严重的长度膨胀(从SFT的10.3k增加到13.9k词元),但准确率却毫无提升。这是一种不希望看到的副作用。
相比之下,GFPO不仅有效抑制了这种分布外的长度膨胀,某些变体(如Shortest 8/24)甚至还略微提升了代码生成的准确率。这表明GFPO学习到的“简洁”偏好具有良好的泛化性,能够迁移到新的领域,避免不必要的冗长。
第六章:深度剖析——GFPO是如何“思考”的?
为了更深入地理解GFPO的工作机制,作者在AIME 2025数据集上进行了一系列精细的剖析。
6.1 在不同难度问题上的表现


作者首先根据SFT模型在问题上的初始准确率,将问题划分为“简单”、“中等”、“困难”和“非常困难”四个等级。
-
长度: 正如预期,所有模型的响应长度都随着问题难度的增加而急剧增长。GFPO在所有难度等级上都有效缩减了长度。其中,词元效率GFPO在简单问题上最为激进,其生成的回答甚至比SFT模型还要短,同时准确率还更高,证明了准确率和简洁性可以同时优化。而自适应难度GFPO则在最困难的问题上展现出越来越强的长度削减能力,有效修剪了“长尾”的冗长回答。 -
准确率: 所有RL方法(GRPO和GFPO)都显著提升了相对于SFT的准确率,尤其是在难题上。自适应难度GFPO的表现尤为突出,它在简单、中等和非常困难的问题上都达到或超过了GRPO的准确率,证明其动态资源分配策略的成功。
6.2 重新审视“长答案”与准确率的关系

为了排除“难题导致长答案”这一混淆因素,作者在固定的难度等级内部(例如,仅在“困难”问题中)分析了答案长度与准确率的关系。
-
结果再次证实:即使在问题难度相同的情况下,更长的回答也倾向于更不准确。 -
在“困难”问题上,大多数模型的准确率在中间长度(12k-16k词元)达到峰值,形成一个“甜点区”。这表明推理既需要足够的长度来展开,又需要避免过度思考而引入错误。 -
一个有趣的发现是,在最长的回答区间(quartile),GFPO变体的准确率普遍高于GRPO。这是因为GFPO通过训练时的过滤,使其生成的“长答案”也相对更短、更有效,而GRPO的长答案则包含了更多冗余和错误。
6.3 GFPO到底“修剪”了什么?

为了弄清GFPO具体缩短了推理过程的哪个部分,作者将每个推理链条手工标注为四个功能部分:
-
问题(Problem): 复述和理解问题。 -
解题(Solution): 提出和发展候选解法。 -
验证(Verification): 检查中间结果和最终答案。 -
最终答案(Final): 给出结论。
分析发现:
-
GRPO的长度膨胀主要发生在“解题”和“验证”这两个核心推理阶段。例如,在AIME 25上,它将“解题”部分的长度从SFT的6.5k词元增加到8.3k,“验证”部分从1.9k增加到3.1k。 -
GFPO变体则精准地对这两个阶段进行了压缩。Shortest 8/24 GFPO将“解题”部分的超额长度削减了94.4%,将“验证”部分的超额长度削减了66.7%。 -
与此同时,GFPO几乎没有改变“问题”和“最终答案”部分的长度,这表明GFPO的“修剪”是靶向性的,它削减的是推理过程中的冗余思考,而不是问题本身或最终结论。
第七章:定性案例分析
论文附录中生动的定性案例,让我们能更直观地感受到GFPO带来的改变。
-
案例1 (AIME 25, Problem 1): -
GRPO: 其响应充满了大量的重复计算。在计算一个三角形面积时,它反复计算和验证了六次。 -
Token Efficiency GFPO: 响应非常直接,使用向量叉乘的方法,一次就计算出了正确答案,干净利落。
-

-
案例2 (AIME 25, Problem 8):
-
GRPO: 在解题过程中,对同一个垂直平分线方程,反复推导和检查了五次,思维过程显得犹豫不决。 -
Token Efficiency GFPO: 同样是一次性完成推导,逻辑清晰。
-
-
案例3 (AIME 25, Problem 5):
-
GRPO: 在解题初期陷入了对图中弧线顺序的繁琐记账中,迟迟未能进入核心。 -
Shortest 8/24 GFPO: 迅速识别出题目的核心几何概念(中点三角形的外接圆是九点圆),从而快速切入解题路径。
-
-
案例4 (AIME 25, Problem 9):
-
GRPO: 面对一个需要解四次方程的问题,其思考过程在多种不确定的方案(因式分解、对称性、旋转变换)之间来回跳跃,没有形成明确的计划。 -
Adaptive Difficulty GFPO: 迅速确定了一个清晰的解题策略(使用旋转坐标变换),并坚持执行。
-
这些案例一致表明,GRPO的“长思考”很多时候是低效的、重复的、甚至是混乱的。而GFPO通过其选择性学习机制,成功地引导模型形成了更直接、更专注、更高效的推理风格。
点评
GFPO最大的优点在于其思想的简洁。它没有引入复杂的网络结构或需要精心设计的奖励函数。它仅仅是在现有的GRPO框架上增加了一个“采样-过滤”步骤,这是一个非常直观且易于实现的修改。这种方法论使得它可以轻松地被集成到几乎任何基于组采样(如GRPO)的RL训练流程中,具有极高的工程价值和可复现性。
GFPO的性能在很大程度上依赖于几个关键超参数,特别是采样组大小 G 和 保留数量 k(或者说保留比例 k/G)。论文探索了几组设置并发现25%-33%是比较好的,但这可能并不适用于所有模型或任务。在新的应用场景下,如何高效地找到最优的k/G比例,本身就是一个需要额外实验和调优的挑战。同样,自适应难度GFPO中的难度分桶数和每个桶的k值也需要预先设定和调整。
GFPO通过强力引导模型学习简洁的表达,可能会存在一些潜在风险。对于某些极其复杂、需要前所未有的长链推理才能解决的新问题,一个被“简洁化”训练过的模型,是否会因为习惯于“思考更少”而丧失进行这种极端探索的能力?换句话说,通过惩罚长链条,我们是否可能在抑制冗余的同时,也无意中抑制了模型进行真正有益的、长程探索性思考的潜力?虽然当前实验表明在现有难题上准确率得以保持,但这种“简洁偏见”对模型能力上限的长期影响仍是一个开放问题。