
你有没有想过这样一个问题:如果让两个学生背同一本参考书的答案,一个是逐字逐句抄写记忆,另一个是自己先做题、做错了再看答案纠正,最后谁更能举一反三?
答案大概率是后者。这不是什么心灵鸡汤,而是大语言模型训练领域这两年最让人困惑的现象之一。
在LLM(大语言模型)的后训练阶段,有两条路子。一条是SFT,监督微调,说白了就是拿一堆标准答案喂给模型,让它去拟合这些固定的"正确轨迹"。另一条是在线策略训练,像GRPO、OPD这类方法,模型自己生成答案,然后根据结果好坏去调整,有点像做题自纠。
过去几年里,研究者们反复观察到一个现象:在线策略训练出来的模型,泛化能力明显更强。同样是学数学题,强化学习训出来的模型在没见过的新题型上表现要好出一大截。有篇论文干脆把这个结论总结成一句很好记的话,"SFT负责记忆,RL负责泛化"。
这句话流传甚广,但它只是个观察结果,没有回答"为什么"。而这篇来自中科院计算所和美团团队的论文,就是冲着这个"为什么"去的。更关键的是,他们没有止步于解释现象,而是把解释变成了一个能直接拿来用的工具。
一堆零件和一个黑箱
先说说这个问题到底难在哪。
在线策略训练和SFT的区别,细数起来有一长串:损失函数不一样,有没有负样本不一样,KL散度的使用方式不一样,训练数据的来源不一样。过去的研究大多是挑出其中一个零件来研究,比如专门分析反向KL散度的作用,或者专门研究GRPO里负样本的影响。
这种做法的问题在于,零件之间互相缠绕,你很难说清楚某个现象到底是哪个零件造成的,而且这样一个零件一个零件地拆解,研究成本高得吓人,结论也零散不成体系。
于是有一批更聪明的研究者换了个思路:别管零件了,直接看训练完之后参数到底发生了什么变化。有研究发现,在线策略训练只会改动模型里一小部分参数,这些参数像是被精确瞄准的靶子,大部分神经元纹丝不动。还有研究从频谱角度分析,发现在线策略训练对参数矩阵的"主成分"扰动很小。
参数更新位置*:指的是模型训练过程中,哪些具体的参数数值发生了变化。如果一个参数从训练前到训练后数值没变,就说这个位置"没更新"。
这些发现很有意思,但有个共同的局限,它们都把这些现象当成在线策略训练的副产品来看待,就像是观察一个人跑步时心跳变快,记录下这个事实,却没有去问:如果让静坐的人也把心跳人为调到同样的频率,他会不会也获得跑步的健康效果?
这篇论文问的正是这个问题。
从"更新在哪"到"更新往哪个方向"
研究者们的第一步,是把别人研究过的"更新位置"这个概念往前推了一步,延伸到"更新方向"。
这里要讲清楚一个关键区别。更新位置只能告诉你某个参数变没变,是个开关问题,变了还是没变。但更新方向不一样,它还要告诉你这个参数是往大了变还是往小了变,也就是这次更新的正负号。一个参数即便位置相同(都发生了变化),方向也可能完全相反。
为了严谨地说明这一点,论文先做了一番数学推导。他们把SFT和在线策略训练(以GRPO为代表)的梯度公式拆开对比。
结论挺直白:SFT每一步的更新方向,基本取决于一个固定的"老师"分布,也就是提前准备好的标准答案轨迹。这个分布在整个训练过程中不会变,所以SFT的更新方向会一直朝着同一个靠拢。
而在线策略训练不一样。它的更新方向,本质上取决于当前策略生成的答案和这些答案"优势"(也就是好坏程度)之间的协方差。问题是,当前策略本身在训练过程中是不断变化的,模型越学越强,它自己生成的答案分布也在变,于是这个协方差也跟着变,更新方向自然也在不断调整。
这个数学推导听起来有点绕,但研究者们紧接着做了个实验来验证,而这个实验的结果相当直观。
他们训练了Qwen3-1.7B模型,分别用SFT和在线策略方法(OPD、GRPO),然后测量不同训练阶段的更新方向之间的相似度。
结果显示:SFT在不同训练阶段的更新方向,余弦相似度接近1.0,几乎完全一致。而在线策略训练在不同阶段的更新方向,余弦相似度只有大约0.5,相当分散。换句话说,SFT像是一条笔直的路,一旦出发就不怎么拐弯,而在线策略训练更像是一条不断调整航向的曲线。
这就像开车去一个目的地。SFT相当于设定好导航之后就锁死方向盘,全程直线前进,哪怕路上有坑也不打方向。而在线策略训练更像是边开边看路况,不断微调方向盘角度。如果一直锁死方向盘,确实能更快到达某个点(训练效率高),但只要稍微偏离了预设路线一点点(遇到没见过的新题型),车子就直接冲出跑道了,这大概就是SFT泛化差的直观原因。而不断调整方向盘的车,虽然每一步看起来都在"绕路",但积累下来,它反而找到了一条更稳健、更能应对各种弯道的路径。
既然方向这么重要,那能不能直接把方向"借"过来用
这是整篇论文最有想象力的一步。
研究者们的逻辑很简单:既然在线策略训练的核心优势好像就体现在它不断调整出来的"累积更新方向"上,那能不能把这个方向提取出来,强行塞给SFT用?
具体做法是这样的。先跑一遍在线策略训练(比如GRPO),记录下训练前后每个参数的变化,这就得到了一个方向向量,每个参数的值要么是+1(变大了),要么是-1(变小了),要么是0(没变)。这个向量就是所谓的"在线策略更新方向"。
然后回到SFT训练。正常情况下,SFT每一步会计算出一个梯度,去调整参数。现在加一道约束:只有当梯度要调整参数的方向,恰好和前面记录的"在线策略方向"一致时,这次调整才被允许执行,方向不一致的调整,直接被屏蔽掉。
这个方法被命名为OPSFT*(On-Policy direction-constrained SFT,在线策略方向约束的监督微调),它本质上还是SFT,使用的还是标准答案,但更新方向被强行限定在了在线策略训练探索出来的那条路径上。
为了保证这个约束足够彻底,研究者还做了双重保险。一是在每一步梯度计算时就过滤掉方向不对的分量,二是在每次参数更新完之后再检查一遍,如果某个参数从初始值开始的累积位移方向反了,直接把它拉回初始值。这样即便优化器自带的权重衰减、动量项这些机制想"作弊",也翻不出这道约束的手掌心。
这里要讲个类比,可能更容易体会这个设计的用意。假设你要装修一套房子,设计师给了你一份详细的效果图,但你手头的施工队经验不足,容易把墙砌歪。这时候最笨也最有效的办法,不是让施工队完全自由发挥(那样大概率跑偏),也不是把效果图里的每一块砖的位置都标出来让他们死记硬背(那样成本太高还死板),而是给施工队定一条规矩:每一步砌墙,只要方向和效果图里墙体的朝向一致就可以动手,方向不对,哪怕砖块已经准备好了也不能用。施工队依然在自主施工(还是SFT那套流程),但最终砌出来的墙,形状会非常接近设计图纸,这正是OPSFT干的事。
实验结果出来的时候,这个"借方向"的策略效果惊人地好。
在Qwen3-1.7B、4B、8B以及DeepSeek-R1-Distill-LLaMA-8B这几个不同规模的模型上,在DeepMath、DAPO、Eurus-RL-Code这些数据集上,OPSFT的表现相比普通SFT有大幅提升,而且基本追平了提供方向的GRPO本身。
举个具体数字,在Qwen3-1.7B上,用DeepMath数据集训练,普通SFT的平均准确率是13.15%,而OPSFT达到了15.11%,而且OPSFT只用了2.3小时,比GRPO的4.9小时和SFT的3.5小时还要快。
这里有个特别值得玩味的对照实验。研究者还测试了只约束"更新位置"(不管方向,只要是该更新的参数就放行)的版本,结果这个版本的表现甚至比普通SFT还要差。这说明光知道"哪些参数该动"是不够的,关键还是得知道"往哪个方向动"。这也呼应了论文标题想说的那句话:真正承载泛化能力的,是方向,而不只是位置。
OOD能力*:Out-of-Domain,指模型在没有专门训练过的领域或任务类型上的表现,用来衡量模型是不是真学到了能迁移的能力,而不是死记硬背。
研究者还专门测试了OOD能力。把模型用DeepMath(数学领域)训练之后,拿到IFEval、ARC、HaluEval这些完全不相关的领域测试,结果OPSFT不仅稳定超过普通SFT,甚至还轻微超过了提供方向的GRPO本身。这个结果有点反直觉:你本以为"借用"一个方向顶多是打平原版,没想到还能青出于蓝。
一个方向能不能跨数据集复用,这事儿不简单
接下来研究者们顺势追问了一个很自然的问题:这个"在线策略方向"是不是数据集专属的?换一批数据重新跑一次在线策略训练,得到的方向还一样吗?
他们对比了同领域不同数据集(DAPO和DeepMath,都是数学)、以及跨领域数据集(Eurus,代码领域,对比DeepMath)之间方向的相似程度。
结果分两层。第一层,更新位置的重叠度,不管是同领域还是跨领域,差不太多,都在0.4左右。这说明"更新哪些参数"这件事,和具体任务关联度没那么强。
第二层,更新方向的相似度就不一样了。同领域内(DAPO和DeepMath)的方向相似度明显高于跨领域(Eurus和DeepMath),哪怕同领域内两个数据集给出的方向本身余弦相似度也只有0.2左右,并不算特别高,这说明同一个领域里可能存在多条都能支持良好泛化的方向,不是唯一解。
更有意思的是后续验证:拿DAPO训练出来的方向,去约束在DeepMath数据集上跑的OPSFT,效果居然还略微超过用DeepMath自己训练出的方向。但如果拿Eurus(代码领域)的方向来约束数学任务的OPSFT,效果就明显拉胯了。
这就像是方言和普通话的关系。你在北方某个城市学会了一口东北话,拿到另一个北方城市大概率还能顺畅交流,毕竟大的语言结构相通,但你要是直接把这套东北话拿去说闽南语区的方言环境,基本就抓瞎了。方向的"可复用性"是有边界的,边界就是领域。这个发现说明"在线策略方向"捕捉到的其实是某种领域级别的通用能力框架,而不是针对某个数据集的死记硬背。
把发现变成实用工具:省时间,还能持续进化
搞清楚了"方向很重要"这件事之后,研究者没有止步于理论,而是把这个发现落地成了两个很实在的应用。
第一个应用是提升训练效率。
既然在线策略训练的早期阶段就已经能探索出一个还不错的方向,那是不是不用把整个在线策略训练跑完,只需要跑一小截,把方向"抓"出来,剩下的交给又快又省资源的SFT去做就行了?
研究者只跑了50步GRPO来确定方向,然后用OPSFT训练100步。结果和跑满100步GRPO对比,在Qwen3-8B上,OPSFT只花8.9小时,准确率41.67%,而完整GRPO要19.3小时,准确率反而只有40.31%。在DeepSeek-R1-Distill-LLaMA-8B上,差距更明显,OPSFT只用8.1小时就拿到26.56分,普通SFT哪怕多训练5个多小时也只有18.02分。
这个结果的意义在于:训练在线策略模型最烧钱的部分是持续的自生成采样(rollout),每一步都要模型自己先生成答案再评判好坏,这个过程非常耗算力。而OPSFT相当于只在早期"蹭"一下这个昂贵的探索过程,拿到方向之后就彻底摆脱了rollout的拖累,用普通SFT的速度完成剩下的训练。
第二个应用更贴近实际工程场景:怎么持续改进一个已经训练好的模型。
假设你已经用GRPO训练出了一个不错的模型,后来又收集到一批高质量的新数据(比如更难的题目、更好的解题轨迹),你想拿这些新数据继续优化模型,但又不想把整个训练流程推倒重来。
直觉上你可能会想,直接拿新数据做SFT微调一下就行了。但研究者的实验狠狠打脸了这个直觉:直接对已经GRPO训练过的模型做SFT,性能反而下降了。在Qwen3-4B上,模型原本的平均准确率是38.96%,直接SFT之后掉到36.25%。
这个现象其实有点道理:SFT的更新方向和模型之前在线策略训练学到的方向可能并不一致,强行用固定标准答案去拟合,容易把之前辛辛苦苦调教出来的能力给冲掉,这就好比一个已经练出肌肉记忆的运动员,突然被要求按照一套完全不同风格的教科书动作重新练习,身体的协调性反而被打乱了。
而OPSFT的做法是,继续沿用这个模型自己在GRPO阶段探索出的方向,用新数据做约束更新。结果准确率从38.96%提升到了41.36%,代码任务上也观察到同样的规律,从57.19%提升到60.05%。
这意味着,只要新的高质量轨迹不断积累,就可以持续用OPSFT小步快跑地改进模型,而不用每次都从零开始重跑整套"SFT加RL"的昂贵流程。
精度和细节里的魔鬼
论文里还有几处很扎实的细节分析,值得单独说说。
一个是关于参数精度的实验。模型训练常用BF16这种低精度格式,但低精度下很多小梯度会直接被舍入成0,导致参数更新本身就很稀疏。研究者发现,在BF16下,OPSFT只更新了0.408%的参数,比普通SFT的2.702%稀疏得多,但效果反而更好(40.94%对38.33%)。而换成FP32精度之后,OPSFT甚至反超了提供方向的GRPO本身(42.81%对42.01%)。这从侧面说明,OPSFT真正起作用的是方向上的精准,而不是依赖大量参数的粗放式更新。
另一个细节是关于模型的"推理行为"。研究者统计了模型生成答案时使用的分支逻辑词(比如"如果"、"否则"、"考虑一种情况")和因果连接词(比如"因此"、"因为")的出现频率,发现OPSFT的这些词频变化趋势,明显更接近GRPO,而不是普通SFT。换句话说,方向约束带来的不只是分数提升,连模型"想问题的方式"都在悄悄向在线策略训练靠拢,这不是简单地让答案变长了,而是推理的结构性变化。
论文还从矩阵谱的角度做了分析,发现OPSFT更新矩阵的奇异值分布更均匀(更接近GRPO),而普通SFT的更新集中在少数几个主成分上。这又一次印证了同一个结论:方向约束让SFT在几何性质上也模仿到了在线策略训练的样子,而不只是表面分数像。
写在后面
读完这篇论文,最触动我的其实不是OPSFT本身这个工具,而是它展示出的一种研究态度:把别人当作"副产品"来观察的现象,重新当作可以主动利用的杠杆。
过去几年关于在线策略训练为什么泛化好的研究,大多停留在"解释"层面,发现了稀疏更新、发现了谱特性的差异,但这些发现更像是贴在墙上的说明牌,告诉你"这里发生了什么",却没人去动手把说明牌拆下来当钥匙用。这篇论文做的事情,相当于真的把钥匙拿下来,插进锁孔里试了一下,结果锁真的开了。
还有个细节让我印象很深。他们发现同一领域内,不同数据集给出的方向彼此相似度只有0.2,但用不同方向训练出来的OPSFT效果却都不错,甚至可能互相超越。这说明"通往泛化"这条路可能根本不是唯一的,存在一整个由不同方向构成的"可行区域",只要落在这个区域里,SFT就能获得类似在线策略训练的效果。这比"只有一条正确路径"的想象要开放得多,也留了很大的想象空间:这个区域的形状到底是什么样的?能不能提前预测一个方向是否"有效",而不用每次都跑一遍在线策略训练去验证?
论文最后也坦承了一个局限:他们用的训练轨迹,都是来自一个比目标模型强得多的"教师模型"生成的高质量答案。但现实中SFT用的数据往往没有这么理想,轨迹质量参差不齐。如果换成普通质量的数据,这个"方向迁移"的魔法还灵不灵?这是一个开放却很关键的问题,留给后来者去填。
Q&A
Q1:OPSFT是什么?
A:OPSFT全称On-Policy direction-constrained SFT,是一种在监督微调(SFT)训练中加入方向约束的方法,它会提取在线策略训练(比如GRPO)得到的参数更新方向,然后强制SFT的每一步更新都沿着这个方向走,从而把在线策略训练的泛化优势转移给SFT。
Q2:OPSFT和普通SFT相比效果提升有多大?
A:论文实验显示,OPSFT在多个模型(Qwen3-1.7B/4B/8B等)和数据集上,准确率相比普通SFT有显著提升,并且基本追平甚至超过提供方向的GRPO本身,同时由于不需要跑完整的在线策略训练,OPSFT的训练时间比GRPO少一半以上。
Q3:为什么更新方向比更新位置更重要?
A:论文做了对照实验,发现只约束"更新位置"(不管参数变大还是变小)效果反而不如普通SFT,而加上方向约束之后效果大幅提升,这说明真正决定泛化能力的是参数往哪个方向调整,而不只是哪些参数被调整。
好文章,需要你的鼓励
GeoVerse融合几何潜在扩散模型与Wan2.2视频生成先验,并引入全局空间记忆机制,实现了跨视角一致、生成质量高且推理速度快的新视角合成,在多个数据集上大幅超越现有方法GLD。
本文解读TT-VidT,一种通过分离外观锚点与动作令牌、结合Diff Compression训练目标的视频自监督方法。在24种架构目标组合的受控实验中,仅TT3D与Diff Compression搭配才能进入强动作敏感区,且计算量比同类方法降低近一半。
Q&A Q1:Imprint Reader是什么? A:Imprint Reader是上海人工智能实验室团队开发的模型,通过SMaRT训练方法学会读取另一个模型冻结的权重更新,把参数层面的变化翻译成自然语言描述,判断这次更新到底注入了什么知识或诱导了什么行为习惯。 Q2:MetaEdit能做什么? A:MetaEdit能把Reader对目标行为的梯度信号迁移到原始模型上,不需要任何目标任务的训练数据,只用一句行为描述就能定向调整模型参数,已经在安全性拒绝率调节、数学推理风格转变和工具调用能力提升上验证过效果。 Q3:Imprint Reader读权重更新的准确率高吗? A:目前还不高,知识类目标的Pass@100只有2%,行为类目标是16%,说明自由生成描述的可靠性有限,但相比原始模型完全答不出来的0%基线,已经证明了权重更新的自然语言读取是可行的。
统一多模态模型能看也能画,理论上该会自我修正。本论文提出UMM-Reflection,用整条轨迹的强化学习联合训练诊断和修图能力,GenEval提升12分,且迁移到多个未训练基准,揭示RL提升的是选择可靠性而非新能力。