微软GFPO算法突破:模型推理冗长不再,高效缩减响应助力AI模型再升级

微软GFPO算法问世,大幅缩减LLM冗长回复达80%,兼顾效率与准确性,带来AI推理新突破。

原文标题:冗长响应缩减80%,DeepSeek GRPO获得颠覆性改进,微软GFPO问世

原文作者:机器之心

冷月清谈:

大型语言模型在处理复杂问题时常出现冗长回复,不仅耗费时间和计算资源,也影响用户体验。近期,微软推出了一种颠覆性的强化学习算法——Group Filtered Policy Optimization (GFPO),旨在解决这一痛点。GFPO基于DeepSeek之前提出的GRPO算法,但进行了关键改进。GRPO通过采样多个响应并计算平均奖励来优化,但其局限在于难以同时优化多重响应属性(如简洁性和准确度),导致准确度提升的同时响应长度大幅增加。
GFPO通过“组过滤”机制解决了GRPO的这一限制,它首先为每个问题采样大量候选响应,然后根据用户定义的指标(如响应长度或token效率)显式过滤出最符合期望的子集进行训练。这种隐式奖励塑造方式避免了复杂的奖励工程,能同时优化多个所需属性,尤其是大幅缩短响应长度。实验表明,GFPO能在保持甚至提升准确度的同时,将推理中因强化学习产生的多余token长度削减高达80%。该研究还提出了“自适应难度GFPO”,根据问题难度动态调整过滤策略,将训练信号集中在更需要的难题上,实现了训练效率的提升。GFPO在多项基准测试中表现出色,尤其在解决复杂问题时,不仅减少了极端冗长,还以更短的长度解决了更难的问题

怜星夜思:

1、GFPO能把LLM的回答缩短这么多,除了省钱省算力,对我们普通用户平时用AI会有啥实际感觉上的改变吗?比如说,内容会不会更精炼,还是说有时候反而觉得少了点啥?
2、文章里提到GFPO通过“过滤”候选响应来优化,但如果过度追求简洁,会不会有“误杀”的情况,比如把一些本来有用但略长的推理过程给过滤掉了,反而影响了答案的完整性或准确性?这中间的平衡点咋把握呢?
3、GFPO这种通过优化强化学习来缩减响应长度的方法,跟目前业界其他像模型剪枝、量化或者知识蒸馏这些优化方法比起来,它更侧重解决哪类问题?有没有可能把GFPO和这些技术结合起来,效果会更好?

原文内容

机器之心报道

编辑:Panda


用过 DeepSeek-R1 等推理模型的人,大概都遇到过这种情况:一个稍微棘手的问题,模型像陷入沉思一样长篇大论地推下去,耗时耗算力,结果却未必靠谱。现在,我们或许有了解决方案。


这两天,微软研究员 Dimitris Papailiopoulos 在 𝕏 上曝出一个新成果:Group Filtered Policy Optimization(GFPO)—— 一种颠覆性的强化学习算法。



GFPO 能同时权衡训练与测试阶段的计算开销,可在提升准确率的同时,将推理中因强化学习带来的多余 token 长度削减多达 80%



数据很惊人,但这究竟是如何做到的呢?


就在刚刚,GFPO 终于上线 arXiv,所有细节首次公开,高效强化学习的新玩法即将揭晓。



  • 论文标题:Sample More to Think Less: Group Filtered Policy Optimization for Concise Reasoning

  • 论文地址:https://arxiv.org/abs/2508.09726


欲知 GFPO,先看 GRPO


在介绍 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 会为每个问题采样更大的候选响应组,从而扩大响应池以包含更多具有所需特性的候选响应,然后在计算策略梯度时显式地过滤这些特性。虽然将简洁性或信息量等所需属性直接编码到标量奖励中是看似自然的做法,但同时编码多个特性却可能很难,尤其是在必须保证正确性的情况下。


数据过滤则是一种隐式、灵活的奖励塑造形式 —— 类似于使用选择性采样来放大特定模型行为的迭代式自我改进方法 。在此显式过滤步骤分离出所需的响应后,将在所选组内使用标准奖励来计算相对优势。因此,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 是通用的,可以适应各种评分指标,但微软在这里的实验中研究的是旨在减少响应长度膨胀的指标:


  • 响应长度:使用短响应进行训练能直接鼓励实现简洁性。

  • token 效率(奖励/长度):使用高 token 效率的响应进行训练可鼓励简洁性,但如果较长响应能「证明」其正当性,则仍可允许较长响应。


