想象一位跳水教练带国家队选手。传统训练方式很直白——不去管过程,只看比赛最终得分。运动员整套动作完成得了高分,训练就继续;得了低分,就重来。但这样有个致命问题:当分数不理想,运动员完全不知道该调整哪个环节,是起跳慢了?翻腾角度偏了?还是入水压水花没压住?教练也一样束手无策。 而一位细心的教练会怎么做?他会把整套动作拆成一帧一帧的录像,逐环节分析:起跳高度够不够,空中姿态是否标准,打开时机是否恰当,每个环节分别给出明确反馈。运动员练一次,就能收获一条条具体改进意见。这,就是步级奖励(Step-level Reward)的核心思想。 传统强化学习只给整个推理过程打一个总分的做法,就像是只看比赛最终得分。而步级奖励则像教练逐环节分析录像,针对模型的每一步推理给出细颗粒度的反馈信号。当大模型做数学题、写代码时,即使最终答案错了,步级奖励也能告诉模型:是计算错了,还是推理路径选错了。这让模型得以沿着正确的推理路径一步步学会「怎么想」。

岗位关联

对 AI 从业者来说,掌握步级奖励是理解 o1 类推理模型的关键钥匙,也是把强化学习从「黑箱打分」推向「过程可教」的必备技能。工作中的大模型微调、智能体策略优化,都会用到这套思想。

目录
  1. 可视化演示
  2. 核心概念解析
  3. 稀疏反馈痛点
  4. 设计方法
  5. 两阶段训练范式
  6. 实践与代码要点
  7. 误区与未来方向
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示步级奖励与结果奖励对比、四种奖励信号生成方式、PPO训练中的GAE优势集成、以及GSM8K基准上步级奖励带来的13%精度提升。

本节配有交互动效(进入视口后自动加载,约 3KB)。

步级奖励与结果奖励对比 结果奖励仅在推理链末端给单一信号,信用分配粗粒度 步级奖励对每步给出细粒度反馈,精确定位错误步骤 R_step = sum(r_i), i in steps 步级奖励解决长推理链中的信用分配难题

核心概念解析

教练逐帧分析跳水录像的做法,翻译到 AI 训练中就是「步级奖励」。传统强化学习用结果奖励给模型的完整输出打一个总分,而步级奖励把整个推理过程拆成一串步骤,逐个步骤给出质量评分。教练不说「整套动作 4.2 分」,而是说「起跳不错 +0.8,空中姿态略散 +0.5,入水角度偏了 -0.3」。

在强化学习框架里,这一步的转变把它从「只看结局的裁判」升级为「伴随全程的教练」。设一次完整的推理生成步骤序列 $s_1, s_2, \dots, s_T$,步级奖励对每一步都生成一个反馈信号 $r_t$,而不是只对最终结果 $s_T$ 给一个总分:

教练之所以能逐帧纠错,是因为有一套明确的动作标准。模型训练中,这套标准由奖励函数和各步骤的实际评分来体现。理解了「逐帧录像回放」的视角,接下来要回答一个问题:为什么只看总分不够?这就是结果奖励的痛点所在。

Rstep-level(s1:T)=1T∑t=1Trt(st)R_{\text{step-level}}(s_{1:T}) = \frac{1}{T} \sum_{t=1}^{T} r_t(s_t)
公式表示:把每一步获得的奖励分数求和再取平均,作为整条推理路径的步级总奖励。每步得分 $r_t$ 来自验证器、蒙特卡洛估算或学习到的奖励模型。
  1. 步骤序列$s_{1:T}$ 表示一次完整的推理过程,从第一步 $s_1$ 到最后一步 $s_T$,就像录像里的每一帧动作。
    s1:T=(s1,s2,⋯ ,sT)s_{1:T} = (s_1, s_2, \cdots, s_T)
  2. 单步奖励函数$r_t(s_t)$ 是给第 $t$ 步打分的函数,输入这一步的状态,输出一个分数,相当于教练对某一帧动作的评分。
    rt:st↦Rr_t: s_t \mapsto \mathbb{R}
  3. 求和平均$\frac{1}{T}\sum_{t=1}^{T}$ 把各步得分累加后除以步数,得到全过程平均步级奖励。它保证了无论推理长短,总分都在同一尺度上比较。
    1T∑t=1Trt(st)\frac{1}{T} \sum_{t=1}^{T} r_t(s_t)
  4. 整体对应$R_{\text{step-level}}$ 是整条推理路径的步级总奖励,供策略优化使用。注意它和结果奖励 $R_{\text{result}}$ 是两套信号,可以互补。
    Rstep-level(s1:T)R_{\text{step-level}}(s_{1:T})

