短程 GRPO 定符号,SFT 时间减半仍超过其数学均值

On-Policy Parameter Update Direction Underlies Generalization in LLM Post-Training

Shufan Shen, Zhongni Hou, Junshu Sun, Yufei Zhang, Wei Lin, Guojun Yin, Qingming Huang, Shuhui Wang

cs.LG

2026-09-29

先用 50 步 GRPO 记下每个参数的增减符号,再让 SFT 只沿这个符号更新。Qwen3-8B 在四项数学竞赛上均值 41.67,耗时 8.9 小时,高于 100 步 GRPO 的 40.31(19.3 小时)。

这篇在解决什么

on-policy 后训练用模型自己采的回答做更新。GRPO(按组内相对优势做策略梯度)和 OPD 都属于这一类,推理泛化通常好过 SFT。SFT 对着一份固定答案做监督,便宜,也吃得进别人写好的轨迹,换一套没见过的题就经常掉下去。常见说法是「SFT 记忆,RL 泛化」。

旧解释要么拆损失里的一项,比如 OPD 的 reverse KL,或者 GRPO 的负样本,要么看更新落在哪些参数、谱挪了多少。观察停在 on-policy 内部。组件一多,逐项比又碎又贵。这篇只问一件事:这份泛化优势能不能收成每个参数的累计方向,再套回 SFT。

方法

两种梯度指向不一样。轨迹对数概率对参数的梯度记为 s。on-policy 的策略梯度是优势 A 和 s 的协方差,优势就是这条回答比当前策略的平均水平好多少。策略在变,优势的分布跟着变,更新方向就一路改。SFT 的轨迹来自固定教师,梯度大体沿着 s,方向稳定。

Qwen3-1.7B 在 DeepMath 上的余弦和这个推导对得上。分段来看,SFT 各阶段正相关,OPD 和 GRPO 近乎正交。累加之后,SFT 全程方向余弦接近 1.0,on-policy 大约 0.5。on-policy 在持续改累计方向。

OPSFT 把这个累计符号拿来用。v 取 on-policy 训后参数减去训前参数的符号,每个参数是负 1、0 或正 1。SFT 仍对教师轨迹算梯度 g。下降步走的是负梯度,只留下更新符号与 v 一致的分量,其余置零。优化器自带的正则可能把方向带偏,每个步进之后再卡一次。符号为 0 的参数不动。

只共享更新位置、不看符号的对照,比普通 SFT 还差。被改到的参数名单不够,正负号才够。

用法有两截。效率实验先跑 50 步 GRPO 把 v 定下来,后面 100 步只做带约束的 SFT,不再采样。另一截是模型已经 GRPO 完,新轨迹沿着原来的 v 走,免得普通 SFT 把已有能力冲掉。SFT 轨迹由 Qwen3-30B-A3B 生成。

结果

图 3 里,方向约束的 OPSFT 明显高于普通 SFT,并和提供方向的 GRPO 接近。效率实验把方向提前定死:DeepMath 上 GRPO 100 步,SFT 与 DFT(改进版 SFT)各 700 步,OPSFT 为 50 步 GRPO 再加 100 步,时间含定方向。

模型方法时间四项均值
Qwen3-1.7BGRPO / SFT / DFT / OPSFT4.9h / 3.5h / 3.9h / 2.3h12.09 / 13.15 / 13.16 / 15.11
Qwen3-4B同序16.5h / 8.1h / 8.6h / 6.4h38.96 / 34.22 / 34.69 / 40.11
Qwen3-8B同序19.3h / 13.2h / 13.9h / 8.9h40.31 / 38.41 / 38.97 / 41.67
Distill-Llama-8B同序18.2h / 13.6h / 14.1h / 8.1h25.21 / 18.02 / 19.90 / 26.56

四项是 AIME24、AIME25、HMMT25-Feb、HMMT25-Nov。Qwen3-8B 的 OPSFT 用 8.9 小时得到 41.67,GRPO 用 19.3 小时得到 40.31。均值盖住了分项失利:AIME25 的 42.92 低于 GRPO 的 44.58,也低于 SFT 的 44.48;HMMT25-Feb 的 26.67 低于 GRPO 的 28.33。拉高均值的是 AIME24 的 57.92 和 HMMT25-Nov 的 39.17。1.7B 上 SFT 均值 13.15,已经高于这组 GRPO 的 12.09。