其他指标(例如事实性、多样性或外部质量得分)也可以集成到 GFPO 中,以优化不同的目标属性。


自适应难度的 GFPO


该团队还提出了 GFPO 变体:自适应难度 GFPO,见算法 2,其目标是将更多的训练信号分配给更难的问题。



在训练的每个步骤中,通过计算为每个问题采样的响应的平均奖励来估计问题难度 —— 较低的平均奖励意味着难度更高。


为了自适应地调整留存响应的数量 (k),该团队使用了一个轻量级 t-digest 数据结构维护提示词难度的流式摘要。t-digest 可以有效地近似迄今为止所有提示词难度(奖励均值)的四分位数,从而能够将新问题分类到相对难度的桶(bucket)中。


基于此分类,该团队为每个问题分配一个留存响应数量目标 k:简单 4 个,中等 6 个,困难和非常困难的问题 8 个(从 16 个样本中选取)。这种动态课程可以对简单提示词进行更积极的过滤,并对困难提示词进行更多探索。难度桶的数量和每个桶的 k 是此方法的超参数。


自适应难度 GFPO 可高效利用训练计算,将梯度更新集中在最需要的地方。它能帮助模型减少简单示例(正确率已经很高)的冗长程度,同时通过保留更多推理链来保持更难提示词的准确度。


该团队表示:「据我们所知,这是首个能根据问题难度动态调整有效分组规模的算法。」


基于 GFPO 的实验发现


那么,GFPO 的表现如何呢?基于 14B 参数的 Phi-4-reasoning 模型,该团队开展了实验。


他们评估了三种 GFPO 变体:


  • Shortest k/G:留存 G 中的 k 个最短响应,同时改变 k 和分组规模 G,以研究它们对长度缩减的影响。

  • token 效率:留存 G 中 k 个每 token 奖励效率最高的响应,使用 k = 8,G = 16(与基准 Shortest k/G 设置一致)。

  • 自适应难度:留存 G 中 k 个最短的响应,k 根据实时难度估算动态选择(4、6、8,8 表示简单→非常难),G = 16。


更多实验细节请参阅原论文,这里我们重点看看该团队得到的一些发现。




发现 1:「少思考」需要多采样:在不增加分组规模的情况下减少保留的响应(Shortest 6/8 GFPO)不会减少响应长度。


发现 2:留存响应的百分比 (k/G) 可控制长度压力:降低 k 或提高 G 会进一步缩短长度;该团队观察到保留 25-33% 的响应是最佳的,保留比例越小,增益越小。最短 4/24 是最佳长度优化的 GFPO 变体,可最大程度地减少过长响应。



发现 3:token 效率(奖励 / 长度)优化带来了最大幅度的缩减:在保持准确度的同时,额外长度减少了 70.9% (AIME 25)、84.6% (AIME 24)、79.7% (GPQA)、82.6% (OmniMATH) 和 79.7% (LiveCodeBench)。这些缩减在训练过程中会略微增加方差。


发现 4:自适应难度 GFPO 在同等计算量下优于 Shortest-k 算法:根据问题难度自适应地确定 k 值,在 4/5 基准测试中,与同等计算量下的 Shortest-k 算法相比,其长度缩减效果更佳。



发现 5:GFPO 可缓解分布外(OOD)长度膨胀:GRPO 会增加分布外任务的响应长度,但准确度并未提高;而 GFPO 则在略微提高准确度的同时,抑制了这种膨胀。



发现 6


  • GFPO 在所有难度级别上都会缩短响应。

  • token 效率 GFPO 在简单、中等和困难问题上实现了最大程度的缩减 —— 在简单问题上,其响应甚至比 SFT 模型更短,同时准确度与 GRPO 相当。

  • Shortest 8/24 GFPO 由于其强大的过滤功能,在最难问题上实现了最大程度的缩减。



发现 7


  • 自适应难度 GFPO 在中等难度和极难问题上的准确度超越 GRPO,同时将过长问题缩短了 47%-60%。

  • 更大的分组规模提高了难题的准确度:自适应难度(k = 8,G = 16)在难题上略有下降,但 Shortest 8/24 算法可通过更多采样找到简洁的正确响应,从而与 GRPO 的准确度相当。