稀疏反馈痛点

如果教练只看比赛总分,运动员训练十次,九次都不知道自己哪里不对。模型的处境更艰难——它连「翻腾角度偏了」这样模糊的提示都得不到,只知道「最终结果:0 分」。这种只在终点给一次反馈的方式,在强化学习里叫稀疏结果奖励,它有两个明显问题:反馈太稀疏,以及中间错误被终极分数掩盖。

先看稀疏问题。一次数学推理要经过读题、列式、计算、检验四步,如果模型最终答案错了,结果奖励只给一个「0」,它无法区分是列式错了还是计算错了。再看掩盖问题:即使最终答案对了,中间可能走了弯路,重复计算、绕远路、碰巧蒙对,这些坏习惯在结果奖励下不会被纠正。用教练的话说:运动员蒙了个高分,但动作全是毛病,教练只给总分会让他以为动作没问题。

这两个痛点共同指向一个深层后果——奖励链断裂。当反馈只能抵达终点、无法传导到中间步骤时,模型的每一步行为都得不到直接指导,长期探索效率极低。它可能在错误路径上反复打转,始终找不到正确方向:

结果奖励像「只有终点的裁判」,步级奖励则像「全程陪伴的教练」。一个显而易见的推论是:如果能把教练的逐帧反馈自动化、规模化,模型的训练效率会大幅提升。可教练的金牌经验从哪来?这就是设计方法要解决的问题。

Rresult(s1:T)=1[最终答案正确]−c⋅TR_{\text{result}}(s_{1:T}) = \mathbb{1}[\text{最终答案正确}] - c \cdot T
公式为结果奖励的典型形式:答案正确给 1 分,同时按推理长度 $T$ 扣去一定的成本 $c\cdot T$。它只关心终点,对中间的推理质量没有直接评分。
  1. 指示函数$\mathbb{1}[\text{最终答案正确}]$ 是二值信号:答案正确取 1,错误取 0。这是典型的稀疏反馈——绝大多数中间步骤得不到任何分数。
    1[⋅]∈{0,1}\mathbb{1}[\cdot] \in \{0, 1\}
  2. 长度惩罚$c \cdot T$ 表示按步数扣分,约束模型不要无限绕路。但注意:它只惩罚「长」,不惩罚「错」,中间步骤的错误依旧无信息。
    c⋅T,c>0c \cdot T, \quad c>0
  3. 总量结合正确加分与长度扣分结合,$R_{\text{result}}$ 给出最终分数。中间过程无论多离谱,只要答案对且短,分数就高。
    Rresult=1−c⋅T(若正确)R_{\text{result}} = 1 - c \cdot T \quad (\text{若正确})
  4. 局限对照对比上一节步级奖励公式,结果奖励对步骤 $s_t$ 完全无感知,这正是需要步级奖励填补的空白。
    Rresult⊥{r1,⋯ ,rT}R_{\text{result}} \perp \{r_1, \cdots, r_T\}

设计方法

要让教练的评分标准自动化,有两条路:要么把动作标准写成明确规则,要么请一批资深裁判评估再总结规律。模型训练中,步级奖励的评分来源主要有三类:自动验证器、蒙特卡洛估算、学习到的奖励模型。

自动验证器最直观,适合确定性强的领域。比如代码训练中,编译器本身就是最好的裁判——某一行语法对不对、某段程序能否通过测试,直接给出客观评分。数学题同理,计算器可以验证某一步等式是否成立。这类信号可信、无需训练,是步级奖励最可靠的来源之一。

蒙特卡洛估算则更像教练凭经验预估:虽然不知道某一步的确切得分,但可以多次模拟完整动作,看从这一步出发最终跳成功的比例是多少。这个比例就是这一步的期望得分:

当领域没有明确的验证器,蒙特卡洛又计算太贵时,第三条路是训练一个奖励模型。它像个「实习裁判」:先用人工标注的步骤好坏数据训练它模仿人类判断,之后用它给新步骤打分。还有基于过程监督的变体:不只判断对错,还尝试用自然语言指出哪一步出了什么问题,让反馈更有解释性。实践中常把几种信号混合使用,比如验证器负责硬指标,奖励模型负责软质量。

