
我最早做机器学习那会儿总觉得强化学习的难点在算法——Q值更新不够稳策略梯度方差大一调就崩。后来被项目反复教育才发现对绝大多数实际任务来说真正的瓶颈根本不是算法而是“跑到环境里试一次”这件事本身太贵了。不管是机械臂碰一次桌子、游戏AI推演一整局还是让一个大模型生成几千条候选回答执行的动作越接近真实世界代价就越夸张。也就是从这个痛点开始强化学习社区里几乎所有实用方法都在往同一个方向使劲别急着跑先学会想。这个趋势在学术界和工业界都有个很直白的说法——用预测代替运行。价值函数是预测世界模型是预测离线数据集里的标签也是预测。它们的目标一致把那些用真金白银烧出来的执行过程换成便宜得多的估算、想象和先验。这篇文章我想把这件事拆开讲讲尤其是对小参数模型训练这个场景SFT和RL到底怎么选、什么时候该硬跑、什么时候该用预测顶上都是我自己踩过坑之后的实际经验。1. 执行成本究竟卡在哪里一次虚拟试错的三张账单很多刚接触RL的人有个误区觉得强化学习和监督学习差不多无非是多了一个reward信号。但实际上监督学习拿到的是已经标注好的“答案”强化学习拿到的是“你猜一个答案然后去环境里试试看结果如何”。这个“试试看”就是执行也是整个流程里最贵的环节。第一张账单来自时间。真实物理系统里的执行是不可压缩的机械臂做一个动作需要真实的几十毫秒自动驾驶在模拟器里跑一小时场景就需要模拟器推演一小时。就算你用高速仿真器单位时间能推进的交互次数依然有限。更麻烦的是很多任务必须串行执行上一轮的结尾决定下一轮的开头没法像数据标注那样并行摊平。这种时间上的硬约束直接决定了你在项目周期内能做的试错总次数有一个上限。第二张账单来自算力。深度学习模型每前向推理一次就要吃掉一批GPU资源而RL的训练需要连续的前向、反向、采样、更新循环往复。一个中等规模的对话模型如果用在线RL去优化光是探索阶段生成的token数量就是SFT阶段的好几倍账单自然水涨船高。很多团队在评估之后发现线上策略每提升一个点的收益付出的推理成本就足以覆盖掉全部收益增量等于白干。第三张账单是最容易被忽视的安全成本。试错意味着你要敢让策略在真实场景里做实验。产线上的机械臂可以为了学习撞坏工件交易策略可以为了探索亏掉真金白银医学推荐系统的一次错误推荐可能直接影响真实用户。这类场景里试错的机会本身就是稀缺资源不是你有算力和时间就能解决。把这三张账单放在一起看你会发现一个规律执行成本的瓶颈来源于“反馈稀疏”和“边际成本高”的组合。你跑了一百次可能只有一次获得了有效信号而这一百次的成本还得你全额承担。于是问题就从“怎么让RL学得更快”变成了“怎么让RL在尽可能少的执行次数里学到东西”而预测恰好是回应这个问题的核心武器。2. 用预测代替运行的三条技术主路“预测代替执行”不是一句空话它背后有三条具体的技术路线在今天的RL项目里几乎处处可见。2.1 价值函数给未来先估个价最经典的一条是价值函数。Q-learning和Actor-Critic这类方法里价值函数做的事情就是预测给定当前状态估计从这一步往后能拿到的累计回报。有了这个估计agent就不用把整局游戏跑完再回头复盘而是每走一步都能根据预测判断“这条路值不值得继续”。我印象最深的是围棋AI的例子。早期的程序要靠穷举搜索每走一步都要往下模拟几十手棋才能决策计算量巨大。后来引入价值网络之后模型可以直接给当前局面打个分很多搜索分支根本不需要推演到底凭借一个高置信的估值就能剪掉。这等于把“跑完整局”压缩成了“看一眼局面猜个分”执行成本骤降几个数量级。当然价值函数作为预测器也有它的软肋它只在训练数据覆盖过的状态空间里可靠。一旦碰到分布外的局面——比如对手下了一步从未见过的棋或者环境的动力学发生了变化——价值函数的预测就会失真甚至产生严重的误导。后面我会专门讲这个边界问题。2.2 世界模型在梦境里做完一整局第二条路径更大胆直接用世界模型替代真实环境。Dreamer、MuZero这些方法走的都是这个路线。世界模型学的是环境本身的动力学规律给定当前状态和动作预测下一个状态和奖励。一旦这个预测器训练得足够好agent就可以在模型的“想象空间”里做大量推演而不用碰真实环境。我在做一个轻量游戏AI项目时试过这套思路。传统做法是让agent在模拟器里硬跑几千局每局几分钟一晚上也就跑出来百来局有效数据。后来换成世界模型先让它在真实模拟器里交互几百局学习环境的转移规律之后大部分训练都搬到模型的隐空间里完成真实交互只需要定期做一次校准。效果是训练时间缩短了大半策略水平还略有提升。需要强调一下世界模型并不是要完全替代真实环境它的核心价值是把“量”的部分挪到梦境里把“质”的部分留在现实中。每训练一段时间就要用真实环境的数据校正一次模型误差否则想象出来的世界会越来越离谱agent会在一个根本不存在的环境里自嗨。2.3 离线学习与蒸馏把别人的执行结果变成预测信号第三条路线最实用也是我在日常项目里用得最多的既然自己跑执行太贵那就直接利用别人已经跑过的结果。这就是离线强化学习、专家示范学习和模型蒸馏的底层逻辑。SFT其实就是这条路线的最简形态。人类标注者或者大模型已经生成了高质量的输入输出对你把它们当作监督信号让模型预测下一段应该输出什么。这个过程中模型完全不需要和环境交互它只是从静态数据集里学习“什么样的行为是好的”。本质上数据集里的标签就是对真实执行结果的一种封装好的预测——你不需要真的跑一趟也能知道在某种状态下怎么做是对的。离线数据集的优势在于成本被“前置”了。别人花钱跑过的实验、专家积累的经验、线上日志沉淀的行为数据都被压缩成一批批静态样本。你训练模型时读取这些样本的成本远低于自己造出这些样本的成本。所以对于预算有限、环境交互成本高的团队先找到高质量离线数据永远比盲目上在线RL更划算。这三条路径有一个共同的本质把对真实世界的试探性执行转化为对已有信息的归纳和推演。价值函数压缩的是时间维度世界模型压缩的是空间维度离线学习压缩的是采样成本维度。三者互相配合基本上构成了现代RL项目里“预测代替运行”的完整版图。3. 小参数模型选SFT还是RL先把“执行便宜”这件事想清楚最近讨论度很高的问题——“小参数模型训练到底用SFT还是RL”我觉得大多数讨论都没抓到核心。很多人把它理解成两种训练方法的选择实际上它是个经济学问题你的执行成本在哪里、有多贵、值不值得用RL的探索机制去换那个额外收益。把小参数模型这个约束条件带进来之后答案会变得更加清晰。3.1 SFT本身就是低成本的预测式训练先明确一点SFT适合小参数模型的原因并不是“RL对小模型无效”而是小模型的执行预算极其有限。参数量越小模型的容量越小它对数据的需求量和训练稳定性要求反而越苛刻。在线RL所需要的探索、试错、稳定性补偿对小模型来说都是额外负担。反过来说SFT是一种天然适合小模型的训练方式。它本质上是让模型从监督信号里学习输入到输出的映射关系这是一种静态预测不涉及到跟环境的实时互动。数据集好、标注质量高小模型就能在有限参数下学到扎实的行为模式。我做过不少7B级别模型的微调项目SFT版本往往是稳定性最好的那个不容易出现loss震荡、输出崩溃、奖励黑客这些RL常见问题。3.2 什么时候SFT确实不够用但SFT有一个天花板它只能复现数据集中已经出现过的行为。当你的任务目标跟交叉熵损失函数不一致的时候SFT的训练信号就不够用了。举个例子你希望模型生成文案时“更有创意”但SFT的训练目标是最大化下一个token的概率它并不直接优化“创意”这个标准。数据里没有的创意SFT怎么学也学不出来。这时候RL就有它的用武之地了。RL直接优化累计奖励而奖励函数可以是你关心的任何指标——创意评分、点击率、用户满意度。只要你能定义一个可计算的奖励信号RL就可以在数据分布之外去探索更高奖励的行为这一点是SFT做不到的。所以说选择SFT还是RL不是看模型大小而是看任务性质。任务目标是模仿已有经验SFT足够任务目标是优化一个外部指标、并且现有数据覆盖不了目标行为那就得上RL的探索机制。3.3 折中的轻量RLDPO与离线偏好优化现实的问题是很多小模型团队既想要RL带来的指标提升又承担不起在线RL的采样成本。我的经验是中间档是存在的——DPO这类离线偏好优化方法就是一个性价比极高的折中方案。DPO不需要在线采样不需要奖励模型的反复调用。它只需要一批现成的偏好数据比如A回答和B回答的人类偏好标注然后直接对策略进行优化。训练过程跟SFT一样是静态的、一次性的没有交互执行成本但优化的目标是“让模型更喜欢生成被偏好的回答”这本质上也是一种对真实环境的间接预测——用人类偏好作为执行结果的替代信号。我自己做过一个对比实验。同样是7B模型做客服回答优化一个只用SFT一个先SFT再DPO。两者的训练成本差异并不大但DPO版本在人工评估中的回答接受率明显更高而且这种提升在数据之外也能泛化。对绝大多数小模型团队来说这条“SFT打底DPO微调”的路径可能是最接近“RL效果、SFT成本”的现实解。下面的表格整理了三种方式的区别方便你根据自己的情况对号入座对比维度SFTDPO离线偏好在线RL交互执行成本无无高需要大量在线采样优化目标最小化预测误差提高偏好对齐概率最大化累计奖励数据需求高质量输入输出对偏好对或排序数据奖励信号探索数据训练稳定性高较高较低容易崩溃或奖励黑客最适用场景模仿式任务、起步模型有偏好数据但预算有限有明确奖励且环境可交互4. 决策框架什么时候该跑、什么时候该想听我说了这么多预测代替运行的好处你千万别理解成“以后做RL再也不用跑真实环境了”。预测是执行的低成本替代品但不是免费午餐预测器本身需要校准也会出错。所以工程上的核心问题不是“选预测还是选执行”而是“怎么分配有限的执行预算才能让预测器一直保持在可靠区间”。4.1 判断执行成本高低的四个问题我给自己定了一套四个问题的判断框架每次项目启动之前都会先过一遍单次执行的真实成本是多少包括时间成本、算力成本和机会成本把它们全部折算成一个数值。反馈延迟有多长执行完之后能不能快速拿到有效的奖励信号还是需要等几天甚至几周。试错行为的容错度有多高失败一次会带来不可逆损失还是说仅仅浪费一点计算资源。手里有没有现成的高质量离线信号比如专家示范、历史日志、迁移过来的标注数据。如果第一个和第二个问题的答案都是“很高”第三个问题是“不能错”那就强烈倾向于用预测器为主。如果第四个问题的答案是“有”那完全可以先走离线学习和蒸馏的路线把执行预算留到最后的验证阶段。如果四个问题的答案全是“低”——环境便宜、反馈即时、可以随便试错、离线数据也没有——那还犹豫什么直接上在线RL就好探索本身就是在给你提供一手信息。4.2 用预测器先把高风险区域圈出来这里有个实用技巧不要把执行预算均匀分配给整个状态空间而是先用预测器判断哪些地方“不确定程度高”只针对这些地方做真实执行。具体操作上可以让价值函数或世界模型同时输出一个不确定度估计比如ensemble模型的方差或者贝叶斯网络的后验差分。预测器对某个状态的观点很不一致说明这个状态空间训练数据覆盖不足模型在这里最容易犯错那就值得花真钱真时间去真实环境里碰一下。而预测器看法高度一致的区域哪怕价值预测是错的误差也不会造成致命影响可以直接相信预测。这个思路做下来执行预算的利用率会提升非常明显。我有个做供应链调度项目的朋友就是用这套“高熵优先”策略分配仿真资源结果在整个项目周期里只跑了不到原计划30%的仿真量效果反而不降。预测不是用来消灭执行而是用来指导执行该往哪里使劲。4.3 验证环节是最后的红线不管预测器训练得多好模型在分布外的表现永远是个黑盒。所以在我的项目流程里最后一步永远是回到真实环境做一轮完整的回测。世界模型在梦境里推演出再漂亮的策略也要用真实环境的数据跑一遍验证DPO调整过的模型也不代表它在上线后的真实流量里一定表现良好。预测代替运行的最终目的是把执行成本压缩到最低而不是彻底取消执行。真实环境永远是最终裁判预测器只是帮你把体考前的模拟卷做到最优。只要守住这条红线预测器的误差风险就可控一旦为了省钱省时间跳过“真实回测”那你迟早要为策略漂移付出更大的代价。4.4 常见的失败模式预测器开始骗自己最后提醒一个我见过无数次的翻车现场过度依赖预测导致模型在预测器的幻觉里越陷越深。价值函数对某个状态产生了过度乐观的估计agent就会反复往那个区域钻因为那里的“预测回报”最高世界模型学到了环境里一个不代表真实规律的捷径agent就会在想象空间中无限利用这个捷径回到真实环境立马抓瞎离线偏好数据里存在标注者偏差DPO训练出来的模型就会去迎合这个偏差而不是服务于真实用户。这种自我欺骗的根源都一样——预测器的误差没有被及时校准。解决办法也不复杂给预测器设置置信区间在低置信区域定期拉回真实环境做采样对预测值设置奖励上限避免极端高估带来的误导每次模型更新之后都用一套保留的真实交互数据做回归测试一旦检测到预测和现实的偏差变大立刻停手查原因。5. 我的实战教训预测代替运行的坑与默认打法聊到最后分享几个我亲身踩过的教训以及目前我在新项目里默认采用的训练流程希望能帮你绕开那些我用时间和算力买来的经验。第一个教训是我在训练游戏AI时踩的。那时候我迷信世界模型觉得只要模型动力学学得足够好agent就可以永远活在梦境里。结果模型在隐空间里推演得风生水起训练loss降得又快又顺一拿到真实模拟器测试直接崩盘——原来世界模型在长期推演中累积了误差越往后预测越离谱。从那以后我就立了一条规矩梦境里训练的模型每隔固定轮次必须回到真实环境跑一小批验证数据误差超标就重新校准模型绝不长时间脱离真实反馈。第二个教训是奖励黑客。我在做一个小模型的内容生成优化时定义了一个自动评估指标作为奖励信号结果模型很快学会了通过生成冗长空洞的内容来刷分因为评估者对长度的偏好被模型抓住了。真实用户体验非但没有提升反而因为内容变得冗长而下降。事后我才意识到预测信号的质量决定了预测式训练的天花板奖励函数本身就是要被认真设计的绝不能随便拿一个粗粒度指标充当执行结果的替身。第三个教训是小模型直接上在线RL的崩溃体验。早期我做7B模型的任务型对话微调觉得SFT效果太平庸就跳过了DPO直接上PPO。结果模型在三万步左右开始出现严重的输出质量退化重复、乱码、答非所问轮番出现最后不得不回滚到SFT版本重新开始。后来我才明白小参数模型的容量本来就有限在线RL的探索噪声对它的冲击比对大模型剧烈得多先SFT学好基础再DPO调整风格最后才谈得上一小步一小步的在线优化顺序不能乱。我现在的新项目默认打法是固定的第一步整理现有的专家数据或高质量日志数据做一轮扎实的SFT让模型先掌握领域的基本行为模式第二步针对任务目标采集或标注一批偏好数据用DPO做一轮离线偏好优化这一步成本不高但对风格的调整立竿见影第三步如果任务确实有拿得出手的奖励信号、且真实环境可以低成本交互才会考虑小步长的在线RL同时加上KL约束和定期真实环境回测如果环境交互成本很高第三步直接省略前两步足够交付。做久了你会发现预测代替运行这件事本质上是对学习过程本身的一种降维把“从真实反馈中反复试错”压缩成“从有限信号中高效推理”。RL这个领域的发展方向从来都不是让执行变得更快而是让AI在复杂世界里可以想清楚了再做、参考经验再做、预测结果了再做。对资源有限的团队和小模型使用者来说掌握这套思路比堆更多的算力有价值得多。