发现 8:即使在固定难度下,较长的响应准确度也会降低:在较难的问题中,推理的最佳点出现在 12k-16k 个 token 左右。


发现 9:在最长的响应四分位数中,GFPO 的准确度优于 GRPO。


发现 10:GFPO 可减少极端冗长:将 ≥ 20k 个 token 的响应比例从 32% 降至 22%,同时能以较短的长度解决更难的问题(在 GFPO 中,用 ≤ 5k 个 token 回答的问题比 GRPO 的难度高 9 倍)。



发现 11:哪种 GFPO 变体效果最佳?


  • token 效率:长度缩减效果最强,准确度略有下降 

  • 难度自适应:在最难问题上,通过稳健的长度缩减获得了最佳准确度 

  • Shortest 8/24:在管理准确度与长度的权衡方面非常有效



 12:GFPO 可大幅降低推理解答和验证阶段的冗长程度,在 AIME 25 上,解答中减少了 94.4% 的多余长度,验证步骤中减少了 66.7% 的多余长度。



参考链接

https://x.com/DimitrisPapail/status/1955652396572721184

https://x.com/DimitrisPapail/status/1955653211819270337



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com

从用户心理角度看,过长的响应容易引起信息过载和认知疲劳。GFPO带来的简洁性,有望提升用户对AI的信任感和满意度,因为它显得更“聪明”、更“懂我”。在某些需要快速决策的场景,这种高效尤其宝贵。但是,对于需要探索性、发散性思维辅助的任务,比如文学创作或头脑风暴,模型如果太过于简洁,可能会限制了用户获取更多启发性内容的机会。这提醒我们,在设计AI应用时,应考虑用户的具体需求和场景,提供适度的冗余或许也是一种策略。

这个问题问得好!对于普通用户来说,最直观的感受应该就是“效率”和“体验”的提升。想象一下,以前问个问题,LLM可能给你来几百上千字,里面有用信息可能就那么几句,你得自己去扒拉。现在如果答案能直接、清晰、点到为止,那是不是少了很多阅读负担?特别是在聊天机器人、搜索摘要或者智能助手这类场景下,简洁就是王道。不过,这就像一把双刃剑,如果某个问题需要详细的解释、复杂的推导过程,过度精炼可能也会让人觉得“意犹未尽”,少了点深度或背景信息。所以,这其中的平衡点很重要,可能需要AI根据不同应用场景或用户倾向进行自适应调整。

你提到了几个非常重要的模型优化方向,它们确实各有侧重。简单来说:

* 模型剪枝(Pruning)模型量化(Quantization) 主要是从 模型结构和参数层面 下手,通过减少模型大小、降低计算精度来提高推理速度,减少内存占用。它们解决的是模型“太大、太慢”的问题,与输出内容的冗余度关系不大。
* 知识蒸馏(Knowledge Distillation) 是让一个小型模型(学生模型)去学习一个大型模型(教师模型)的行为和输出,以此在保持性能的同时减小模型体积。它侧重于迁移知识,让小模型也能有大模型的表现,主要解决部署和效率问题。

GFPO 则专注于 模型生成输出的策略层面。它不改变模型本身的结构或大小,而是通过优化强化学习的训练过程,让模型学会生成更简洁、更高效的“回答方式”。它解决的核心问题是“大模型喜欢说废话”或者“推理链太长”导致的效率问题,这通常是在模型经过SFT(监督微调)和RLHF(人类反馈强化学习)后的行为表现。

所以,GFPO和这些技术完全可以结合起来!想象一下,一个模型首先经过 剪枝和量化,本身就变得更轻量、运行更快了;然后通过 知识蒸馏 继承了更强大模型的知识;最后再用 GFPO 进一步训练它的输出策略,让它不仅运行效率高,而且吐出的内容也言简意赅、直击要害。这样就能从多个维度提升AI的整体性能和用户体验,实现“又快又小又聪明”的目标。