教练的评分标准明确了,下一步的问题是:怎么组织训练日程?先练基础动作,还是直接上高难度?

r^t(st)≈1N∑j=1N1[从 st 出发第 j 次最终成功]\hat{r}_t(s_t) \approx \frac{1}{N} \sum_{j=1}^{N} \mathbb{1}[\text{从 } s_t \text{ 出发第 } j \text{ 次最终成功}]
公式表示:从当前步骤出发,用小规模采样模拟多次完整推理,统计最终成功的比例,作为该步骤得分的近似估计。采样越多,估计越准。
  1. 出发点$\hat{r}_t(s_t)$ 是对第 $t$ 步得分的近似估计,它的意义是「当前这一步对的概率有多大」。
    r^t(st)∈[0,1]\hat{r}_t(s_t) \in [0,1]
  2. 采样次数$N$ 表示从当前步骤出发模拟 rollout 的次数,N 越大估计越稳定,但计算成本也越高。
    N∈{8,16,32,⋯ }N \in \{8, 16, 32, \cdots\}
  3. 模拟结果指示$\mathbb{1}[\text{从 } s_t \text{ 出发第 } j \text{ 次最终成功}]$ 是单次模拟的成败二值。把这些二值平均,就是把成功率当作步级得分。
    1N∑j=1N1[successj]\frac{1}{N} \sum_{j=1}^{N} \mathbb{1}[\text{success}_j]
  4. 近似偏差写 $\approx$ 是因为采样是近似估计,真实步级得分需要整个状态空间上积分,实际中用采样代替。
    r^t→rt当 N→∞\hat{r}_t \to r_t \quad \text{当 } N \to \infty

两阶段训练范式

再资深的教练也不会让新学员直接上高台。训练一定分阶段:先在低台把基础动作练扎实,再上高台配合细化技术。步级奖励的强化学习训练也遵循类似的两阶段范式:先 SFT 预热,再 RL 强化。

第一阶段是 SFT(监督微调),用优质示例子集让模型先学会「像模像样地推理」。这段相当于教练带学员做常规训练,让动作成型。第二阶段才是步级奖励发挥主力的战场:RL(强化学习)阶段。模型探索不同的推理路径,每一步都得到步级奖励的细粒度反馈,策略网络据此调整参数。两阶段各司其职——SFT 保证下限,RL 冲击上限。

实际操作中,智能的做法是混合奖励:步级奖励促进过程正确性,但最终结果仍需把关。就像教练既看每一帧动作,也看最终的落水分数。总奖励把两者加权结合:

训练日程还常配合课程学习策略——先练简单题,正确率稳定后再上难题,和运动员由低台逐步过渡到高台如出一辙。不过「先两步后三步」的思路虽然对,实际操作里从步骤拆分到参数调整都暗藏陷阱。这正是实践要点要解决的问题。

Rtotal=λ⋅Rresult+(1−λ)⋅1T∑t=1Trt(st)R_{\text{total}} = \lambda \cdot R_{\text{result}} + (1 - \lambda) \cdot \frac{1}{T}\sum_{t=1}^{T} r_t(s_t)
公式表示:总奖励是结果奖励与步级奖励的加权和,$\lambda$ 控制两者的相对权重。通常 $\lambda$ 取 0.3~0.7,任务越难结果奖励权重越高。
  1. 权重控制$\lambda$ 是 0~1 之间的超参数,决定结果奖励的占比。$\lambda=1$ 退化为纯结果奖励,$\lambda=0$ 变成纯步级奖励。
    λ∈[0,1]\lambda \in [0,1]
  2. 结果项$\lambda \cdot R_{\text{result}}$ 是加权后的结果信号,保证最终答案正确依然是最重要的追求。
    λ⋅Rresult\lambda \cdot R_{\text{result}}
  3. 过程项$(1-\lambda) \cdot \frac{1}{T}\sum r_t$ 是加权后的步级信号,引导每一步推理路径趋向正确。
    (1−λ)⋅1T∑t=1Trt(st)(1-\lambda) \cdot \frac{1}{T}\sum_{t=1}^{T} r_t(s_t)
  4. 取和$R_{\text{total}}$ 同时兼顾终点与过程。前期训练可让 $\lambda$ 小些,多用步级信号快速学会正确路径;后期加大 $\lambda$,把最终准确率打磨上去。
    RtotalR_{\text{total}}

