
这项由加州大学圣地亚哥分校、伊利诺伊大学厄巴纳-香槟分校和Adobe Research联合完成的研究,以预印本形式于2026年5月13日发布,论文编号为arXiv:2605.12995v1。
每天刷视频、买东西、听音乐时,背后都有一套系统在悄悄帮你做决定:从几千上万个选项里,先圈出一批候选,再把最合适的排在最前面。这个"先选后排"的过程,听起来简单,做起来却暗藏一个让工程师们头疼已久的难题。而这篇论文,正是为了解决这个难题而生的。
不妨用一个厨房的比喻来贯穿整篇故事。假设你是一家餐厅的主厨,今晚需要给客人端上一道最合口味的菜。你先要从仓库里挑出一批食材候选,然后再从这批候选里决定把哪道菜摆在最显眼的位置端给客人。"选食材"和"摆盘上菜"是两件事,但它们又紧密相连——如果你一开始就没选对食材,后面再怎么摆盘也无济于事。
研究团队提出的方法叫做F-GRPO(Factorized Group-Relative Policy Optimization,分解式群体相对策略优化)。这个名字听起来很复杂,但核心思路其实是:让同一个"大厨"(大语言模型)在一次连贯的操作里完成"选食材"和"摆盘"两件事,而且在训练这个大厨的时候,"选食材选得好不好"和"摆盘摆得好不好"要分开打分,不能混在一起笼统评价。
---
一、为什么"先选后排"这件事这么难
在推荐系统和信息检索领域,"先从一大堆东西里挑出候选,再把候选排个好的顺序"几乎是标准做法。传统的方案是把这两步交给两个不同的模块分别处理——第一个模块负责召回,第二个模块负责精排。这就好比你雇了两个员工:一个负责从仓库里搬货,另一个负责把货物摆上货架。两个人各司其职,看起来分工合理。
大语言模型(可以把它理解为一种超级聪明的文字处理AI)的出现,让人们有了新的想法:能不能让一个AI在一次回答里就同时完成"选"和"排"两件事?理论上完全可以。你给它一个候选清单,它输出一个最终排好序的结果。
但问题来了。当AI输出最终结果之后,你只能看到"这个结果好不好",却完全看不出"是选错了还是排错了"。回到厨房的比喻:客人觉得这道菜不好吃,你不知道是因为食材选错了,还是因为摆盘的时候顺序搞错了。这就是研究团队所说的"功劳归因缺口"——反馈信息太模糊,无法精准指导改进。
功劳归因缺口会导致训练AI的过程变得不稳定、效率低下。更糟糕的是,如果把"选食材"的得分和"摆盘"的得分混在一起给AI一个综合评价,会出现很荒谬的情况:食材选得很烂,但恰好摆盘摆得不错,综合分数还可以,AI就以为自己"选食材选对了",下次还会犯同样的错误。反过来,食材选得很好,但摆盘有点乱,综合分数偏低,AI反而以为自己"选食材选错了",会开始改变本来正确的选择策略。这种"互相污染"的信号,会让训练越走越偏。
另一条路是把两个步骤交给两个完全独立的AI模型来做,分开训练。这确实能让每个模型专注于自己的任务,但又会引入新的麻烦:负责排序的模型在训练时看到的是"完美的食材清单",但实际使用时它收到的却是"另一个模型选出来的、不那么完美的食材清单"。训练时的条件和实际使用时的条件不一样,就像你的厨师一直在用顶级食材练习,真正上岗时却被塞了一批普通食材,表现自然会打折扣。这就是"分布偏移"问题。
---
二、F-GRPO的核心思路:一个大厨,两份评分
研究团队的解决方案,是在同一个AI模型里把"选食材"和"摆盘"这两个步骤明确拆开,但仍然在同一次连贯操作里完成,同时用两套独立的评分标准分别给这两个步骤打分。
具体来说,模型在回答时会先输出一段"候选清单"(称为slate,也就是"菜单"),用特殊的标签`<SLATE>...</SLATE>`包裹起来,再接着输出最终的排序结果,用`<RANK>...</RANK>`包裹起来。整个过程是一气呵成的,就像一个主厨先在心里列好备选食材清单,再马上决定端哪道菜出去,都在一次思考过程里完成。
评分时,两个部分分别用不同的标准衡量。"选食材"这个步骤用的是"覆盖率"指标——你有没有把真正重要的东西选进清单?这个指标完全不在乎顺序,只关心"有没有"。就像你去超市买菜,只要买对了需要的食材就行,装进袋子的顺序无所谓。"摆盘"这个步骤用的是NDCG(可以理解为"位置敏感的排名质量分数")——最好的东西有没有排在最前面?越靠前的位置权重越高,就像餐厅里最显眼的位置要摆最吸引人的菜。
接下来是F-GRPO方法里真正关键的一步:分开计算"群体相对优势"。每次训练时,模型会针对同一个问题生成8个不同的回答(这8个回答就是"群体")。然后计算这8个回答里,每个回答的"选食材得分"和"摆盘得分"分别比群体平均水平高多少或低多少。"选食材"部分的梯度更新(也就是调整模型参数的信号)只由"选食材得分"决定,"摆盘"部分的梯度更新只由"摆盘得分"决定。两套信号严格隔离,互不干扰。
研究团队用了严格的数学证明来支撑这个设计。他们证明了,在第一步更新时,"选食材"部分的更新方向完全只取决于覆盖率好不好,"摆盘"部分的更新方向完全只取决于排序质量好不好,两者之间不存在任何"跨阶段梯度污染"。这就解决了之前提到的"综合评分会互相误导"的问题。
相比之下,普通的GRPO方法(也就是不做这种分解的基线版本)会把"选食材得分"和"摆盘得分"加起来算一个总分,然后用这个总分去更新模型的所有参数,包括负责"选食材"的那些参数和负责"摆盘"的那些参数。这样做的问题,研究团队在论文里用了一个很直观的例子说明:如果某次回答"摆盘质量特别好,但食材选得很糟",总分可能仍然不错,模型就会错误地强化"选糟食材"这个行为。
---
三、实验设计:两类任务、四个数据集
为了验证F-GRPO的效果,研究团队在两类完全不同的任务上做了测试,一类是音乐和电影推荐,另一类是多跳问答(需要从多个信息片段中找出证据来回答复杂问题)。
在推荐任务里,研究团队用了MovieLens(电影评分数据集)和LastFM(音乐收听数据集)。具体设置是:给模型一个用户的历史观看或收听记录,再提供20个候选项目(1个真正会喜欢的,19个干扰项),让模型先选出一个候选清单,再从清单里排出最终推荐顺序。
在多跳问答任务里,用的是HotpotQA和MuSiQue两个数据集。设置是:给模型一个需要多步推理才能回答的复杂问题,以及20个候选段落(其中2到4个是真正有用的"黄金证据",其余是干扰项),让模型先选出相关段落,再按重要性排序。
模型方面,团队选用了Qwen3-4B(40亿参数)和Qwen3.5-2B(20亿参数)两个规模的大语言模型,重点放在20亿到40亿参数这个范围,是为了在有限的计算资源下做更全面的实验分析。所有的强化学习训练都从一个有监督微调(SFT)的预热阶段开始,也就是先用人工标注好的正确答案让模型"入门",再用强化学习进一步提升。
每个数据集都有10000个训练样本、200个验证样本和2000个测试样本。为了防止模型走捷径(比如利用选项在列表里的位置信息),候选项目每次都会被随机打乱顺序。
---
四、实验结果:数字背后的故事
实验结果是支撑整篇论文核心论点的关键证据,值得详细拆解。评估指标主要是Recall@k(在前k个结果里,有没有把真正重要的东西找到)和NDCG@k(前k个结果里,重要的东西排得够不够靠前)。
在电影推荐的LastFM数据集上,Qwen3-4B版本的F-GRPO展现了最明显的优势。以Recall@5为例,F-GRPO达到了81.7%,而普通GRPO只有73.9%,提升幅度约为10.6%。这意味着在随机挑选的测试案例里,F-GRPO在5个推荐里找到目标的能力比GRPO明显更强。在Recall@3上,F-GRPO达到72.4%,而GRPO是55.1%,差距更为显著。
相比有监督微调(SFT)方法,F-GRPO的优势更加突出。在LastFM的Recall@3上,F-GRPO是72.4%,SFT只有47.1%,相对提升超过53%。这说明强化学习提供了SFT无法提供的额外学习信号——通过让模型自己尝试、自己犯错、自己改进,能学到单纯模仿正确答案学不到的东西。
解耦SFT(把"选"和"排"分给两个独立模型分开训练)的表现则相当差强人意。在LastFM上,"选+排"完整版解耦SFT的Recall@3只有40.4%,甚至不如单模型SFT的47.1%。这印证了之前提到的分布偏移问题:排序模型在训练时只见过完美的候选清单,在测试时面对选择模型给出的不完美清单就水土不服了。
在多跳问答任务里,F-GRPO的优势主要体现在更高的截断位置(@3和@5),尤其是在MuSiQue这个需要找出2到4个关键证据段落的数据集上。以Qwen3-4B为例,F-GRPO在MuSiQue的Recall@3上达到71.3%,而GRPO是63.0%,相对提升约13.2%。
在HotpotQA上,4B模型的F-GRPO和GRPO表现接近(两者Recall@1都是48.0%),但在@3和@5上F-GRPO略有优势。2B模型上差距更明显,Recall@3上F-GRPO是91.4%,GRPO是86.3%,相对提升约5.9%。研究团队的解释是:当模型规模更小、覆盖候选的能力天然更受限时,分开给"选食材"单独打分的好处就更加明显。
值得一提的是,这些经过领域内强化学习训练的模型,在HotpotQA上甚至超过了专门针对MS MARCO数据集训练的专业重排序模型(如RankZephyr和MonoT5)。要知道那些专业模型规模更大(7B或3B参数),而且是专门为排序任务优化过的,F-GRPO用一个通用的4B模型在同领域数据上训练就能超越它们,说明领域内数据的重要性不亚于模型规模。
---
五、训练过程里的有趣发现
除了最终的测试结果,研究团队还深入分析了训练过程中发生了什么,这些分析本身就很有启发性。
首先是"选食材的模型比排菜的模型更早成熟"这个现象。研究团队追踪了在训练过程中,"选食材"部分的质量(以覆盖率衡量)和"摆盘"部分的质量(以NDCG衡量)分别在什么时候达到各自峰值的90%。结果发现,在LastFM数据集上,覆盖率在大约训练步骤150时就已经达到峰值的90%,而排名质量要到步骤200才达到。虽然差距只有50步,但这个顺序是稳定的、有规律的,而且符合直觉:只有当"选食材"已经比较稳定地选出了有用的候选,"排菜"才能在此基础上学习怎么把最好的摆最前面。如果候选清单一直在变,排序模型就没有一个稳定的基础来学习。
其次是"选食材追求广覆盖,排菜追求精准集中"的互补关系。研究团队在LastFM上追踪了"选食材"部分和"最终排名"部分各自的精准率和召回率随训练步骤的变化。结果非常清晰:到训练结束时,"选食材"部分的召回率高达0.90(也就是真正重要的东西有90%都被选进清单了),但精准率只有0.090(清单里只有9%是真正重要的,大量干扰项混入其中)。反过来,"最终排名"部分的精准率达到0.163,是"选食材"精准率的将近两倍,但召回率相应下降。这恰恰说明两个阶段实现了正确的分工:前者"宁可错杀,不可放过",广泛撒网保证重要的东西不漏掉;后者从这张大网里精挑细选,把最重要的东西推到最前面。2B模型上也呈现了完全相同的模式,说明这不是偶然现象,而是F-GRPO训练机制的内在规律。
第三个有趣的发现是错误归因分析。研究团队把F-GRPO(Qwen3-4B版本)在测试集上的失败案例拆分成两类:一类是"选食材时就漏掉了目标"(称为slate miss,菜单遗漏),另一类是"目标进了菜单但排序时没排到前面"(称为rank drop,排名下滑)。在LastFM上,菜单遗漏占8.9%,排名下滑占9.4%,两类错误比例接近。在MovieLens上,菜单遗漏占17.9%,排名下滑占15.4%,依然比较均衡。如果错误高度集中在某一个阶段,说明另一个阶段的独立评分意义不大。而错误在两个阶段之间分布均衡,恰恰说明两个阶段都有改进空间,也都需要各自独立的学习信号。
---
六、奖励信号的选择:用什么衡量"选食材选得好"
在推荐任务里,研究团队比较了两种不同的"选食材奖励"设计方式:一种是F1分数(同时考虑精准率和召回率的综合指标),另一种是单纯的召回率。
F1奖励会惩罚"选太多干扰项"这个行为,因为它的精准率部分会因为清单太大、干扰项太多而被压低。召回率奖励则完全不在乎选进来多少干扰项,只奖励"把真正重要的东西选进来"这一件事。
实验结果显示,在较低截断位置(只看推荐列表最前面1到2个位置),两种奖励表现相差无几。但随着截断位置增加(看到前3、4、5个位置时),召回率奖励的优势越来越明显。在LastFM的Recall@5上,召回率奖励比F1奖励高出约48%;在MovieLens上,这个差距更大,约为85%。
直觉上这很好理解:召回率奖励让"选食材"阶段专注于"把好东西都装进来",它不担心顺序,不担心干扰项,只管确保重要的东西不遗漏。而"排菜"阶段的排序奖励则负责从这个大而全的候选清单里把最好的推到最前面。两个阶段各司其职,最终整体效果更好。F1奖励试图让"选食材"阶段也兼顾精准性,反而干扰了它应该承担的"广覆盖"职责。
---
七、超参数的选择:λ和候选清单大小
λ是控制"排菜奖励"在整体训练目标里权重的参数。研究团队在LastFM上测试了λ=0.5、1.0和2.0三种设置。结果显示λ=1.0是最稳定的最优选择:λ=0.5会让排序质量明显下降,尤其在@1(只看最前面一个推荐)上损失最大;λ=2.0在某些指标上略有提升,但不够稳定。
候选清单的大小(也就是"选食材"阶段最多能选几个)也做了消融实验,测试了5、10、15三个值。选5个候选时,覆盖率不够,很多时候连真正重要的东西都没选进清单,最终效果最差。选15个候选时,清单太大,干扰项太多,反而让排序阶段的工作更难,精准率和NDCG@1有所下降。选10个候选是最佳平衡点,在召回率和排序质量上都达到最优。这个结论在不同的评估指标(Recall、Precision、NDCG)上都是稳定的。
---
说到底,F-GRPO这项研究做的事情,是把一个隐藏在AI推荐系统里已久的问题明确化了,并给出了一个优雅的工程解法。"选东西"和"排顺序"本来就是两件目标不同的事,一个追求不遗漏,一个追求精准靠前。把它们混在一起用一个分数来评价,就像用同一个标准去评价一个运动员的耐力和爆发力,注定会顾此失彼。
F-GRPO的贡献在于:在保持"一个模型一次完成"便利性的同时,通过巧妙的信号拆分,让每个子任务都能收到精准的反馈,从而真正学到自己该学的东西。实验数据显示,这种设计在多个任务和数据集上都带来了稳定的提升,尤其是在需要从候选里找到更多相关内容的场景(更高截断位置)下,以及在模型规模较小、覆盖能力天然受限的情况下,优势最为显著。
这对普通人意味着什么?每当你下次觉得某个推荐系统"好像懂我""推的东西又准又全",背后可能就有类似思路在发挥作用。当然,AI推荐系统的改进是一个长期的工程,F-GRPO只是其中的一个探索方向。但它揭示的那个基本问题——当AI需要同时完成多个目标时,如何给每个目标精准的反馈信号——是整个AI训练领域都绕不开的核心命题。
有兴趣深入了解这项研究完整细节的读者,可以通过论文编号arXiv:2605.12995查阅原文,作者来自加州大学圣地亚哥分校、伊利诺伊大学厄巴纳-香槟分校和Adobe Research的联合团队。
---
Q&A
Q1:F-GRPO和普通GRPO最根本的区别是什么?
A:普通GRPO把"选候选"和"排序"两个阶段的得分混在一起算一个总分,然后用这个总分同时指导两个阶段的学习,导致两个阶段的学习信号互相干扰。F-GRPO则为两个阶段分别计算独立的评分,"选候选"阶段只接收覆盖率相关的反馈,"排序"阶段只接收排名质量相关的反馈,从根本上消除了跨阶段的信号污染问题。
Q2:为什么解耦SFT(分两个模型分别训练选和排)效果反而不如单模型?
A:解耦SFT的核心问题是"训练时的条件和实际使用时的条件不一样"。负责排序的模型在训练时看到的是完美构造的候选清单,但实际使用时接收的是另一个选择模型生成的、质量参差不齐的候选清单。这种训练与部署之间的差距让排序模型在实际使用中表现打折扣,而F-GRPO因为在训练时排序阶段就直接接触选择阶段自己生成的候选,完全避免了这个问题。
Q3:F-GRPO为什么在推荐里用召回率而不是F1作为选候选阶段的奖励?
A:F1奖励会因为候选清单里干扰项太多而降低分数,这会让选候选阶段不敢广泛选择,从而漏掉一些重要的东西。召回率奖励只关心"真正重要的有没有选进来",鼓励选候选阶段广泛撒网,把重要内容都覆盖住,然后交由排序阶段去精挑细选。两者分工合理,实验显示在较高截断位置(@5)上召回率奖励比F1奖励有高达48%-85%的相对提升。
好文章,需要你的鼓励
这项联合研究发现,将Muon优化器应用于强化学习智能体训练时,搭配合适的步骤级信用分配机制,可使任务成功率提升88%,揭示了优化器与评分机制需协同设计的新方向。
本文介绍了CPO方法,通过让AI将自身回答与参考答案对比,在词级别识别推理对错,从而提供比熵更精准的强化学习训练信号,数学推理性能提升高达8.5%。
RAGU是一个多步骤知识图谱增强生成系统,配套7B参数的Meno-Lite-0.1模型,通过两段式抽取和去重整合构建高质量知识图谱,在综合推理任务上超越HippoRAG 2,成本仅为商业API的百分之一。