在什么是本体推理文章中,我们得出一个结论是:
推理强度最高的那一段,需要一个真正会按本体的关系语义进行推理的模型,而这个能力无法靠 prompt 获得,必须训练进权重,并且要以泛化的形态训练——一份权重,服务任何一张本体。这一篇讲训练,先把中心立场说在前面:传统的 CPT、SFT 加 RL 这套流程,优化的本质上是单轮的智能——一个输入对应一个输出的映射;而上篇定义的那个推理循环,是模型在环境里连续行动的一条轨迹,走错与回退、跨步骤的因果、推理深度的取舍,全部发生在轨迹的层面上。从单轮智能到端到端的轨迹智能,中间隔着的东西,监督数据补不上,要靠 RLVR——在可验证的环境里对整条轨迹做强化训练。所以这一篇以 RLVR 为中心展开:先明确训练目标,再讲单轮训练为什么到不了这个目标,然后进入 RLVR 的技术细节和轨迹上涌现出来的能力,最后回头给 CPT 和 SFT 重新定位,以及数据生产中容易出错的三个环节。
训练目标:会读任何一张本体的模型
我们要训练的,不是一个"会做大族这套故障诊断"的模型——那样换一家客户、换一张本体就需要重新训练,没有通用价值。我们要的是一个会读任何一张本体的模型:给它一张没有见过的本体,它能读懂上面的关系语义,并在这些关系的约束下生成出一条推理路径。
这个目标可以直接写成一个优化问题。记O为一张本体、q为问题、tau为模型在环境中走出的一条轨迹、R为奖励:
theta* = argmax_theta E_{O ~ D} E_{q ~ Q(O)} E_{tau ~ pi_theta(. | q, O)} [ R(tau; O) ]
这个式子的结构本身就带着立场:本体O在期望范围之内,参数theta在期望范围之外——同一份权重要在本体的整个分布D上有效,而不是为某一张本体专门优化;“会读任何一张本体”,就是要求训练出来的theta在D之外的陌生本体上仍然有效。下文"方法/内容"的分界,正是这个结构的工程表述:进权重的是theta,留在输入里的是O。
这个模型每次执行的,实际上是同一个循环:
方法进权重,内容留在输入里
由这个目标可以推出第一条原则:区分方法和内容。通用的关系逻辑——看到一条声明为可传递的关系,知道可以继续向下推;看到可逆的关系,知道可以反向溯因;看到互斥声明,知道确认一个就能排除另一个——这部分属于方法,需要训练进权重。而某条具体关系连接了哪些实体、某条"价格对销量"的量化曲线是什么形状、某台设备有哪条排除规则——这部分属于内容,每次从输入的本体里读取,不进入权重。这条分界如下图所示。
训练出来的模型,权重里装的是怎么读关系语义、怎么调用五种推理动作、怎么把动作组织成多跳推理,不装任何一家客户的本体内容。客户的本体在推理时作为输入完整提供。这条分界同时回答了一个工程问题:为什么换客户不需要重训——因为客户之间不同的部分全部在输入侧,权重里的方法是共享的。
这个目标的形态是一条轨迹,不是一个映射
第二条要从这个目标里读出来的东西,关系到整个训练方案的结构。注意上面那个循环的性质:它不是一次问答,每一圈的输入都取决于上一圈的执行结果,走错一步,后面所有的状态都会偏离正轨。也就是说,我们要训练的能力,天然是一条在环境中展开的轨迹,而不是一个从输入到输出的静态映射。普通的多跳推理模型与它的差别也在这里:普通模型的多跳发生在一段文本内部,每一跳的合理性靠语言上的通顺来保证;本体推理的每一步要对着环境真实执行、对着关系语义核验合法性,整条链在结构上逐步可查。能力的形态是轨迹,决定了训练的中心必须放在轨迹级的优化上——这是下面整篇的主线。
把两种形态并排写出来,差别一目了然。监督训练优化的是一个静态映射的似然:
L_SFT(theta) = - sum_{t=1}^{T} log P_theta(y_t | y_<t>, q, O)
而轨迹的展开有环境参与:tau = (s_0, a_0, s_1, a_1, ..., s_T),每一个新状态s_{t+1} = E(s_t, a_t)由环境真实执行决定。注意环境转移E在L_SFT里根本不出现——监督损失的梯度只流经标注序列上的 token,模型从未为"自己走出来的状态"承担过后果。这一个缺席,就是下一节三样东西的共同根源。
单轮智能的边界:监督训练教不出来的三样东西
CPT 和 SFT 本质上都是单轮训练:CPT 优化对下一个 token 的预测,SFT 优化对一份标准答案的模仿,监督信号都落在单个样本的内部。这套方法建立的能力是静态映射——见到什么样的输入,产出什么样的输出。它在自己的范围内是有效的,但轨迹上有三样东西,逐样本的监督在结构上就给不出来。
第一样是走错之后的回退。专家编写的推理样本是干净的——先想好答案,再把过程顺着写出来,一条直线走到底,没有分支、没有错步。模型照着学,学到的全部是"在正确的状态下走正确的下一步"。问题在于推理是逐步生成的,模型一旦自己走错一步,就进入了一个训练数据里从来没有出现过的状态,而它在这种状态下该怎么办,监督数据里没有答案——错误只会一步步放大,没有任何机制把它拉回来。回退这个能力,只能在模型真的走错过、并且因为纠正回来而获得奖励的过程中长出来,而监督训练里,模型从来没有机会走错。这件事有定量的刻画:模仿学习的经典结果表明,单步模仿误差为epsilon时,轨迹层面的累计错误最坏可达O(T^2 * epsilon)量级(Ross & Bagnell, 2010)——误差不是沿步数线性累加,而是随轨迹长度平方放大,因为每一次偏离都把模型带进监督分布没有覆盖、因而没有任何纠正梯度的状态。强化训练在模型自己生成的状态分布上优化,错误状态本身进入训练分布,回退才第一次有了学习信号。
第二样是跨步骤的信用分配。一条多跳推理链,最终结论的对错往往取决于很早的某一步——归摄错了类型,后面每一步都会顺理成章地错下去。单轮的监督损失按 token、按句子计算,它奖励的是每一步局部的通顺合理,而"第二步那个归摄选择导致了第八步的失败"这种跨步骤的因果,在逐 token 的损失函数里不存在对应的项。要把最终的奖惩沿着整条链正确地分摊回去,需要轨迹级的优化目标。这个"分摊"在策略梯度里有明确的数学形态:
grad_theta J = E_{tau ~ pi_theta} [ sum_{t=0}^{T} grad_theta log pi_theta(a_t | s_t) * A_hat_t ]
优势项A_hat_t负责把整条轨迹的成败折算到第t步——第二步的归摄选择如果系统性地导致失败,它的A_hat_t就会持续为负,哪怕这一步在语言上再通顺。监督损失里不存在A_hat_t的对应物,因为每个 token 的目标都是给定的,没有什么需要折算。顺带要指出一个代价:奖励只在终点出现时,A_hat_t的估计方差随轨迹长度增长,长链上的信用分配会变得又慢又粗——这个问题在通用领域只能硬扛,在本体场景却有结构性的缓解,"过程也可以验证"一节会回到它。
第三样是推理强度的自适应。上篇讲的无级变速——简单的题浅走、复杂的题深推——是一种策略层面的行为:模型要自己决定走多深、什么时候停、什么时候补一轮校验。监督数据可以展示各种深度的推理链,但"在什么情况下选择什么深度"这个决策本身,在模仿学习里没有被直接优化;它需要模型在反复尝试中体会到浅走会答错、无谓的深推有成本,才能学出来。
这三样合起来指向同一个结论:上篇定义的那个能力,形态上是一个在环境中行动的策略,而不是一个问答函数。训练一个策略,是强化学习的领域——具体到我们的场景,是 RLVR。
RLVR:在可验证的环境里训练整条轨迹
RLVR(Reinforcement Learning from Verifiable Rewards)本身不是新东西,它最早成立的地方是数学和代码:算式的最终结果对不对、代码能不能通过单元测试,对错可以客观判定,强化训练就有了可靠的信号。但要注意它最初的形态——单轮的。模型一次性生成完整的解答,奖励只在终点判一次,中间没有环境交互、没有工具调用、没有状态变化。这两年训练技术上最重要的一个变化,是工业界和学术界把这套机制从单轮外延到了轨迹:模型在环境里连续行动,每一步真实执行,奖励落在整条轨迹上。RLVR 的能力边界因为这次外延被重新划定——它从一个解题的训练方法,变成了塑造行动策略的训练方法。下图把外延前后的两种形态画在一起。
我们的训练方案建立在这次外延之上:让模型在一个能够真实执行、能够客观判定对错的环境里完整地解题,按可验证的结果给奖励,在轨迹级别上优化。并且本体场景在这条路线上还有一项别处没有的结构性优势,后面会讲到。下面把这套机制的几个组成部分拆开讲。
环境与可验证奖励
环境包含三样东西:完整的本体(作为输入提供给模型)、可以真实调用的工具(数据查询、计算、设备状态读取),以及一个独立的验证机制 answer_check。模型在环境里的一次完整运行称为一条 rollout:从用户问题出发,按前面那个循环逐步推进——生成一步、调用工具、读取新状态——直到给出结论;answer_check 判定结论的对错,判定结果就是奖励。这套结构如下图所示。
这里有两个设计要求需要专门强调。第一,验证必须独立:结论的真值来自历史的真实结果、独立的专家标注、或者可校验的硬约束,不能让模型评价自己的答案,也不能复用模型推理时用过的同一个信号——否则验证方和被验证方是同一个来源,筛出来的"正确"是循环论证。第二,奖励必须可验证,而不是可感觉:如果用一个学习出来的奖励模型打分,模型很快会找到讨好打分器的捷径,分数上升而能力没有上升。对错可以被客观判定,是这套方法敢于加大训练量的前提,也是 RLVR 区别于一般 RLHF 的地方。
档位四那类没有标准答案的探索题,会对"可验证"提出一个追问:答案本身没有唯一的对错,验证落在哪里?落在可以客观判定的部分上。一条探索轨迹里,可判定的东西其实很多:每条路径的推演计算是否正确、约束校验的结论是否成立、最终的分层结果与约束判定是否一致;有历史真实经营结果的场景,还可以拿真实结果做对照。不可判定的部分也要明确划出来:约束之内几条路孰优孰劣的取舍,属于经营偏好的判断,不进入奖励——把它强行写进奖励,训练出来的只会是某种固定的口味;这部分由模型综合各条路径的后果给出建议,最终的确认和执行由人完成。这样划分之后,训练信号始终落在可以客观判定的部分上,可验证奖励的根基并不因为问题开放而松动。这段划分同样可以写成奖励的形状:
R(tau) = alpha * I[推演计算正确] + beta * I[约束校验结论成立] + gamma * I[分层与约束判定一致] + delta * I[与历史真实结果相符]
式子右边的每一项都是指示函数——要么可以客观判定,要么不出现在式子里。"哪条路更好"这个取舍在式子里找不到自己的项,这不是省略,是设计:它属于人,不属于R。
本体场景的一个天然优势:过程也可以验证
通用领域的 RLVR——数学和代码是最典型的——通常只有最终答案可验证:算式的结果对不对、代码能不能通过测试。中间的推理过程是黑箱,奖励信号只挂在终点,既稀疏,也分辨不出"结论碰巧对、过程其实错"的轨迹。
下图把两种形态的奖励信号对照画出。
本体场景在这一点上有一个结构性的优势:上篇讲的关系语义,本身就是一台过程级的验证器。推理链的每一步都声称自己依据本体上的某条关系,那么这条关系是否存在、是否可逆、是否可传递、这一步的用法是否合法,对着本体逐步可查。这意味着奖励信号不必只挂在终点——一条结论恰好正确、但中间某一步违反了关系语义的轨迹,可以被识别出来,降权或者剔除;反过来,过程完全合法、只在最后一步出错的轨迹,也可以保留它正确的前缀。最终答案的对错,加上每一步的合法性,两层信号同时存在。这是本体推理做 RLVR 比开放领域更顺的地方,也从训练侧再一次说明了为什么关系语义的标注必须先行——它不只是推理的地基,还是过程验证器的判定依据。
把这两层信号写进奖励,就是过程奖励在本体场景的形态:
R(tau) = R_out(y_T) + lambda * sum_{t=0}^{T} v(s_t, a_t)
其中R_out是 answer_check 给出的终点判定;v(s_t, a_t)是关系语义对第t步的裁定,合法取0、违法取-1;lambda控制过程项的力度。前面图上那两类轨迹的命运,在这个式子里成了可计算的事实:结论碰巧对、过程违法的轨迹,R_out = 1但sum v < 0,总奖励被压下去;过程全部合法、末步出错的轨迹,违法惩罚精确落在出错的那一步,前面的步骤不再被整条轨迹的失败连坐,正确前缀得以保留。它也正面回应了信用分配一节留下的方差问题:A_hat_t的估计不再依赖一个终点信号摊给T步,每一步自带局部判定,信号变密、估计变稳——"关系语义是过程级验证器"这句话,在训练数学里就兑现在这里。
轨迹怎么生产、怎么筛选
实际训练中,同一道题会让模型采样多条 rollout,然后按验证结果分流处理。
跑对且过程合法的轨迹是正样本:它们直接用于强化训练,也可以回流补充 SFT 数据,让推理骨架随着模型自己的成功经验持续加厚。跑错的轨迹不是废料:把同一道题的正确轨迹和错误轨迹配成对做偏好优化,模型学到的不只是"这样走对",还有"那样走错、错在哪一步"——负样本携带的信息常常比正样本更密。
这个生产机制还有一个工程含义值得说明:轨迹数据的规模化不依赖专家逐条标注。专家提供的是题目和真值——这是推理样本的职责,下一节还会讲到——过程数据由模型自己在环境里大量生成,由验证机制自动筛选。专家投入决定的是题目的质量和覆盖,数据的量级由采样和算力决定。监督数据做不到的规模,在这套机制里是可以达到的。
在轨迹上涌现出来的能力
按这套机制训练,前面说的三样东西开始在轨迹上出现,而它们没有一样是被显式标注教出来的。
回退是第一样。探索过程中模型必然走错,而那些走错之后纠正回来、最终拿到奖励的轨迹,使纠错行为本身得到强化。监督数据在结构上给不出"从错误状态恢复"这件事,因为干净的专家样本里不存在错误状态;环境里的探索天然提供这种状态,奖励信号天然偏好能从中恢复的策略。
信用分配是第二样。轨迹级的优化目标会把最终的对错沿整条链分摊回去:那条在第二步就归摄错误、导致全链失败的轨迹,和在第二步归摄正确、最终成功的轨迹,在第二步上的差异会被对比出来。早期的关键选择开始承担它应有的奖惩,这是逐 token 的监督损失做不到的。
强度自适应是第三样。浅走的轨迹在难题上拿不到奖励,无谓深推的轨迹付出长度和成本的代价,模型在两头的压力之下,逐渐形成"该深则深、该浅则浅"的换挡行为。上篇那根连续的强度轴,在模型行为里的对应物,就是在这一阶段被塑造出来的。
这三样能力是轨迹级优化在足够的探索之上长出来的。这也是我们在内部把 RLVR 称为能力涌现层、而把监督阶段称为基础层的原因——下一节就讲这两级台阶。
CPT 与 SFT 的重新定位:把模型送进环境
以 RLVR 为中心之后,CPT 和 SFT 并没有变得不重要,它们的角色变了:从培养能力的主体,变成把模型送到环境门口的台阶。这个定位有一个非常实际的依据:把一个没有准备的模型直接扔进环境做强化训练,是不收敛的——奖励太稀疏,模型几乎采不出正确的 rollout,没有正样本,整个筛选回流的机制就转不起来。台阶有两级。
CPT:让模型进环境之前认识这个世界
CPT 阶段输入领域语料、本体的 schema、关系语义的标注文本,让模型熟悉这个领域的语言、术语和本体的结构形式。它建立的是基础的领域熟悉度,不教授答题方式——这个定位反过来是一条数据投放原则:广量的领域数据应该集中在这一层消化,因为 CPT 只增长底层的熟悉度,不会把某种答题策略固化成模型的默认行为。对 RLVR 而言,CPT 保证的是模型进环境之后,rollout 从第一步起就不是乱走——它认得本体上的术语,读得懂 schema 的形式。
SFT:给探索一个足够好的起点
SFT 阶段输入专家编写的推理样本。一份合格的推理样本包含三个部分:一个问题、一个确定的答案、加上一段推理过程——过程中每一步都标明依据本体上的哪条关系、哪条规则,整条链可以逐步对照验证。
在以 RLVR 为中心的方案里,SFT 的职责可以说得很精确:它是探索的冷启动。强化学习的效率取决于正样本出现的频率,SFT 把模型解题的成功率从接近零拉到一个可用的区间,使得环境里的采样能够以可接受的成本筛出正确轨迹——推理的骨架在这里第一次成形,RLVR 在这副骨架上做的是放大和精炼。这件事还有一个朴素的算术:设初始策略采出一条合法且正确轨迹的概率为p0,RLVR 拿到第一份正信号的期望成本就是1 / p0条 rollout。p0接近零时强化训练空转;SFT 的全部职责就是把p0抬进可工作的区间——它不需要把模型教到多好,只需要让探索不再是大海捞针。
这一阶段需要专门防范一个问题:模型把本体内容背进权重,表现得像是学会了推理,实际上是在复述记忆。针对它有三道防线。第一道是节点随机化:训练时把本体里的节点名随机替换成无意义符号,比如把"主轴轴承"替换成"X7"、把"编码器"替换成"K3"。替换之后,记忆失去用处——“X7 通常出什么毛病"在任何数据里都不存在答案,模型想答对,只能依靠读关系、走结构。第二道是本体永远作为输入:每条训练样本里本体都完整出现在输入侧,模型需要的任何内容知识都能从输入里读到,梯度就没有动力把内容压进权重。第三道是推理过程只允许引用本体显式内容:专家编写样本时的一条纪律,推理链每一步的依据必须是本体上明写的关系或规则,不允许夹带通用常识做桥——混入常识桥的样本会教坏模型,它会学到"本体不够用的时候可以编”,而这恰好是要训掉的行为。
最后是一条工程上的提示:这两级台阶都不依赖环境——CPT 只需要语料,SFT 只需要推理样本——所以它们可以在环境建设完成之前先行启动。环境是整条流水线里建设周期最长、不确定性最高的部分,让它并行推进,训练不必空等。
数据生产中容易出错的三个环节
上面这套以 RLVR 为中心的方案,流程本身并不复杂,实际容易出问题的是数据生产中的三个环节。
推理样本和轨迹是两类不同的数据
推理样本由业务专家编写——先确定答案,再把推理过程完整写出来,附上可以验证的依据;它没有分支、没有试错、没有真实的工具调用。轨迹是模型在可执行的环境里运行出来的过程数据,其中包含工具调用、走错后的回退、每一步的置信程度。
这两类数据的关系是:推理样本是轨迹的规格书和验收标准,而不是轨迹的简化形式。两个方向的混用都会造成实际损失。把专家编写的样本直接当作轨迹训练,训练出来的是一个会背诵标准步骤的模型,遇到需要试错回退的真实问题时没有对应能力;反过来,要求专家去编写带分支、带回退的执行过程,超出了专家的工作形态——专家擅长给出正确的推理和可验证的结论,过程形态的数据由模型在环境里生成、由验证机制筛选。分工划清,两类数据各自的产量和质量才有保证。
关系语义的标注必须排在轨迹采集之前
上篇讲过,每一步推理是否合法由底层的关系语义裁定;这一篇又多了一条理由——过程级验证器的判定依据就是这层语义。但它在现成的本体里常常是隐含的:本体标明了"包含""依据"这些关系连接了哪些实体,却没有标明它是否可逆、是否可传递、是否携带量化函数。在语义缺失的本体上采集推理数据,采回来的每条链都无法核验合法性,过程验证无从谈起。因此有一项容易被跳过的基础工作:把每类关系的可逆性、传递性、互斥与蕴含先补标出来。这项工作比推理样本和轨迹都更靠近底层,必须排在它们之前。
可执行、可验证的环境是流水线的瓶颈
以 RLVR 为中心,等于把整个方案的产能压在了环境上:rollout 在环境里跑,验证靠环境判,轨迹由环境产。这个环境——接入真实数据的沙盒,或者基于历史记录搭建的模拟器,配上独立的 answer_check——推理样本的验证依据写得再完整,它不就位,轨迹一条也生产不出来,能力涌现层就没有燃料。从实际经验看,这条流水线的堵点通常不在专家、也不在标注,而在环境是否就位;它的建设周期长、不确定性高,应该最早立项,与 CPT、SFT 的数据准备并行推进,而不是排在数据之后。
把这三个环节处理好,前面那套以 RLVR 为中心的流程才能真正运转起来。至于怎么判断训练真的成了,最硬的检验只有一条:把一张完全陌生领域的本体交给模型,它仍然能读懂关系语义、走出合法的推理链——"会读任何一张本体"这个目标,要在从未见过的本体上兑现才算数;做不到这一点,训练出来的仍然只是一个领域专用模型。
最后回头看这两篇的关系。上篇把要训练的能力定义成一条在本体约束下展开的轨迹:答案唯一的一端是深度诊断,答案需要生成的一端是开放探索。下篇给出的方案,本质上是让训练信号也长成轨迹的形状:可以客观判定的部分进入奖励,约束之内的取舍由模型综合给出、由人确认。训练的形态对齐了能力的形态,是我们把 RLVR 放在中心、把 CPT 和 SFT 重新定位成台阶的根本理由。
最后预告一句:模型训练完成后,会有单独一篇工程实战文,交代完整的实验设置和跨本体评估的结果——这两篇文章立下的论断,到那时用数字兑现。
参考文献
- Ross, S. & Bagnell, J. A. Efficient Reductions for Imitation Learning. AISTATS 2010, PMLR 9:661–668.(平方复合误差界的原始出处)
- Ross, S., Gordon, G. & Bagnell, J. A. A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning. AISTATS 2011.(DAgger:在模型自身状态分布上训练的模仿学习修正)
- Lightman, H. et al. Let’s Verify Step by Step. 2023.(过程监督与结果监督的系统对比)
- Lambert, N. et al. Tülu 3: Pushing Frontiers in Open Language Model Post-Training. 2024.(RLVR 的命名与实践)
- DeepSeek-AI. DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. 2025.(可验证奖励驱动的推理能力涌现)