实践与代码要点

把步级奖励落地到真实训练中,教练的经验总结成三条核心建议。第一,步骤划分的颗粒度要适中。步骤太粗,反馈仍不够细;步骤太碎,每一步的得分计算成本大增,噪声也大。一个实用的经验:把一次推理按「中间结论」划分步骤,每个步骤对应一个可验证的子目标。

第二,奖励数值要注意缩放。步级奖励的分值天然比结果奖励小,通常每步 0~1 分,而结果奖励可能是 1 或 0。直接把两者相加,步级信号会被结果信号淹没。因此混合权重和奖励缩放需要联合调试,让两类信号处在可比尺度。

第三,也是最重要的——平衡探索与利用。步级奖励让每个步骤都能得到反馈,模型会倾向于重复得分高的动作,这容易造成策略过早收敛到固定套路。适当调高探索噪声或给「看起来奇怪但未尝试」的步骤一点额外加成,有助于模型找到更优路径。那么,什么领域最适合先用步级奖励?标准很明确:步骤本身要可验证,答案判据要清晰。数学、代码、定理证明这类任务天然适配,而主观性强、没有明确步骤终点的写作或创意类任务则很难落地。

落地的第一步就是把上述要点写成代码。下面用一个小而全的 Python 演示,展示步级奖励如何驱动策略更新,在动手之前,先记住教练的忠告:步骤拆对,训练飞起;拆得太碎,白费力气。

误区与未来方向

长期观察会发现,从业者常踩两个坑。第一个坑:以为步级奖励可以完全替代结果奖励,于是干脆把 λ 设为 0,只按步级打分。结果答案经常错得离谱——这就像只要求运动员每个分解动作都标准,却不要求整套动作连贯完成。事实上,步级奖励让过程正确,结果奖励保终点正确,两者必须配合。

第二个坑:把步级奖励等同于「过程监督」的全部。步级奖励只是给出分数,而过程监督(Process Supervision)还包含「指出哪一步错了、为什么错」的解释性信息。前者是打分,后者是答疑,两者不是一回事。还有一个现实约束不能忽视:步级奖励的成本同样不容小觑——每步都要验证和打分,计算量往往是结果奖励的几倍,需要在收益和算力之间做权衡。

未来方向也很明朗。随着多模态模型成熟,步级奖励正在从文本推理迁移到代码执行、工具调用、图像推理等更丰富的场景。教练的「逐帧反馈」方法论,正成为下一代推理模型训练的基础设施。每个 AI 从业者越早理解它,就越能在推理模型浪潮中占得先机。

AI 应用场景

数学推理模型训练

阶段:强化学习数据构建与奖励设计

解决的问题:传统结果奖励下,模型解数学题列式错了算不出来,只能反复随机尝试,训练迟迟无法收敛,部署时遇到没见过的题就崩溃。步级奖励让模型在训练时就能根据「列式是否正确」「计算是否越界」拿到逐步反馈,快速锁定正确推理路径。

具体案例:某教育科技公司训练智能解题模型,把解题过程拆成「读题→列式→计算→验证」四步,每个步骤用计算器/符号求解器打分。训练后模型解题准确率提升 38%,步骤出错率下降 52%,学员可看到的错误解释质量也明显提高。

代码生成智能体训练

阶段:策略优化与工具集成

解决的问题:代码生成模型只按最终测试用例是否通过给奖励,代码中间步骤冗余或潜在 bug 难以被察觉。步级奖励结合编译器检查和单元测试,让模型每一步代码块的执行结果都有反馈。

具体案例:某 AI 编程助手的开发团队对模型生成过程进行步级验证,每完成一个函数调用就检查运行时状态。经过步级奖励训练,代码一次编译通过率从 62% 提升到 84%,程序逻辑缺陷数明显下降。

科学推理与定理证明

阶段:长链推理强化学习

解决的问题:定理证明的推理链往往长达数百步,结果奖励下中间任何一步出错都无法定位,模型在巨大的搜索空间内几乎无法学习。步级奖励用证明检查器验证每一步推导是否有效,让模型逐步逼近正确证明。

具体案例:研究团队在形式化数学数据集上训练证明模型,对每个证明步骤用验证器给出「是否可判定」的步级信号。最终模型在未见过定理上成功证明数量翻倍,证明平均有效步骤比例从 41% 提升到 76%。