100 步 GRPO 之后,再用 DeepMath 轨迹训 700 步。普通 SFT 把大模型拉低:Qwen3-4B 从 38.96 到 36.25,OPSFT 到 41.36;8B 从 40.31 到 37.50,OPSFT 到 42.39;DeepSeek 蒸馏版从 25.21 到 16.36,OPSFT 到 26.15。1.7B 相反,SFT 从 12.09 到 13.54,OPSFT 到 16.77。

代码用 Qwen3-4B 和 Eurus,指标是 HumanEval+、MBPP+、LCBv6。均值 GRPO 57.19(20.3 小时),SFT 54.30(9.8 小时),OPSFT 58.07(9.5 小时)。续训后 SFT 掉到 48.71,OPSFT 到 60.05,其中 MBPP+ 的 68.20 仍低于起点 69.04。

域外是另一回事。同一批 DeepMath 模型测 IFEval、ARC、HaluEval、Hellaswag、Winogrande、PIQA,4B 均值依次为基座 73.43、SFT 73.65、GRPO 73.95、OPSFT 74.11,8B 为 75.85、75.54、76.20、76.39。OPSFT 领先 GRPO 不到 0.2 个点。多出来的数学推理几乎没搬过去。

方向能不能换着用来,边界很清楚。更新位置的重叠,同域的 DAPO 与 DeepMath、跨域的 Eurus,都大约 0.4;方向余弦在同域也只有约 0.2。用 DAPO 的方向去做 DeepMath 上的 OPSFT,均值还略高于 DeepMath 自己的方向。Eurus 的方向一换上,数学就明显变差。同域可换,跨域不行。方向取得越晚,OPSFT 越好,但 50 到 100 步的增益大于 100 到 150 步。

精度把稀疏程度钉在数字上。Qwen3-8B 在 BF16 下,SFT 更新 2.702% 的参数,均值 38.33;OPSFT 只更新 0.408%,均值 40.94,比基座 16.35 高 24.59 个点。FP32 下 SFT 更新约 89.3% 的参数,均值 38.41;OPSFT 更新 9.454%,均值 42.81,略高于同表 GRPO 的 42.01,而 GRPO 更新了 9.499%。符号一卡,SFT 的改动范围就收到和 GRPO 同一个量级。

回答长度上,SFT、OPSFT、GRPO 接近。OPSFT 的准确率波动、分情况讨论和逻辑连接词更靠近 GRPO。思维链并没有变长。

为什么重要

贵的是采样,现成的是高质量轨迹。短程 GRPO 定一次方向,后面不再采样;已经训完的模型来了新轨迹,也不必从基座把 SFT 和 RL 重跑一遍。同样的轨迹,OPSFT 比多训很多步的 DFT 均值更高,时间更短。

它没换掉 GRPO 的目标。累计符号在手之后,把 SFT 按在这条线上,数学和代码的均值可以对齐短程 GRPO。只共享位置做不到。

局限与存疑

主文把局限放在附录,只点了两个后话:on-policy 里哪些组件负责找出这条方向,轨迹本身的性质又怎样经 OPSFT 影响泛化。

方向仍然要先付一次 on-policy 的成本,而且越早截下来越弱。效率表里的 GRPO 只有 100 步,OPSFT 的第二阶段吃的是 Qwen3-30B-A3B 写的轨迹。跟同样吃这些轨迹的 SFT、DFT 比,符号约束的增益是干净的。跟 GRPO 比,教师质量和符号缠在一起,超过 GRPO 不能全部算在方向上。

域外不到 0.2 个点,推理迁到那六项上几乎是平的。同域两条方向的余弦只有约 0.2,好方向不止一条,篇题里的 underlies 比干预能证明的更满。on-policy 自己的累计余弦也只有约 0.5,它还在转向,OPSFT 却冻住某一个快照。AIME 只有三十道题,表上没有误差,1 到 2 分的分项输赢可能是噪声。1.7B 上 SFT 已经高于这组 GRPO,「SFT 记忆,RL 泛化」不能脱离尺度说。

术语

原文与代码

相关论文

全部论文解读