
2026年初,如果你去问一个正在训练大语言模型做数学推理或者写代码的工程师,"你的模型生成了一千个词,最后答案对了,那到底是哪个词该被表扬?",很可能得到的回答是一个尴尬的笑容。
这不是矫情。这是强化学习训练大模型时一个悬而未决的真问题。
一个模型写代码解题,可能要生成几千甚至上万个词元,中间还夹杂着调用工具、读取环境反馈。最后只有一个结果,对或者错。可这个结果要拆解到每一个词元上去指导训练,谁该多学一点,谁该少学一点,没人说得清楚。业内把这个问题叫做"信用分配"。
信用分配*:强化学习中把最终获得的奖励,合理地分摊给过程中每一步决策的问题。
更让人意外的是,尽管这个问题在强化学习里被讨论了几十年,"信用"这个词到今天都没有一个大家公认的数学定义。不同的算法各用各的方式去近似它,PPO用一个价值网络去估计,GRPO用同组内其他回答的平均分去比较,谁对谁错,谁更准,一直没有一个统一的标准去衡量。
这篇来自AllSpark团队的论文,做了一件挺硬核的事:先把"信用"这个概念用数学方式钉死,证明它只能有一种形式,然后用这把尺子去度量现在流行的各种强化学习算法,最后设计出一个新的训练方法,叫PACT。
这篇论文的开篇引用了香农的一句话:"这些定义真正的意义,将体现在它们的推论之中。" 这句话本身就是全文的注脚,先立规矩,再看规矩管不管用。
信用分配,到底难在哪
先说清楚问题的形状。
一个模型生成一段回答,可以看成一连串的词元,如果是智能体任务,中间还穿插着环境反馈,比如工具调用返回的结果。整个过程可以写成一个序列:提示词,第一个词元,环境反馈,第二个词元,环境反馈,一直到结束,最后得到一个奖励分数。
问题是,这个奖励分数只在最后才揭晓,但模型的每一步决策,也就是每一个词元的生成,都需要被单独指导。这就好比一个球队打了一场比赛,赢了三比零,教练想复盘,到底这三个球是靠谁的传球、谁的跑位、谁的射门促成的。比赛结果只有一个数字,但场上每个球员的每一次触球都需要被评价。
如果不去做这种拆解会怎样?那就只能把整场比赛的输赢,一股脑地记在每个球员头上,不管他这场是全程摸鱼还是拼了命地跑。这显然不公平,也没法让球员知道自己到底哪里做得好,哪里需要改进。强化学习里也是一样,如果不做信用分配,模型没法知道自己生成的一万个词元里,哪几个词元是真正决定了成败的关键。
现有的工作里,有一种常见做法是把语言模型的生成过程建模成一个马尔可夫决策过程,把已经生成的全部历史当作状态,下一个词元当作动作。
马尔可夫决策过程*:一种数学框架,用状态、动作、奖励来描述决策过程,核心假设是未来只取决于当前状态,不取决于过去怎么走到这一步的。
这个框架能描述状态怎么演变,但它没有回答一个更根本的问题:随着生成过程往前推进,跟最终奖励相关的信息是怎么一点点被揭示出来的?换句话说,马尔可夫框架告诉你棋盘长什么样,但没告诉你每一步棋到底值多少分。
于是论文的作者们决定跳出具体算法,先从数学定义入手,问一个更根本的问题:如果我们想给"信用"下一个严谨的定义,这个定义应该满足哪些基本要求?
三条规矩,锁死了信用的唯一形式
论文提出了三条规则,分别叫完备性、前缀一致性、中立性。这三条规则听起来像是数学公理,但拆开看,其实每一条都对应着一个非常朴素的直觉。
第一条,完备性。所有词元被分配的信用加起来,必须正好等于最终结果和最初预期之间的差距。
这条很好理解,如果一场比赛赢了三分,那么分配给每个球员的功劳加起来,必须正好等于三分,不能多也不能少。如果信用分配漏掉了一部分,或者凭空多算了一部分,那这套分配方案就是耍流氓。
第二条,前缀一致性。一旦某个词元生成了,分配给它的信用就应该固定下来,不能因为后面发生了什么事情而被追溯修改。
这条规则背后的逻辑更微妙一点。想象一下你在下棋,走了一步很稳的开局,但对手后来神来一笔把你将死了。这步开局本身的质量,不应该因为后面输了棋就被彻底否定,它当时是不是好棋,取决于当时能看到的信息,而不是最终的结果。如果允许未来的信息去重新定义过去某一步的信用,那训练信号就会变得极其不稳定,模型永远搞不清楚自己当时做的那个选择,到底是好是坏。
第三条,中立性。在信息还没揭晓之前,对下一个词元的预期信用应该是零。
这句话翻译一下就是,如果我们提前就知道某个词元会得高分或者低分,那这个预期本身就应该已经被算进之前的信用里了,不能让同一份功劳被重复计算,也不能凭空预支还没发生的信用。
这三条规则合在一起,论文证明了一件很硬核的事:满足这三条规则的信用分配方式,存在且唯一。
这个唯一解的形式其实简洁得让人意外。它就是相邻两个时间点上,"条件期望奖励"的差值。
具体来说,定义一个量叫做条件期望奖励,也就是在看到某个词元及其之前所有信息之后,对最终奖励的预测值。那么这个词元的信用,就等于生成它之后的预测值,减去生成它之前的预测值。
条件期望奖励*:给定已经观察到的所有信息,对最终结果的最优猜测。可以理解为"现在看来,这局大概率能拿多少分"。
这个结果背后有一个很漂亮的数学结构,叫鞅差序列。
鞅*:一种随机过程,核心性质是"给定现在的信息,对未来的最优预测就是现在的值本身",不会系统性地往上或往下偏。
也就是说,每一步的信用,本质上就是"我对最终结果的信心,往上调了一点还是往下调了一点"。如果生成某个词元之后,模型对最终答对的信心涨了,这个词元就拿到正的信用,反之则是负的。
论文还证明了一个推论,如果把连续几个词元打包成一段,比如把一整个对话的一轮打包成一段,那这一段的信用,就是这一段结束时的预测值,减去这一段开始前的预测值。换句话说,不管你想按词元算还是按轮次算,甚至按句子算,公式都是一致的,只是聚合的粒度不同。
这套理论最狠的地方在于,它不光是给出了一个新概念,还反过来解释了现有各种算法背后到底在做什么。
蒸馏训练里的老师,其实是个隐形评委
先说第一个应用场景,叫在线蒸馏,英文缩写OPD。
在线蒸馏*:让一个学生模型在自己生成的轨迹上,接受一个教师模型的密集词元级别指导,而不是用固定的标注数据。
这个方法这几年很火,简单说就是找一个更强的模型当老师,学生模型自己生成内容,老师在每个词元上给出反馈,这个反馈的密度比传统的"只在最后打一个分"要细得多。
之前有工作从数学上证明了,这套优化目标可以被改写成一种带KL约束的强化学习,老师和学生之间的对数概率比值,扮演着类似"优势函数"的角色。
KL散度*:衡量两个概率分布差异程度的一个指标,数值越小说明两个分布越接近。
但这只是说明了OPD在优化形式上等价于某种强化学习,没有回答一个更本质的问题:这个由老师给出的信号,到底跟真实的信用是不是一回事?
论文构造了一个"理想教师"的概念,这个教师会在每一步,根据当前的策略以及未来能拿到的奖励,去优化一个带KL惩罚的目标,找到一个既能改进学生表现、又不会偏离学生太远的分布。
论文证明了一个定理:在这个理想教师的假设下,OPD产生的梯度更新方向,正好等于用唯一信用计算出来的梯度方向,只差一个常数系数。
这意味着什么?意味着表面上看OPD里根本没有一个显式的价值网络在打分,但它背后隐含的教师,其实在扮演一个隐形评委的角色,它给出的反馈信号,本质上跟前面推导出的那个唯一信用是一回事。
这就好比一个没有裁判的球场比赛,看起来没人在打分,但如果场边有一个经验丰富的老教练,一直在小声嘀咕"这球传得好,这球传得糟",虽然没有正式记分牌,但他脑子里其实一直在给每一个动作打分,而且这个打分标准跟正规比赛的裁判标准高度一致。这解释了为什么OPD这种看似没有显式价值网络的方法,实际效果却常常很好,因为它暗中做的事情,跟严格意义上的信用分配是一致的。
组内比较的方法,粗糙但没有偏差
第二个应用场景,是像GRPO和RLOO这类现在流行的组内比较算法。
GRPO*:一种强化学习算法,对同一个提示词采样多条回答,用组内奖励的相对高低来构造优势信号,不需要单独训练一个价值网络。
RLOO*:留一法强化学习,思路类似GRPO,对某条回答的评价基准是"其余所有回答的平均奖励"。
这类算法有个共同特点:它们计算出来的基准值是"响应级别"的,也就是整条回答共用一个基准,然后这个基准被原样广播到这条回答里的每一个词元上。
问题来了,这跟前面推导出的"词元级别"信用,在粒度上明显不匹配。一个是精确到每个字的评分,一个是整条回答共用一个粗糙的平均分,这两者之间到底差多少?
论文的答案有点意外:从期望角度看,它们完全一致。
论文证明了,RLOO用留一法构造出来的响应级基准,广播到每个词元之后计算出的策略梯度,在期望意义上,跟用精确的词元级信用计算出来的梯度是完全相等的。
这就好比一个班级期末考试,老师没有精力批改每一份卷子里每一道题对每个学生知识点掌握程度的细粒度影响,于是干脆用"这次考试你考了多少分,相对班级平均分高多少"来做一个粗略的评价。虽然这个评价没有告诉你具体是哪道题拖了后腿,但如果反复考很多次试,用这个粗略的评价去指导学习,平均下来的效果,跟精细批改是一样的。
不过论文也很诚实地指出,这种等价只在期望层面成立,不代表统计效率一样。条件期望奖励是均方误差意义下的最优预测器,而响应级别的基准值仍然带着有限样本的随机波动。在特别长的生成过程里,这种波动可能会明显盖过局部的真实信用信号,这也是为什么论文认为,更精细粒度的信用估计仍然有价值。
信用其实很稀疏,这解释了GAE为什么翻车
第三个应用场景,涉及到广义优势估计,也就是GAE,以及它一个关键的超参数λ。
广义优势估计*:一种在强化学习中用来平衡偏差和方差的技术,通过一个参数λ来控制未来多少步的信息被用来估计当前的优势。
之前有实证观察,DeepSeek-R1的论文里提到,用PPO训练时,λ取1,效果比常用的0.95要好。另一篇工作SAO则设计了一个随长度自适应的λ,越长的回答,λ越接近1。
论文先证明了一个"近似稀疏性"定理:对于任意一个被归一化到0到1之间的奖励,所有词元信用的平方和的期望,不会超过四分之一。这意味着,在一次很长的生成过程里,真正贡献了"显著信用"的词元其实非常少,绝大多数词元的信用值都接近于零。
这个结论翻译一下就是,一段几千个词元的长回答里,可能只有寥寥几个关键决策点,真正左右了最终的成败,剩下的大部分词元,对最终结果的边际影响都很小。
接下来论文分析了这条稀疏性质跟GAE里λ的关系。假设价值网络的估计存在误差,把这个误差代入GAE的计算公式,会发现当λ小于1时,中间每一步的价值估计误差会被保留在最终的优势估计里,而且不会随着回答变长而自动消失。因为真实信用本身很小,这些残留误差很容易反过来盖过真实信号,造成训练不稳定甚至崩溃。
而当λ等于1时,中间的这些误差项会互相抵消,只剩下起始点的价值误差。这就解释了为什么λ取1在长文本场景下反而更稳。
这就像一条长长的接力赛,如果每一棒都要单独校准计时器,计时器本身的误差会在每一棒累积一次,跑的棒数越多,误差累积得越厉害,最后总成绩的可信度反而被这些累积误差主导了。而如果只在起点和终点各校准一次,中间不再逐棒校准,误差反而不会累积。λ等于1,某种意义上就是选择"只信任起点和终点"这种策略。
这也是为什么PACT这个方法,最终选择了λ等于1。
PACT登场:让评委和选手对齐节奏
前面三节,都是用信用的唯一表示这把尺子,去解释已有算法为什么这么设计、为什么有时候会翻车。到这里,论文终于要给出自己的解决方案了,这就是PACT,全称叫策略对齐的评委训练。
先说清楚问题所在。
在传统的PPO训练框架里,价值网络(也就是那个负责打分的评委)和策略网络(也就是负责生成内容的选手)是各自独立更新的。具体流程是这样:用当前策略生成一批轨迹,用当前的价值网络给这批轨迹打分,然后策略网络根据这些分数更新,价值网络也根据这批数据更新。
问题出在这里:策略网络更新完之后,价值网络并没有跟着重新打分,它是拿着"更新前的策略"打的分去指导"更新后的策略"。等到价值网络自己也更新完了,策略网络又往前走了一步,价值网络又落后了一拍。
这就好比一场辩论赛,评委根据选手上一轮的表现打分,选手根据评委的打分调整下一轮的策略,可等评委消化完上一轮打分、准备给出更精准的评价标准时,选手已经进入了下一轮辩论,评委手里的标准永远慢半拍。
如果不解决这个问题会怎样?根据前面的分析,信用本身就是"相邻两个预测值之差",如果这个预测值用的是过时的策略估计出来的,那算出来的差值跟真正对应当前策略的信用会有系统性偏差,尤其是在信用本身就很稀疏、每个词元的真实信用很小的情况下,这种系统性偏差很容易把真实信号淹没。
PACT的解决办法,是调换更新顺序。先更新策略,再更新评委,中间加一次额外的重要性采样校正。
重要性采样*:一种统计技巧,用来在数据分布和目标分布不一致的情况下,通过加权的方式修正估计结果,使其仍然对目标分布无偏。
具体流程是这样:先用当前的评委给这批轨迹打分,指导策略完成更新。策略更新完之后,不着急去采集新的轨迹,而是用刚更新完的新策略,对同一批旧轨迹再算一遍对数概率,跟更新前的对数概率做个比值,这个比值就是重要性权重。用这个权重去修正原始的奖励信号,再拿去训练评委。这样一来,评委训练完之后,正好跟最新的策略对齐,不再慢半拍。
这个额外操作只需要多做一次前向计算,不需要重新采集轨迹,成本很低,但效果很关键。
除了调换更新顺序,PACT还有一个改动,把评委的训练目标从均方误差换成了二元交叉熵。
均方误差*:预测值和真实值之差的平方,是回归任务里最常见的损失函数。
二元交叉熵*:常用于分类任务的损失函数,衡量预测概率分布和真实标签之间的差异。
论文证明了,只要把奖励归一化到0到1之间,这两种损失函数的最优预测值是完全一样的,都是条件期望奖励。但实践中,二元交叉熵训练出来的评委收敛更快,而且对正负样本的区分度更高。论文的消融实验显示,用二元交叉熵训练出来的评委,在给成功轨迹和失败轨迹打分时,两者的差距明显更大,说明这个评委更擅长把"好"和"不好"分开。
这就好比同样是打分,一个老师习惯打精确的百分制分数,另一个老师习惯直接说"过关"还是"不过关",后一种打分方式虽然信息量看起来更粗,但在训练模型区分"这条路走对了还是走错了"这件事上,反而收敛得更快、更果断。
实验结果:数字说话
这套理论和方法最终要拿实验结果来检验。
论文在两个场景下做了验证,一个是数学推理,用Qwen3.5-4B模型,配合OpenCode这个智能体框架,在AIME 2025、AIME 2026、BeyondAIME、HMMT Nov. 2025这四个数学竞赛基准上评测。另一个是智能体编程,用Qwen3.6-35B-A3B模型,配合Codex智能体,在SWE-bench Verified这个真实代码修复基准上评测。
数学推理这边,结果相当亮眼。
方法 | AIME 2025 | AIME 2026 | BeyondAIME | HMMT Nov. 2025 | 平均
基础模型 | 46.67 | 51.25 | 28.63 | 37.50 | 41.01
GRPO | 76.50 | 74.78 | 41.81 | 63.19 | 64.07
PPO(λ=0.95) | 32.33 | 29.38 | 17.86 | 25.67 | 26.31
PPO(λ=1.0) | 66.04 | 73.96 | 40.31 | 58.54 | 59.71
SAO | 51.25 | 63.33 | 36.63 | 53.33 | 51.14
PACT | **83.12** | **85.21** | **51.69** | **71.46** | **72.87**
PACT的平均准确率达到72.87%,比GRPO高出8.80个百分点,比PPO(λ=1.0)高出13.16个百分点。特别值得一提的是PPO(λ=0.95)的表现,平均只有26.31%,训练过程中出现了策略崩溃,这跟前面理论分析里"λ小于1会导致中间误差累积"的判断完全吻合。
编程场景这边,SWE-bench Verified的通过率上,PACT达到67.4%,比GRPO高2.0个百分点,比PPO(λ=1.0)高2.4个百分点,比SAO高3.8个百分点。
论文还做了一个专门的消融实验,去掉重要性采样校正这一环,也就是"PACT w/o IS",平均准确率从72.87%掉到67.74%,掉了5.13个百分点。这说明单单是调换更新顺序还不够,那个额外的校正步骤才是真正让评委跟上策略节奏的关键。
论文还有一个很直观的可视化,追踪了训练过程中回答长度和信用增量的变化。随着训练推进,模型生成的回答越来越长,与此同时相邻两步之间价值预测的差值平均在变小,这正好印证了前面"近似稀疏性"的理论预测,回答越长,单个词元真正贡献的信用往往越微弱。
写在后面
读完这篇论文,最触动我的地方,不是PACT本身带来了多少个百分点的提升,而是这种"先定义清楚再动手"的研究路径本身。
强化学习训练大模型这个领域,这几年涌现出一堆算法,PPO、GRPO、RLOO、REINFORCE++,每个都有自己的一套操作,但很少有人回过头去问一句:这些方法算出来的那个"优势"或者"基准",跟"信用"这个我们真正想要的东西,到底是不是一回事?这篇论文相当于把地基下面的土先挖开看了一遍,发现原来不同的房子,其实都建在同一块岩层上,只是有的房子挖得深一点,有的挖得浅一点。
另外一个让我意外的细节,是论文附录里专门用一个命题去证明"三条规则缺一不可"。作者用一个只有两步、只涉及两个抛硬币变量的极简例子,分别构造出违反某一条规则但满足另外两条的反例。这种做法有种数学家的执念,证明存在和唯一还不够,还要证明每一条约束都不是多余的。这种严谨劲儿,在一篇以工程效果为最终目标的论文里,还是挺少见的。
论文自己也很坦诚地承认了局限:这套信用的定义是统计意义上的,不是因果意义上的,它没有回答"如果换掉某个具体词元,结果会不会不一样"这种反事实问题。而且,即便证明了信用的唯一形式,怎么在实践中把它精确估计出来,仍然是一个开放的工程难题。PACT只是往这个方向迈出了一步,用重要性采样去缓解评委和策略之间的错位,但真正做到"每一步都精确对齐",恐怕还有很长的路要走。
一个几千个词元的回答,最后只留下一个对或错的信号,中间到底哪一步是真正的转折点,这个问题本身,其实跟人类反思自己做过的决定时面临的困境很像。我们复盘一件事情成功或失败的时候,也常常说不清楚到底是哪一个瞬间的选择起了决定性作用,往往只能凭直觉,说"这一步好像挺关键"。数学家们试图给这种直觉找一个公式,这件事本身,就挺让人着迷的。
Q&A
Q1:PACT是什么?
A:PACT全称是策略对齐的评委训练,是一种改进的强化学习训练方法,核心是调换传统PPO里策略和评委的更新顺序,先更新策略再更新评委,并加入重要性采样校正,让评委始终能跟上最新策略的节奏。
Q2:论文里提出的信用分配三条规则是什么?
A:分别是完备性、前缀一致性和中立性。完备性要求所有信用加起来等于最终结果和初始预期的差距,前缀一致性要求已生成部分的信用不能被未来信息追溯修改,中立性要求对下一个词元的预期信用为零。论文证明满足这三条规则的信用分配方式存在且唯一。
Q3:PACT在实际测试中效果如何?
A:在数学推理任务上,PACT平均准确率达到72.87%,比GRPO高8.80个百分点,比PPO高13.16个百分点。在SWE-bench Verified编程基准上,PACT通过率达到67.4%,比PPO、GRPO、SAO分别高2.4、2.0、3.8个百分点。