Python 演示

python99 行
"""演示步级奖励训练一个简单的两步推理策略。问题设定:从 state_a 出发,先选一个操作,再选一个数值。正确的路径是 op='div', num=4 (8 / 4 = 2),并且保证操作和数值都有意义。"""import randomimport math OPS = ['add', 'mul', 'div', 'sub']NUMS = [2, 4, 8]STEP_REWARD = {'div': 1.0, 'mul': 0.5, 'add': 0.0, 'sub': 0.0}  def verify_step(state, op, num):    """验证器:根据当前状态判断这一步是否有意义。"""    if state == 'state_a':        if op == 'div' and num == 4:            return 1.0        if op in ('mul', 'sub') and num in (2, 4):            return 0.5        return 0.0    return 0.0  def result_reward(state, op, num):    """结果奖励:最终答案是否正确。"""    if state == 'state_a':        value = {'div': 8 // num if num != 0 else -1,                 'mul': 8 * num,                 'add': 8 + num,                 'sub': 8 - num}[op]        return 1.0 if value == 2 else 0.0    return 0.0  class StepPolicy:    """一个可学习的策略:对 op 和 num 分别维护偏好权重。"""     def __init__(self):        self.op_w = {op: 1.0 for op in OPS}        self.num_w = {n: 1.0 for n in NUMS}        self.lr = 0.1     def sample(self):        op = self._sample_from(self.op_w)        num = self._sample_from(self.num_w)        return op, num     def _sample_from(self, weights):        items = list(weights.keys())        probs = [weights[k] for k in items]        total = sum(probs)        probs = [p / total for p in probs]        return random.choices(items, weights=probs, k=1)[0]     def update(self, op, num, reward):        """用步级/结果混合奖励更新偏好权重。"""        self.op_w[op] *= math.exp(self.lr * reward)        self.num_w[num] *= math.exp(self.lr * reward)        total_op = sum(self.op_w.values())        total_num = sum(self.num_w.values())        for k in self.op_w:            self.op_w[k] /= total_op        for k in self.num_w:            self.num_w[k] /= total_num  def run_episode(policy, use_step=True):    """跑一个回合,返回步级奖励、结果奖励和动作。"""    state = 'state_a'    op, num = policy.sample()    step_r = verify_step(state, op, num)    result_r = result_reward(state, op, num)    lambda_w = 0.5    if use_step:        total_r = lambda_w * result_r + (1 - lambda_w) * step_r    else:        total_r = result_r    return op, num, step_r, result_r, total_r  def main():    random.seed(42)    policy = StepPolicy()    print('=== 使用步级奖励训练 ===')    for epoch in range(50):        op, num, step_r, result_r, total_r = run_episode(policy, use_step=True)        policy.update(op, num, total_r)        if epoch % 10 == 0:            print('epoch %02d | op=%s num=%s | step_r=%.2f | result_r=%.2f' %                  (epoch, op, num, step_r, result_r))    top_op = max(policy.op_w, key=policy.op_w.get)    top_num = max(policy.num_w, key=policy.num_w.get)    print('收敛策略: op=%s, num=%s' % (top_op, top_num))    print('期望正确路径: op=div, num=4')  if __name__ == '__main__':    main()
目的:演示步级奖励与结果奖励混合加权后,如何通过简单策略梯度式更新引导模型收敛到正确推理路径。
  1. def verify_step(state, op, num)最简单的验证器,根据规则给每一步打分。在真实场景中,这一步换成编译器或符号求解器。
  2. def result_reward(state, op, num)结果奖励:只看最终数值是否为 2。它和步级奖励形成对照。
  3. class StepPolicy策略对象保存每个动作的偏好权重,训练就是不断调整这些权重。
  4. def _sample_from(self, weights)按权重做非均匀随机采样,保证探索与利用的平衡。
  5. def update(self, op, num, reward)权重乘上 $e^{\text{lr} \cdot \text{reward}}$ 后归一化,是简化版策略更新,核心思想和真实 RL 一致。
  6. lambda_w = 0.5混合权重 λ,控制结果奖励和步级奖励的相对占比。
  7. total_r = lambda_w * result_r + (1 - lambda_w) * step_r对应正文的混合奖励公式。
  8. if epoch % 10 == 0:每十轮打印一次,方便观察训练过程的变化。

常见误区

误区既然步级奖励这么细、这么好,那把 λ 设成 0,只按步级奖励训练就行,这样模型每一步都不会错。

正解步级奖励解决的是「过程对不对」,结果奖励保证的是「目标达没达到」。只训练分解动作却不要求整套动作连贯完成,模型可能每个局部都正确但终局一塌糊涂。比如每步计算都合法,但策略迂回半天绕到错误答案。实践中 λ 至少保留 0.3 权重给结果奖励,用结果信号给整个推理把关。

为何常见:人们容易把「反馈更细」理解成「更高级」,忽略了最终目标是让模型真正解决问题,而非仅让步骤看起来合理。

误区步级奖励和过程监督是一回事,都是给中间步骤反馈,名称不同而已。

正解两者有关联但不相同。步级奖励输出一个分数「这一步 0.8 分」,过程监督还会输出解释性信号「这一步推理链断了,因为假设了 Q 为真但条件未满足」。前者是评分员,后者是答疑教练。实现上,步级奖励可以用轻量验证器直接算,而过程监督通常需要额外训练评论模型或引入大模型评判,成本和信息量都不同。

为何常见:中文语境里「过程奖励」和「过程监督」只有一字之差,面试和实践对话中经常被混用。

误区既然要细粒度反馈,那就让模型每输出一个 token 都算一次奖励,反馈越密越容易学。

正解过密的反馈带来的问题很多。其一,计算成本飙升,每个 token 都要调用验证器或奖励模型;其二,單步得分噪声变大,许多 token 无明确对错;其三,过碎反馈会让策略陷入局部最优,模型只学「某 token 得分高的套路」而失掉整体战略。实践准则是「按子目标拆步」,每个步骤都能对应一个可验证的中间结论。

为何常见:「颗粒度越细越好」是直觉化的认知,忽略了反馈信号本身的质量和计算代价。

误区步级奖励太依赖验证器了,其他领域用不上,学了也只是了解概念。

正解没有硬性验证器的领域,可以用蒙特卡洛估算或学习奖励模型来生成步级分数。对话任务里可以训练一个过程奖励模型,对每一轮对话策略打分;Agent 任务里可以用环境反馈(是否调用了正确工具)做步级信号。步级奖励的本质是「为每个中间状态赋予可学习的反馈」,这在许多领域中都可以扩展到。

为何常见:科普内容常以数学代码为例,读者容易把示例当成边界,低估了方法论的可迁移性。

误区每一步都要调用验证器或奖励模型打分,一次训练要跑几百万步,成本太高,工业界根本用不起。

正解成本确实比纯结果奖励高,但没有想象中可怕。常用优化手段有四个:只对关键子目标打分而不是每个 token 打分;用采样高效的蒙特卡洛估计替代穷举;对已经收敛的路径逐步减少验证频率;多个样本共享同一个计算图上的验证结果。实际项目中,步级奖励节省的无效探索算力往往大于额外验证开销,整体性价比较高。

为何常见:只看到加分项,没算「减少盲目探索带来的收益」,成本对比就失真了。

面试题

Q1. 步级奖励与结果奖励的核心区别是什么?

单选题 · easy

  • A.步级奖励只用于监督学习
  • B.结果奖励是奖励模型的输出
  • C.步级奖励针对每一步推理给予反馈← 正确答案
  • D.步级奖励比结果奖励更精确但更慢

答案:C。步级奖励的核心特征是「逐步反馈」,像教练逐帧分析动作,C 正确。A 错误——步级奖励常用于强化学习;B 错误——结果奖励也可以来自奖励模型;D 描述的不是核心区别。

Q2. 为什么纯结果奖励在长链推理中效果差?

单选题 · easy

  • A.结果奖励无法训练策略网络
  • B.只有最终分数,中间错误难定位← 正确答案
  • C.结果奖励数值总是零或一
  • D.结果奖励函数不可导

答案:B。纯结果奖励只在终点给一个分数,中间步骤出错时模型无法确定问题在哪,就像运动员只知道总分 3.2 不知道哪一帧动作出错。B 正确。A、D 是错误的归因,结果奖励本身可用于训练;C 过于绝对。

Q3. 步级奖励信号通常不来源于以下哪一项?

单选题 · easy

  • A.自动验证器打分
  • B.蒙特卡洛成功率的估算
  • C.学习到的奖励模型输出
  • D.从随机初始化生成的文本← 正确答案

答案:D。步级奖励需要可靠信号来源,自动验证器、蒙特卡洛估算、学习奖励模型都是常用手段。随机初始化的文本不存在对错判据,无法直接作为打分来源,故选 D。

Q4. 蒙特卡洛估计某步骤得分的方法是?

单选题 · mid

  • A.用大模型直接生成该步骤的分数
  • B.从该步骤出发多次模拟完整推理,统计成功率← 正确答案
  • C.用人工标注该步骤的真实奖励值
  • D.对该步骤后面的所有状态做穷举搜索

答案:B。蒙特卡洛的核心是从当前步骤出发 rollout 多次,把最终成功比例当作该步得分,对应公式 $\frac{1}{N}\sum \mathbb{1}[\text{success}]$。B 正确。A 是奖励模型思路,C 是人工标注,D 是穷举而非采样估计。

Q5. 混合奖励公式中 λ 的合理取值范围与含义是?

单选题 · mid

  • A.λ=1 时步级奖励占主导
  • B.λ=0 时只看结果奖励
  • C.λ 一般取 0.3~0.7 平衡两类信号← 正确答案
  • D.λ 越大推理速度越快

答案:C。λ 控制结果奖励权重,实践常用 0.3~0.7 区间取值。λ=1 是纯结果奖励,λ=0 是纯步级奖励,故 A、B 描述相反;λ 与推理速度无关,D 错误。

Q6. 为什么步骤划分不宜过细?

单选题 · mid

  • A.步骤越多奖励信号种类越多
  • B.过细分导致噪声增大且计算代价高← 正确答案
  • C.过细步骤会导致模型过度自信
  • D.细到 token 级时无法使用验证器

答案:B。步骤过细时,单步得分难有明确对错、噪声增大,验证器调用频率也大幅上升。B 正确。A 描述的是可能的好处而非问题,C 不是分类讨论的核心,D 说法不准确。

Q7. 训练范式两个阶段分别解决什么问题?

单选题 · hard

  • A.SFT 提升推理速度,RL 提升步级精度
  • B.SFT 保证基础推理能力下限,RL 优化策略上限← 正确答案
  • C.SFT 生成数据,RL 清洗数据
  • D.SFT 处理输出格式,RL 处理输入理解

答案:B。SFT 用优质示例子集让模型先学会像样的推理路径,保证下限;RL 阶段用步级奖励精调策略,冲击上限。B 正确,其余选项未抓住两阶段范式的本质分工。

Q8. 自动验证器适合用作步级奖励来源的条件有哪些?

多选题 · mid

  • A.领域有明确的可验证判断标准← 正确答案
  • B.验证器本身不需要训练且计算轻量← 正确答案
  • C.必须使用神经网络打分
  • D.每一步中间结果可被自动检查← 正确答案

答案:ABD。自动验证器适合「中间结果可检查、判断标准明确」的领域,如代码编译、数学等式验证,且不必训练、计算轻量。C 错误——用验证器恰恰是为了避免训练神经网络打分器。

Q9. 步级奖励在实践中的主要代价与应对策略有哪些?

多选题 · hard

  • A.每次步骤都要打分导致额外计算开销← 正确答案
  • B.验证器打分噪声导致策略不稳定← 正确答案
  • C.通过只对关键子目标打分来降低成本← 正确答案
  • D.放弃结果奖励减少训练复杂度

答案:ABC。步级奖励的主要代价是每步都要调用验证器或奖励模型,打分噪声可能导致策略抖动。应对策略包括「按子目标打分」「采样估计」「减少验证频率」等。D 错误——实践是混合使用而非放弃结果奖励。

Q10. 关于步级奖励与过程监督的关系,正确的说法是?

多选题 · extreme

  • A.步级奖励输出分数,过程监督输出解释性反馈← 正确答案
  • B.过程监督包含自然语言错误定位← 正确答案
  • C.步级奖励实现成本总是更低
  • D.两者可结合用于推理模型训练← 正确答案

答案:ABD。步级奖励输出步骤得分,过程监督更进一步给出错误原因的解释性信息,且两者可结合使用,A、B、D 正确。C 过于绝对——实现成本取决于方法选择,过程监督也可用轻量规则实现,步级奖励用大模型评审时成本反而更高。