说白了,用AI就像请了个大白话老师。原先那老师,啥都跟你唠叨,生怕你听不懂,结果把你也给绕晕了。现在有了GFPO,老师变学霸了,只说重点,不废话。对我们这种想速战速决的懒人来说简直福音啊!比如我要个菜谱,给我一堆解释黄油历史的干啥?直接说要多少克、怎么做不香吗?但如果我是个好奇宝宝,想深入了解某个科学原理,它要是直接给我个结论,我反倒觉得没意思了。所以,看你用AI干啥,是不是“言简意赅”就看你需求了。

从系统工程的角度来看,GFPO 补充了传统模型优化技术在特定场景下的空白。剪枝、量化和蒸馏主要优化的是模型的计算效率和部署成本,而GFPO 更多地关注LLM输出内容的“质量效率”,即在保证信息价值的前提下,降低冗余度,提升用户消费信息的效率。这在许多面向用户的应用中至关重要,因为最终用户感知到的是输出内容的便捷性,而非模型内部的FLOPs。理想的解决方案往往是多技术融合。例如,可以先训练一个性能优秀的教师模型,然后通过知识蒸馏生成一个尺寸更小的学生模型,再对这个学生模型应用GFPO进行强化学习微调,使其在保持高精度的同时,输出更为简洁。这种分阶段、多层面的优化策略,能够最大限度地提升模型的全生命周期效益。

你说的很对,这就像给一个话痨做手术,医生说“我要切掉没用的赘述”,结果病人醒来发现,哎呀,虽然话少了,但关键的几句玩笑或者深层逻辑也没了。这手术做得好不好,完全取决于那个“目标函数”或者说“过滤规则”够不够聪明,它能不能分辨出哪些是“虚胖”的废话,哪些是“肌肉”一样的推理过程。文章说他们用了“token 效率”这个指标,就试图在长度和奖励之间找个平衡点,还有根据难度动态调整过滤策略。但实际模型要区分“有用但长”和“真的废话”还是挺难的,除非人类标注数据能提供非常细致的反馈——但那又太贵了!

这确实是GFPO这种基于过滤方法的核心挑战,也是“剪枝”艺术的体现。文章里提到了 GFPO 筛选响应的指标,比如“响应长度”和“token效率(奖励/长度)”,还有“自适应难度”变体。这意味着它并不是简单粗暴地剪短,而是试图在“更短”和“更高质量”之间寻找平衡。比如,用token效率指标,如果一个长响应内容质量特别高,即使长一点也可能被保留。自适应难度也说明,对难题会保留更多响应以便探索。然而,“误杀”的风险是客观存在的,特别是在一些答案需要复杂链式推理的数学或逻辑题上,可能某个“看似冗余”的中间步骤却是不可或缺的。把握平衡点,关键在于奖励函数的设计、过滤指标的精细化,以及对不同任务场景下“好答案”的定义。这需要大量的实验和人工评估来不断校准。

在强化学习的领域,这种“探索-利用”的矛盾一直存在,GFPO的过滤机制实际上是在“利用”已知的简洁性偏好,同时仍需保证“探索”足够多样的、可能包含关键信息的响应。对于防止“误杀”,除了文章提到的指标,未来可能需要引入更复杂的语义理解和推理链识别能力,让模型知道哪些信息是支撑结论的关键。另外,用户反馈机制也可以发挥作用,允许用户在极端简洁和详细解释之间进行选择,或者提供一个“展开更多”的按钮,将部分被过滤掉的、但可能仍有价值的推理过程展示出来,作为一种“补救”措施,这在产品设计上也能缓解过度过滤的担忧。

嘿,这问题问到了点子上!打个比方你就懂了:

* 剪枝/量化 就像是给模型“减肥”,直接让它变得更瘦、肌肉更紧实,先天体质就变好了,跑起来当然就快。这是改“硬件”。
* 知识蒸馏 就像是让一个聪明的小孩儿去模仿一个大学霸,把学霸的知识浓缩到自己脑子里,这样小个子也能有大智慧。这是“师傅带徒弟”。
* GFPO 呢,就像是给这个本身就很厉害的大模型装了个“说话过滤器”和“思考效率优化器”。它不是改变模型本体,而是改变模型“表达自己”的方式,让它说话更精炼,思考更高效。这是给它教“说话的艺术”。

所以,这几招根本不冲突,完全可以“组合拳”出击!先给模型减减肥(剪枝/量化),再让它学点干货(知识蒸馏),最后再教它怎么把话说得更漂亮更短(GFPO),那不得上天了?效果肯定杠杠的!