RSPO:多轮LLM智能体的奖励交换策略优化

笔记日期: 2026-07-07 笔记作者: Zhongzhu Zhou 论文标题: RSPO: Reward-Swap Policy Optimization for Multi-Turn LLM Agents 作者: Qiang Liu, Taian Guo, Ruizhi Qiao, Xing Sun arXiv: https://arxiv.org/abs/2607.04713 状态/会议: 预印本,2026年7月,腾讯优图实验室

一句话总结

RSPO 解决的是多轮 LLM 智能体任务里一个非常实际的矛盾:稀疏的结果奖励让策略难以探索,而稠密的过程奖励又会诱导奖励黑客(reward hacking)。它的解法是”奖励交换”——用稠密奖励训练一个探索智能体去收集多样化轨迹,然后把这些轨迹上的奖励标签换回结果奖励,再喂给真正的目标策略训练。这样就做到了:既享受稠密奖励带来的探索多样性,又保持结果奖励的真实对齐。在 ALFWorld 和 WebShop 两个多轮任务基准上,RSPO 在 1.5B 和 7B 两种规模的 Qwen2.5 模型上均显著超越了 GRPO 和 PPO 基线。

前置知识

读这篇论文需要了解强化学习的一些核心概念,以及最近 LLM RL 训练里广泛使用的 GRPO 算法。我在这里尽量写得让只懂基础 Python 和机器学习的同学也能跟上,不需要有深厚的 RL 理论背景。

1. 马尔可夫决策过程(MDP)

强化学习的标准数学框架叫做马尔可夫决策过程(Markov Decision Process,MDP)。把它用在多轮 LLM 智能体任务上,映射关系如下:

  • 状态 sts_t 智能体当前”看到的世界”。在文字游戏(如 ALFWorld)里,状态就是当前房间的文字描述;在网购模拟(如 WebShop)里,状态就是当前网页的文字内容。
  • 动作 ata_t 智能体在当前状态下执行的操作,比如”去厨房”、“点击购买”、“搜索 USB 数据线”。
  • 策略 πθ(atst)\pi_\theta(a_t | s_t) 一个参数化的模型(就是我们的 LLM),给出在状态 sts_t 下执行动作 ata_t 的概率。
  • 转移 P(st+1st,at)P(s_{t+1} | s_t, a_t) 执行动作后环境变到什么新状态(由外部环境模拟器决定,不是我们训练的部分)。
  • 奖励 rtr_t 执行动作后获得的反馈信号。

一条完整的交互序列叫做轨迹(trajectory) τ=(s0,a0,s1,a1,,sT,aT)\tau = (s_0, a_0, s_1, a_1, \ldots, s_T, a_T),它的总回报是各步奖励之和(通常带折扣系数 γ\gamma)。RL 的目标就是找一个策略 πθ\pi_\theta,最大化期望总回报:

J(πθ)=Eτπθ ⁣[t=0Tγtrt]J(\pi_\theta) = \mathbb{E}_{\tau \sim \pi_\theta}\!\left[\sum_{t=0}^{T} \gamma^t r_t\right]

2. REINFORCE 与策略梯度

最基础的策略梯度方法 REINFORCE 给出了一个直觉上非常自然的更新规则:如果某条轨迹的回报高,就增大这条轨迹上每个动作的概率;如果回报低,就减小。数学上:

θJ(πθ)=Eτπθ ⁣[t=0Tθlogπθ(atst)R(τ)]\nabla_\theta J(\pi_\theta) = \mathbb{E}_{\tau \sim \pi_\theta}\!\left[\sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t | s_t) \cdot R(\tau)\right]

这里 R(τ)R(\tau) 是整条轨迹的总回报,θlogπθ(atst)\nabla_\theta \log \pi_\theta(a_t | s_t) 是”如何调整参数才能让这个动作更可能发生”的方向。

但 REINFORCE 有个大问题:方差极高。因为不同轨迹的回报差异可能非常大,导致梯度估计非常嘈杂,训练不稳定。

3. 优势函数(Advantage Function)

为了降低方差,实践中用**优势函数(Advantage Function)**代替原始回报:

At=Q(st,at)V(st)A_t = Q(s_t, a_t) - V(s_t)

其中 Q(st,at)Q(s_t, a_t) 是在状态 sts_t 执行动作 ata_t 后的期望总回报,V(st)V(s_t) 是在状态 sts_t 的期望总回报(不管执行什么动作的平均)。优势函数衡量的是”这个动作比平均水平好多少”——正值表示比平均好,负值表示比平均差。

4. PPO(近端策略优化)

PPO(Proximal Policy Optimization)是目前最流行的 RL 算法之一,也是训练 LLM 最常用的基础框架。它的核心是用重要性采样把旧策略 πθold\pi_{\theta_\text{old}} 收集的数据用于更新新策略 πθ\pi_\theta,并通过截断(clip)防止更新步子太大:

JPPO(θ)=E ⁣[min ⁣(rt(θ)At,  clip(rt(θ),1ϵ,1+ϵ)At)]\mathcal{J}_\text{PPO}(\theta) = \mathbb{E}\!\left[\min\!\left(r_t(\theta) \cdot A_t,\; \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \cdot A_t\right)\right]

其中重要性采样比 rt(θ)=πθ(atst)πθold(atst)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)},截断区间 [1ϵ,1+ϵ][1-\epsilon, 1+\epsilon] 保证新旧策略不会差太远。通常还会加一个 KL 散度惩罚项 βDKL(πθπref)\beta \mathbb{D}_{KL}(\pi_\theta \| \pi_\text{ref}) 防止策略偏离参考模型太远。

KL 散度(Kullback-Leibler Divergence)是衡量两个概率分布之间差异的指标,定义为:

DKL(PQ)=xP(x)logP(x)Q(x)\mathbb{D}_{KL}(P \| Q) = \sum_x P(x) \log\frac{P(x)}{Q(x)}

在 LLM 训练里,KL 惩罚项 βDKL(πθπref)\beta \mathbb{D}_{KL}(\pi_\theta \| \pi_\text{ref}) 惩罚当前策略 πθ\pi_\theta 偏离参考策略 πref\pi_\text{ref}(通常是训练前的基础模型)太远,防止模型在优化奖励的过程中”忘记”原本的语言能力或生成奇怪的文本格式。β\beta 是这个惩罚项的权重,较大的 β\beta 会让策略更保守,较小的 β\beta 允许更大的优化幅度。

PPO 的主要局限在于它需要一个单独训练的 value network(价值网络)来估计 V(st)V(s_t),计算成本高,在大型 LLM 上尤其昂贵。对于一个 7B 的语言模型,通常需要同时维护一个同等规模(或稍小)的 critic 网络,这相当于把显存和计算需求翻了近一番。

5. GRPO(组相对策略优化)

GRPO(Group Relative Policy Optimization)是 2024 年为 LLM 训练专门设计的一种简化 PPO 的方法,在 DeepSeek-R1 等模型里得到了广泛应用。它的核心思想是:不需要训练单独的价值网络,而是通过组内比较来估计优势函数。

具体做法是:对同一个任务 xx,用当前策略采样 NN 条不同的轨迹 {τ1,τ2,,τN}\{\tau_1, \tau_2, \ldots, \tau_N\},然后用这一组轨迹的回报均值和标准差来归一化,得到每条轨迹的优势:

A(τi)=R(τi)mean({R(τj)}j=1N)std({R(τj)}j=1N)(GRPO-A)A(\tau_i) = \frac{R(\tau_i) - \text{mean}(\{R(\tau_j)\}_{j=1}^N)}{\text{std}(\{R(\tau_j)\}_{j=1}^N)} \tag{GRPO-A}

这个归一化的效果是:比平均回报高的轨迹得到正优势(被鼓励),比平均低的得到负优势(被抑制)。完整的 GRPO 目标函数是:

JGRPO=E ⁣[1NTi=1Nt=1Tmin ⁣(ri,t(θ)Ai,t,clip(ri,t(θ),1ϵ,1+ϵ)Ai,t)]βDKL(πθπref)(GRPO)\mathcal{J}_{\text{GRPO}} = \mathbb{E}\!\left[\frac{1}{NT}\sum_{i=1}^N\sum_{t=1}^T \min\!\left(r_{i,t}(\theta)A_{i,t},\, \text{clip}(r_{i,t}(\theta),\,1-\epsilon,\,1+\epsilon)A_{i,t}\right)\right] - \beta\mathbb{D}_{KL}(\pi_\theta\|\pi_\text{ref}) \tag{GRPO}

其中 ri,t(θ)=πθ(atix,sti)πθold(atix,sti)r_{i,t}(\theta) = \frac{\pi_\theta(a_t^i|x,s_t^i)}{\pi_{\theta_\text{old}}(a_t^i|x,s_t^i)} 是每个时间步的重要性采样比,TT 是轨迹长度,NN 是组内轨迹数量。

GRPO 的优点是实现简单、内存高效,不需要单独的 critic 网络,非常适合 LLM 训练。

GRPO 的一个数值示例

假设对同一个 ALFWorld 任务采样了 N=5N=5 条轨迹,结果奖励分别为:

R={1.0,  0.0,  1.0,  0.0,  0.0}R = \{1.0,\; 0.0,\; 1.0,\; 0.0,\; 0.0\}

则均值 =0.4= 0.4,标准差 =(0.6)2+(0.4)2+(0.6)2+(0.4)2+(0.4)250.49= \sqrt{\frac{(0.6)^2+(0.4)^2+(0.6)^2+(0.4)^2+(0.4)^2}{5}} \approx 0.49

归一化后的优势:

A={0.60.49,  0.40.49,  0.60.49,  0.40.49,  0.40.49}{1.22,  0.82,  1.22,  0.82,  0.82}A = \left\{\frac{0.6}{0.49},\; \frac{-0.4}{0.49},\; \frac{0.6}{0.49},\; \frac{-0.4}{0.49},\; \frac{-0.4}{0.49}\right\} \approx \{1.22,\; -0.82,\; 1.22,\; -0.82,\; -0.82\}

两条成功轨迹的每个时间步都会得到正优势 +1.22+1.22,三条失败轨迹的每步得到负优势 0.82-0.82。这告诉策略:沿着成功轨迹的动作序列,应该提高概率;沿着失败轨迹的动作序列,应该降低概率。

现在考虑极端情形:如果 5 条轨迹全部失败(R={0,0,0,0,0}R = \{0,0,0,0,0\}),均值 =0= 0,标准差 =0= 0,优势函数未定义,梯度消失,策略无法从这次采样中学到任何东西。这正是多轮任务里稀疏奖励最棘手的问题——当任务太难导致成功率极低时,GRPO 会完全卡死。

6. 稀疏奖励 vs. 稠密奖励

这是理解 RSPO 最关键的背景知识之一。

结果奖励(Outcome Reward,稀疏奖励): 只在整条轨迹结束时给出奖励。比如”任务完成得 1 分,失败得 0 分”。优点是奖励定义明确、不容易被”钻空子”;缺点是信号极稀疏,模型很难知道是哪一步做错了。想象你在学走迷宫,但只有走出来才告诉你成功了,走进死路完全没有提示——这就是稀疏奖励的处境。

过程奖励(Process Reward,稠密奖励): 每一步都给出奖励信号。比如”走向目标方向得 +0.1,走偏得 -0.1”。优点是信号丰富、收敛快;缺点是过程奖励的定义很难完全覆盖真实目标,模型可能学会”用奇怪的方法刷过程分数”而不真正完成任务,这就是奖励黑客(reward hacking)

在多轮 LLM 智能体任务里,稀疏的结果奖励还有一个额外问题:一条完整轨迹可能有十几到几十步,如果大部分轨迹都失败了,就意味着大部分轨迹的奖励都是 0,GRPO 里的 NN 条轨迹可能全部同分,优势函数退化为零,梯度消失,什么都学不到。

7. 在策略(On-Policy)与离策略(Off-Policy)学习

这是理解 RSPO 离策略项的关键背景。

在策略(On-Policy): 用于训练的数据,必须来自当前正在被更新的策略本身的采样。标准 GRPO 和 REINFORCE 都是在策略方法。优点是数据分布与当前策略完全一致,梯度估计无偏;缺点是每次参数更新后,旧数据就作废了,需要重新采样,数据利用率低。

离策略(Off-Policy): 训练数据来自另一个策略(历史策略、专家策略,或其他模型)的采样。数据利用率高,可以多次复用。但直接用来训练会引入偏差:数据的分布和当前策略不匹配,梯度估计不再无偏,需要通过**重要性采样(Importance Sampling)**来修正这种偏差。

重要性采样的核心公式是:如果我们用策略 μ\mu 采集了数据,但想估计策略 π\pi 下的期望,只需要在每个样本上乘一个重要性权重(Importance Weight)

Eτπ[f(τ)]=Eτμ ⁣[π(τ)μ(τ)f(τ)]\mathbb{E}_{\tau \sim \pi}[f(\tau)] = \mathbb{E}_{\tau \sim \mu}\!\left[\frac{\pi(\tau)}{\mu(\tau)} f(\tau)\right]

在 LLM 的时间步级别,这个比值变成 πθ(atst)πB(atst)\frac{\pi_\theta(a_t|s_t)}{\pi_B(a_t|s_t)},即当前策略和采样策略在同一状态下选择同一动作的概率之比。

为什么不直接把离策略数据当在策略用? 这是新手常见的误区。如果 πB\pi_Bπθ\pi_\theta 差距很大,πθπB\frac{\pi_\theta}{\pi_B} 的值可能非常大(某些动作在 πθ\pi_\theta 下概率很高,但 πB\pi_B 几乎不选择),导致某些样本的权重爆炸,梯度方差极大,训练崩溃。PPO 的截断机制正是为了限制这种权重爆炸。

RSPO 的广义截断进一步修正了截断的中心点,使得截断不仅限制更新步长,还能正确反映从 πB\pi_Bπθ\pi_\theta 的策略距离,在离策略程度更高的情况下仍然提供稳定的梯度估计。

8. 回放缓冲区(Replay Buffer)的作用

回放缓冲区(Replay Buffer)来自深度 Q 网络(DQN)等值函数方法,原本不常在策略梯度方法里使用,因为策略梯度天然是在策略的。RSPO 能够在策略梯度框架下使用缓冲区,靠的就是上面提到的离策略修正——广义截断机制让来自不同策略的历史轨迹能够被安全地复用。

缓冲区里存储的是轨迹(而不仅仅是单步经验),这对多轮任务尤其重要:多轮任务里一条轨迹的各步之间有强烈的时序依赖,如果把轨迹拆开存储单步数据,就破坏了这种依赖关系。RSPO 以轨迹为单位存储和采样,保留了完整的上下文。

论文做了什么

这篇论文针对多轮 LLM 智能体任务提出了 RSPO(Reward-Swap Policy Optimization),一个能够同时克服稀疏结果奖励的探索困难和稠密过程奖励的奖励黑客问题的训练框架。

问题设置: 任务是在 ALFWorld(家务文字游戏)和 WebShop(模拟购物网站)这两个多轮交互环境中训练 LLM 智能体。每个任务需要智能体与环境进行多轮对话式交互,每轮做出行动决策,最终完成目标。

核心创新——奖励交换机制:

  1. 用稠密过程奖励训练一个探索智能体(Agent B),让它借助丰富的中间信号发现更多样化的轨迹路径;
  2. 把 Agent B 探索到的多样化轨迹存入回放缓冲区,但将轨迹上的奖励标签换回结果奖励(即把稠密奖励标签替换掉);
  3. 用这些带有结果奖励标签的多样化轨迹,再结合当前策略的在线轨迹,混合训练目标策略(Agent A)
  4. 周期性循环上述过程。

这个”收集轨迹用稠密奖励,训练策略用结果奖励”的设计,就是”奖励交换”名字的由来。

技术贡献:

  • 提出了奖励交换的两阶段训练框架;
  • 设计了适用于离策略数据的**广义截断(generalized clipping)**机制,修正了标准 PPO/GRPO clip 在离策略数据上的偏差;
  • 设计了带优先级的采样策略,从缓冲区优先选取高回报、高多样性的轨迹;
  • 用 Llama-3.2-3B-Instruct 构建了一个轻量级的稠密过程奖励模型。

与相关工作的区别:

我在读这篇论文时,自然地把它和几个相关方向做了比较:

  • 与 ReAct、Reflexion 的区别: ReAct 和 Reflexion 是提示工程层面的改进(思维链+反思),不需要训练;RSPO 是训练层面的改进,两者可以互补,不冲突。
  • 与 process reward model(PRM)研究的关系: 本文的稠密奖励模型和 PRM 思想相同,但 PRM 通常被用于推理时的搜索引导(如 beam search 打分),而 RSPO 把它用在训练时的探索驱动上——这是一个有趣的使用方式转变。
  • 与 Hindsight Experience Replay(HER)的关联: HER 是经典 RL 里的一种离策略技巧,把失败轨迹重新标记为”达到了意外目标”来提供学习信号。RSPO 的奖励交换机制在精神上与 HER 有相似之处,但方向相反:HER 是把失败轨迹重标记为成功,RSPO 是把用稠密奖励收集的轨迹重标记为结果奖励(成功的维持成功,失败的维持失败)。
  • 与 curiosity-driven exploration 的关联: 好奇心驱动的探索(如 ICM、RND)也是用内在奖励驱动探索,但这类方法直接用内在奖励梯度更新同一个策略,而 RSPO 把”内在奖励驱动的策略”和”最终目标策略”分开,避免了奖励黑客。

图1:RSPO整体架构图

graph TD
    A[基础策略 π_base] --> B

    subgraph RSPO循环
        B[阶段一\n稠密奖励训练\nk步] --> C[探索智能体 Agent B]
        C --> D[收集多样化轨迹]
        D --> E[奖励交换\n稠密奖励 → 结果奖励]
        E --> F[回放缓冲区 D]
        F --> G[阶段二\n混合训练\nk步]
        G --> H[更新后策略 Agent A]
        H --> B
    end

    H --> I[最终优化策略]

图1: RSPO 的整体循环架构。每个大循环包含两个阶段:阶段一用稠密奖励训练探索智能体 Agent B,阶段二将 Agent B 收集并经奖励交换的轨迹混入缓冲区,结合在线轨迹用结果奖励训练目标策略 Agent A。

深入理解多轮任务的 RL 挑战

在我读到这篇论文之前,我曾以为把 GRPO 直接用在多轮任务上应该没什么大问题——毕竟 GRPO 在数学推理任务上已经很成功了。读完之后才意识到,多轮任务和单轮推理任务在 RL 挑战的根本性质上有很大区别。

轨迹长度带来的稀疏性问题

单轮数学推理任务里,模型给出一个答案,立刻知道对不对,奖励信号虽然稀疏但”等待时间”不长。但多轮任务里,完成一个”把杯子放进微波炉加热后取出再放到桌子上”的指令,可能需要 15-20 步交互,期间没有任何中间反馈。

我计算了一下:如果每步成功率是 90%(已经相当高了),一条 20 步轨迹的成功概率就只有 0.92012%0.9^{20} \approx 12\%。也就是说,GRPO 采样的 NN 条轨迹里,大概只有 12% 会成功,其余都是失败(奖励 0)。当失败的轨迹占大多数时,GRPO 的组内归一化就变成了在一堆 0 分里找差异,梯度信号极其微弱。

探索困境与局部最优

多轮任务还有一个独特挑战:状态空间随步数指数级增长,但策略一旦找到某条”还不错”的路径,就会反复走这条路,导致探索不足

论文用一个具体指标来量化这个问题:统计训练过程中相同状态被访问的次数。我在消融实验部分会详细分析这个数据,但结论是:GRPO 训练越久,访问同样状态的次数越多(从 50 步到 145 步:1011→1167),说明策略逐渐陷入了局部最优,反复走相同的路径。RSPO 则相反,访问同样状态的次数随训练越来越少(917→623),说明探索范围在持续扩大。

为什么不直接用稠密奖励训练

一个自然的疑问是:既然稠密奖励能够加速收敛,为什么不直接用它训练最终策略?论文里有一个图(本文图3)非常有说服力地展示了答案:

在纯稠密奖励训练条件下,模型在训练初期性能快速提升,看起来很好。但到了约 120 步附近,任务成功率开始急剧下降,而稠密奖励指标却继续上升。这就是经典的奖励黑客现象——模型学会了如何让稠密奖励模型打出高分,但这些行为并不对应真正的任务完成。

稠密奖励模型终究是人工设计的近似,它与真实目标之间永远存在一条”缝隙”。足够强力的策略优化算法会找到并利用这条缝隙。

与单轮任务的本质差异

数学推理任务(如 GSM8K、MATH)之所以不怎么面临这个探索困难,有两个重要原因:

第一,单轮任务的轨迹短。 生成一个数学答案通常只需要几十到几百个 token,即使大部分尝试失败,只要有少数成功样本,GRPO 就能从中学到有用的梯度信号。多轮任务中每一步都是一个决策点,错误会级联放大。

第二,数学任务的解的多样性本来就高。 对于一道数学题,不同的推理路径可能都能得到正确答案,GRPO 组内自然会有多样的正确轨迹。而家务任务里,成功路径可能只有少数几条(拿杯子 → 开微波炉 → 加热 → 取出),一旦模型找到一条,就会反复走这条,不再探索其他变体。

这种差异让我意识到,“GRPO 在推理任务上成功”不能直接推广到”GRPO 在智能体任务上同样有效”——任务结构的差异会导致算法性质发生质变。

RSPO 的设计逻辑

在我看来,RSPO 的设计逻辑非常清晰:

  1. 稠密奖励的价值不在于”用它训练目标策略”,而在于”用它驱动探索”。探索的目的是收集多样化的轨迹,而不是让模型学会钻稠密奖励的空子。
  2. 结果奖励的价值在于”正确对齐”,但它信号稀疏,需要更多样化的轨迹来提供有效的学习信号。
  3. 把两者结合:稠密奖励负责探索,结果奖励负责对齐,就能同时获得两者的好处。

这让我联想到强化学习里的”探索-利用权衡(exploration-exploitation tradeoff)“。传统 RL 里常见的做法是 ε-greedy(以概率 ε 随机探索,以概率 1-ε 选择最优动作)或 entropy bonus(在目标函数里加入熵正则鼓励探索)。RSPO 的做法更优雅:它不是在单一策略上做探索-利用权衡,而是直接把探索和利用分配给两个不同的策略,各司其职,互不干扰。

RSPO 方法详解

现在来深入看 RSPO 的技术细节。这是全文最核心的部分。

总体目标函数

RSPO 的训练目标是将在策略(on-policy)梯度和离策略(off-policy)梯度加权混合:

JTotal(πθ)=(1α)JOn(πθ)+αJOff(πθ)(1)\mathcal{J}_\text{Total}(\pi_\theta) = (1-\alpha)\mathcal{J}_\text{On}(\pi_\theta) + \alpha\mathcal{J}_\text{Off}(\pi_\theta) \tag{1}

其中 α(0,1)\alpha \in (0,1) 是离策略数据的混合比例(论文实验中取 α=1/8\alpha = 1/8)。

  • JOn\mathcal{J}_\text{On}:在策略项,用当前策略 πθ\pi_\theta 实时采样的轨迹,配合结果奖励计算;
  • JOff\mathcal{J}_\text{Off}:离策略项,用缓冲区里由探索智能体 πB\pi_B 收集、经奖励交换后的轨迹计算。

在策略项

在策略项就是标准 GRPO,只不过只用结果奖励:

JOn=E{τi}πθold ⁣[1NTi=1Nt=1Tmin ⁣(ri,tonAi,ton,  clip(ri,ton,1ϵ,1+ϵ)Ai,ton)]βDKL(πθπref)(3)\mathcal{J}_\text{On} = \mathbb{E}_{\{\tau_i\}\sim\pi_{\theta_\text{old}}}\!\left[\frac{1}{NT}\sum_{i=1}^N\sum_{t=1}^T \min\!\left(r^{\text{on}}_{i,t} A^{\text{on}}_{i,t},\; \text{clip}(r^{\text{on}}_{i,t},\,1-\epsilon,\,1+\epsilon)\, A^{\text{on}}_{i,t}\right)\right] - \beta\mathbb{D}_{KL}(\pi_\theta\|\pi_\text{ref}) \tag{3}

其中 ri,ton=πθ(atix,sti)πθold(atix,sti)r^{\text{on}}_{i,t} = \frac{\pi_\theta(a_t^i|x,s_t^i)}{\pi_{\theta_\text{old}}(a_t^i|x,s_t^i)} 是标准重要性采样比。优势 Ai,tonA^{\text{on}}_{i,t} 用 GRPO 组内归一化公式(GRPO-A)计算。

离策略项与广义截断

离策略项是 RSPO 最有技术含量的部分。缓冲区里的轨迹是由探索智能体 πB\pi_B 生成的,而不是当前策略 πθ\pi_\theta,所以数据分布差异更大。如果直接用标准 PPO 的截断(中心在 1),就相当于假设”当前策略和采样策略差不多”,这在离策略情形下是错误的。

RSPO 提出了广义截断(generalized clipping),把截断中心从 1 移动到 πθold(as)πB(as)\frac{\pi_{\theta_\text{old}}(a|s)}{\pi_B(a|s)},反映出新策略 πθ\pi_\theta 相对于缓冲区策略 πB\pi_B 的实际比值关系:

JOff=Ex,τD ⁣[1NTi,tmin ⁣(ri,toffAi,toff,  clip ⁣(ri,toff,  πθold(atisti)πB(atisti)ϵ,  πθold(atisti)πB(atisti)+ϵ)Ai,toff]]βDKL(4)\mathcal{J}_\text{Off} = \mathbb{E}_{x,\tau\sim\mathcal{D}}\!\left[\frac{1}{NT}\sum_{i,t} \min\!\left(r^{\text{off}}_{i,t} A^{\text{off}}_{i,t},\; \text{clip}\!\left(r^{\text{off}}_{i,t},\; \frac{\pi_{\theta_\text{old}}(a_t^i|s_t^i)}{\pi_B(a_t^i|s_t^i)}-\epsilon,\; \frac{\pi_{\theta_\text{old}}(a_t^i|s_t^i)}{\pi_B(a_t^i|s_t^i)}+\epsilon\right) A^{\text{off}}_{i,t}\right]\right] - \beta\mathbb{D}_{KL} \tag{4}

其中 ri,toff=πθ(atix,sti)πB(atix,sti)r^{\text{off}}_{i,t} = \frac{\pi_\theta(a_t^i|x,s_t^i)}{\pi_B(a_t^i|x,s_t^i)} 是相对于缓冲区策略 πB\pi_B 的重要性采样比。

这个设计的直觉是:对于离策略数据,“没有更新”对应的比值是 πθoldπB\frac{\pi_{\theta_\text{old}}}{\pi_B},而不是 1(两者相等只有当 πθold=πB\pi_{\theta_\text{old}} = \pi_B 时才成立,而这在离策略情形下通常不成立)。标准截断把中心固定在 1,对于离策略数据来说相当于在错误的位置做了截断,会错误地抑制或放大更新。

图2:两阶段训练流程图

graph LR
    subgraph 阶段一-稠密奖励探索
        A1[初始策略 π_θ] --> B1[采样任务 x]
        B1 --> C1[生成轨迹\nτ_1...τ_N]
        C1 --> D1[稠密奖励模型\n打分每步 r̂_t]
        D1 --> E1[策略梯度更新\n重复k步]
        E1 --> F1[探索智能体 π_dense]
    end

    subgraph 奖励交换
        F1 --> G[π_dense 生成新轨迹]
        G --> H[替换奖励标签\n稠密 → 结果奖励]
        H --> I[存入缓冲区 D]
    end

    subgraph 阶段二-结果奖励训练
        I --> J[采样离策略批次\nD_off 优先级采样]
        K[在线批次 D_on\n当前策略采样] --> L[混合批次 D_mix]
        J --> L
        L --> M[广义截断目标函数\n结果奖励更新k步]
        M --> N[更新策略 π_θ]
    end

图2: RSPO 两阶段训练详细流程。阶段一借助稠密奖励驱动探索,阶段二通过混合在策略和离策略数据、使用结果奖励保持对齐。

稠密过程奖励模型

探索智能体(Agent B)的训练依赖一个稠密过程奖励模型(Dense Process Reward Model,DPRM),用来给每一步动作打分。这个模型以 Llama-3.2-3B-Instruct 为主干,在最后一层隐藏层上接一个 MLP + tanh 输出:

r^t=tanh(MLP(ht)),ht=fπpre(st,at)(5)\hat{r}_t = \tanh(\text{MLP}(h_t)), \quad h_t = f_{\pi_\text{pre}}(s_t, a_t) \tag{5}

其中 hth_t 是 Llama-3.2-3B 处理 (st,at)(s_t, a_t) 后最后一层的隐藏状态,MLP 是一个两层全连接网络,tanh\tanh 把输出约束到 (1,1)(-1, 1) 之间。

整条轨迹的累积稠密奖励是各步奖励之和:

R^=t=1Tr^t(6)\hat{R} = \sum_{t=1}^T \hat{r}_t \tag{6}

稠密奖励模型的训练损失是均方误差,让累积稠密奖励拟合真实结果奖励:

LP=1Ni=1N(R^iRi)2(7)\mathcal{L}_P = \frac{1}{N}\sum_{i=1}^N\left(\hat{R}_i - R_i\right)^2 \tag{7}

这里 RiR_i 是第 ii 条训练轨迹的真实结果奖励,R^i\hat{R}_i 是模型预测的累积稠密奖励。注意训练目标是让轨迹级别的预测与结果奖励一致,但预测是分步给出的——这给了模型为每一步分配奖励的自由度,同时约束了总体的一致性。

图4:稠密过程奖励模型架构

graph LR
    A[状态 s_t] --> C[预训练LLM\nLlama-3.2-3B-Instruct]
    B[动作 a_t] --> C
    C --> D[最后隐藏层\nh_t]
    D --> E[MLP\n全连接层]
    E --> F[tanh激活\n输出约束在-1到+1]
    F --> G[步骤奖励 r̂_t]
    G --> H{所有步骤求和}
    H --> I[轨迹奖励 R̂\n与结果奖励对比]
    I --> J[MSE损失训练]

图4: 稠密过程奖励模型的网络结构。输入是当前状态和动作,通过预训练 LLM 提取特征,接 MLP + tanh 输出每步奖励,再求和与结果奖励对齐。

缓冲区采样策略

从缓冲区里选取离策略数据时,RSPO 采用了优先级采样策略,优先级由高到低:

  1. 奖励优先(Reward-first): 优先选取结果奖励高的轨迹(即成功的轨迹);
  2. 方差优先(Variance-first): 如果成功率相似,优先选取状态多样性高(同一状态访问次数少)的轨迹;
  3. 随机(Random): 其余情况随机采样。

这个设计保证了缓冲区贡献的数据不仅多样,而且质量可控。

图5:标准截断与广义截断对比

graph TD
    A[截断机制对比] --> B[标准PPO截断\nPPO-Clip]
    A --> C[RSPO广义截断\nGeneralized Clip]

    B --> B1[截断区间中心 = 1]
    B --> B2[假设: π_θ_old 近似等于 π_B]
    B --> B3[在策略数据: 正确]
    B --> B4[离策略数据: 截断中心偏移\n错误抑制有效更新]

    C --> C1[截断区间中心 = π_θ_old 除以 π_B]
    C --> C2[考虑策略之间的实际差距]
    C --> C3[在策略数据: 退化为标准截断]
    C --> C4[离策略数据: 截断位置准确\n正确衡量更新幅度]

图5: 标准 PPO 截断与 RSPO 广义截断的比较。广义截断通过将截断中心从 1 修正为 πθold/πB\pi_{\theta_\text{old}}/\pi_B,正确处理了离策略数据中新旧策略差异带来的偏差。

完整算法流程

输入:基础策略 π_base,策略梯度方法 P,稠密奖励模型 R_dense,
      任务分布 p(X),组大小 N,批大小 B,循环步数 k,离策略比例 α

初始化:π_θ = π_base,缓冲区 D = ∅

for 每个 RSPO 大循环 do

  ─── 阶段一:稠密奖励探索(训练 Agent B)───
  令 π_dense = π_θ(从当前策略出发)
  for step = 1, ..., k do
    采样任务 x ~ p(X)
    用 π_dense 生成 (1-α)B 条轨迹
    用稠密奖励模型 R_dense 给每步打分
    用策略梯度方法 P 和稠密奖励更新 π_dense
  end for

  用最终的 π_dense 收集轨迹,替换为结果奖励,加入缓冲区 D

  ─── 阶段二:结果奖励训练(训练 Agent A)───
  for step = 1, ..., k do
    采样任务 x ~ p(X)
    用当前策略 π_θ 在线生成 (1-α)BN 条轨迹 → D_on
    从缓冲区 D 中按优先级采样 αBN 条 → D_off
    构建混合批次 D_mix = D_on ∪ D_off
    用结果奖励和目标函数(式1)更新 π_θ
  end for

  清空缓冲区 D ← ∅

end for

return 最终策略 π_θ

这个流程有几个地方值得特别注意。首先,每个大循环结束后缓冲区会清空——这意味着缓冲区里的数据来自最近一轮的 πdense\pi_\text{dense},而不是历史积累,避免了陈旧数据污染训练。其次,阶段二的 kk 步更新里,每步都会重新采样在线数据,只有离策略数据是从缓冲区里固定取的——这保证了训练不会过度依赖离策略数据。第三,α=1/8\alpha = 1/8 意味着每个批次里只有约 12.5% 的数据来自缓冲区,主体仍然是在线数据,这一比例经过消融实验验证是最优的。

具体案例:一个 ALFWorld 任务的训练过程

为了让算法流程更具体,我试着用 ALFWorld 里一个典型任务来说明 RSPO 各步骤的作用。

任务描述: “把一个鸡蛋加热后放到桌子上”

初始策略 πθ\pi_\theta 的行为(第1轮,训练初期): 假设当前策略已经学会了”找到微波炉→打开微波炉”这条子序列,但经常在”找到鸡蛋”这步卡住——它倾向于反复去厨房台面搜索,而忘了去冰箱里找。这条路径失败率很高,结果奖励几乎全是 0,GRPO 的梯度信号接近消失。

阶段一:稠密奖励训练探索智能体 πdense\pi_\text{dense}k=3k=3 步): 稠密奖励模型在”向冰箱方向移动”这类子行为上会给出正向分数(因为它与最终成功有相关性)。经过 3 步更新,πdense\pi_\text{dense} 学会了”去冰箱找鸡蛋”这一子策略,开始生成更多样的轨迹——有的去冰箱找,有的去台面找,有的先检查桌子再去冰箱,等等。

奖励交换:πdense\pi_\text{dense} 的轨迹中,有几条”去冰箱找鸡蛋→成功加热→放桌上”的完整成功轨迹,结果奖励 = 1.0;也有一些”去台面找鸡蛋→找到了→成功”的路径,结果奖励 = 1.0;还有更多中途失败的轨迹,结果奖励 = 0。把所有轨迹的奖励换成结果奖励后存入缓冲区。

阶段二:混合训练目标策略 πθ\pi_\thetak=3k=3 步): 现在 πθ\pi_\theta 的训练批次里,有 87.5% 是自己当前策略的在线轨迹(大多失败),有 12.5% 是来自缓冲区的多样化轨迹(其中包含几条来自”冰箱路径”的成功轨迹)。缓冲区里的成功轨迹带来了新的正向梯度信号:GRPO 的组内归一化现在能看到”去冰箱”路径的优势值为正,“反复去台面”路径的优势值为负。广义截断保证了从 πdense\pi_\text{dense}πθ\pi_\theta 的分布差距被正确处理,不会因为策略差异导致错误截断。

经过这一轮,πθ\pi_\theta 逐渐学会了也可以去冰箱找鸡蛋,整体成功率提升。下一个大循环里,πdense\pi_\text{dense} 又从更新后的 πθ\pi_\theta 出发,继续探索更难的子任务(比如”找锅” vs “找平底锅”的区分),如此循环。

这个例子说明了 RSPO 的优雅之处:即使当前策略从未独立发现某条成功路径,只要探索智能体找到了它,目标策略就能从中学习——就像一个团队里有一个专门负责”试错探索”的成员和一个专门负责”总结学习”的成员,分工明确,效率更高。

GRPO 在全失败轨迹时的退化分析

这里有一个值得仔细讨论的边界情况,在原论文里只提到了但没有充分展开。

考虑 GRPO 在训练初期的极端情形:对于某个困难任务,N=8N=8 条采样轨迹全部失败,结果奖励都是 0。

代入式(GRPO-A):

A(τi)=0mean({0,0,,0})std({0,0,,0})=00A(\tau_i) = \frac{0 - \text{mean}(\{0,0,\ldots,0\})}{\text{std}(\{0,0,\ldots,0\})} = \frac{0}{0}

标准差为 0,优势函数未定义。实践中通常加一个小的 epsilon 防止除零,但即便如此,所有轨迹的优势都是 0,梯度完全消失,参数没有任何更新。这条困难任务就永远卡住了。

在 RSPO 中,只要缓冲区里有来自其他任务或之前循环的成功轨迹(哪怕不完全对应当前任务),就能通过离策略项为当前训练步提供非零梯度。更重要的是,稠密奖励训练的探索智能体能为这条困难任务生成”到达中间状态”的轨迹,这些轨迹虽然结果奖励为 0,但增加了组内的多样性,使得下一轮 GRPO 更新不再是”全 0 组”。

这个分析让我更深刻地理解了 RSPO 的价值:它不只是”让策略走更多路径”,更重要的是打破了 GRPO 在困难任务上完全卡死的情形

实验设计与结果分析

实验环境

ALFWorld 是一个基于 TextWorld 的家务模拟环境,包含 6 种任务类型(如拿取、加热、冷却、清洁等),智能体通过文字命令与环境交互,任务成功才得 1 分。平均每条轨迹约 20-30 步。

WebShop 是一个模拟网购平台,智能体接收购物需求,在模拟网站上搜索、浏览、点击,最终选择商品。奖励是所选商品与需求描述的属性匹配度(0-1 连续值),所以任务成功率(SR,选到满分商品的比例)和平均得分(Score)是两个常用指标。

ALFWorld 的 6 种任务类型:

ALFWorld 包含以下 6 种任务子类型,每种对应不同的家务操作模式:

  1. Pick & Place(拿取放置): 找到指定物体,放到指定位置
  2. Pick two & Place(拿取两件放置): 找到两个同类物体,都放到指定位置
  3. Look at in light(灯光查看): 找到物体,在灯光下查看
  4. Pick, clean & Place(清洁后放置): 找到物体,清洁后放到指定位置
  5. Pick, heat & Place(加热后放置): 找到物体,加热后放到指定位置
  6. Pick, cool & Place(冷却后放置): 找到物体,冷却后放到指定位置

不同任务类型的难度不同,“拿取两件放置”和”需要工具操作的任务”(清洁/加热/冷却)通常更难,因为需要更长的行动链。遗憾的是,论文只报告了总体成功率,没有按子类型分解——这也是我在批判性分析里提到评估指标单一性的原因。

模型设置:

  • 目标策略主干:Qwen2.5-1.5B-Instruct 和 Qwen2.5-7B-Instruct
  • 稠密奖励模型:Llama-3.2-3B-Instruct(冻结主干参数,只训练 MLP 头)
  • 基线:GRPO 和 PPO(不带 RSPO)

主要结果(1.5B 模型)

在 ALFWorld 上,1.5B 模型的结果如下:

方法ALFWorld 成功率相对提升
GRPO69.0%
RSPO+GRPO74.7%+5.7pp
PPO76.6%
RSPO+PPO83.1%+8.6pp

在 WebShop 上,任务成功率(SR)的结果:

方法WebShop SR相对提升
GRPO46.1%
RSPO+GRPO50.0%+3.9pp
PPO54.4%
RSPO+PPO69.3%+14.9pp

RSPO 在 PPO 基线上的提升尤为显著,WebShop 的 SR 从 54.4% 跳到 69.3%,接近 15 个百分点。这让我有点出乎意料——通常认为 PPO 已经比 GRPO 更强,RSPO 叠加在 PPO 上还能有这么大提升,说明探索多样性在这些任务上确实是关键瓶颈。

图6:实验结果可视化

xychart-beta
    title "ALFWorld 成功率对比 (1.5B 模型,pct)"
    x-axis ["GRPO", "RSPO+GRPO", "PPO", "RSPO+PPO"]
    y-axis "成功率" 60 --> 90
    bar [69.0, 74.7, 76.6, 83.1]

图6: ALFWorld 环境中各方法的任务成功率对比(1.5B 模型)。RSPO 在 GRPO 和 PPO 两个基线上均带来了稳定提升,与 PPO 组合时提升幅度(+8.6pp)大于与 GRPO 组合(+5.7pp)。

7B 模型的结果

7B 模型的绝对性能数字更高,趋势与 1.5B 一致。以下是 ALFWorld 上 7B 的对比:

方法ALFWorld 成功率相对提升
GRPO(7B)79.5%
RSPO+GRPO(7B)84.7%+5.2pp
PPO(7B)81.9%
RSPO+PPO(7B)88.7%+6.8pp

WebShop 上 7B 的成功率(SR)对比:

方法WebShop SR(7B)相对提升
GRPO(7B)52.7%
RSPO+GRPO(7B)56.8%+4.1pp
PPO(7B)62.1%
RSPO+PPO(7B)73.5%+11.4pp

我注意到几个有趣的规律。首先,7B 模型的 RSPO 提升幅度(+6.8pp、+11.4pp)略小于 1.5B(+8.6pp、+14.9pp),这符合直觉:更大的模型本身就有更强的探索能力,对外部探索机制的依赖相对更小。其次,在两个规模下,RSPO 叠加在 PPO 上的提升都大于叠加在 GRPO 上,这可能是因为 PPO 本身的 value network 提供了更准确的优势函数估计,能够更好地利用 RSPO 提供的多样化轨迹。

这表明 RSPO 的框架在 1.5B 到 7B 范围内具有良好的规模一致性,RSPO 本身不依赖模型的特定规模特性,而是通过数据层面的机制提升探索效率。不过论文只测试到 7B,更大规模(如 70B)的行为尚不明确。

消融实验:哪些因素真正重要

RSPO 有几个关键超参数,论文做了系统的消融实验来分析它们各自的影响。

离策略比例 α 的影响

α\alpha 控制了每个训练批次里来自缓冲区的轨迹比例。

α\alphaWebShop SR
1/1667.2%(最佳)
1/866.4%(论文选择)
1/454.7%
无离策略~46%

这个结果告诉我们,太少的离策略数据(α=1/16\alpha=1/161/81/8)效果差不多,但一旦离策略数据超过在线数据的 25%(α=1/4\alpha=1/4),性能急剧下降。这说明过多的离策略数据会破坏在线训练的稳定性,探索策略和目标策略的分布差异过大时会导致学习混乱。

论文选择 α=1/8\alpha=1/8 而不是最优的 α=1/16\alpha=1/16,可能是因为前者在 ALFWorld 和 WebShop 上的综合表现更平稳。

循环步数 k 的影响

kk 控制了每个阶段训练的步数,即探索智能体和目标策略各自更新多少步。

kk任务成功率
1探索不足,效果接近无 RSPO
3最佳
5开始下降(稠密奖励过拟合)
10明显下降

性能对 kk 呈倒 U 形——kk 太小,探索智能体没来得及充分发散出新的轨迹;kk 太大,探索智能体在稠密奖励上训练过多步,反而陷入了对稠密奖励模型的过拟合,失去了真正的探索价值。在我看来,k=3k=3 是一个比较脆弱的甜点,实际应用中可能需要仔细调整。

从另一个角度来看,kk 控制的是”探索智能体走多远”。k=3k=3 意味着探索智能体在被重置前只经历了 3 步梯度更新——更新幅度不大,仍然接近 πθ\pi_\theta,所以产生的轨迹既有多样性,又不会离当前策略太远,能被离策略修正机制有效利用。这个平衡解释了为什么 k=3k=3 是最优点。

稠密奖励质量的影响

为了测试方法对稠密奖励模型质量的敏感性,作者向稠密奖励模型的输出添加了不同强度的高斯噪声 N(0,σ2)\mathcal{N}(0, \sigma^2)

噪声 σ\sigma任务成功率
0(完美奖励)67.2%
0.164.1%
0.360.9%
无稠密奖励~46%

结论是方法对噪声具有一定鲁棒性——即便稠密奖励模型加入了相当大的噪声(σ=0.3\sigma=0.3),任务成功率仍然远高于无 RSPO 基线。这是一个重要的实用性保证:不需要一个完美的稠密奖励模型,一个”还凑合”的过程奖励就足以为探索提供有用信号。

稠密奖励模型的截断点选择

消融实验中还测试了截断比例 ϵ\epsilon 对广义截断效果的影响。标准 PPO 通常用 ϵ=0.2\epsilon = 0.2,但 RSPO 在离策略设置下需要一个更保守的截断来稳定训练。论文发现 ϵ=0.1\epsilon = 0.1 在 RSPO 框架下效果最好——过大的 ϵ\epsilon 允许目标策略过多地学习离策略数据,容易引入分布偏移;过小的 ϵ\epsilon 则完全抑制了离策略数据的贡献。

状态空间多样性的量化验证

论文用”相同状态的访问次数”来量化策略的探索多样性。这个指标的含义是:在评估轨迹中,有多少状态是被重复访问的(即策略陷入循环或局部最优的信号)。

训练步数分别在 50、100、145 步时,GRPO 的重复访问次数为 1011 → 1084 → 1167(单调递增),RSPO 为 917 → 889 → 623(单调递减)。

这个对比非常直观:GRPO 训练越久,越倾向于走相同的路径,而 RSPO 训练越久,探索范围反而越来越广。这从机制上验证了 RSPO 的设计假设:离策略的多样化轨迹确实在持续增加策略的探索广度。

数字背后还有一层含义值得关注:RSPO 在训练初期(50步)的重复访问次数(917)就已经低于 GRPO(1011),说明它从训练一开始就在维护更广泛的状态覆盖,而不仅仅是在后期才体现出差异。这意味着 RSPO 的探索增益在整个训练过程中都是持续活跃的,而不是一次性的初始化效果。

缓冲区大小与内存占用

论文还测试了缓冲区容量对效果的影响。直觉上,更大的缓冲区能存储更多的历史多样化轨迹,但也意味着更多的陈旧数据(与当前策略分布差距更大的旧轨迹)。

实验结果是:每个 RSPO 大循环结束时清空缓冲区(只保留最新一轮探索智能体收集的数据)是最优策略。这印证了一点:RSPO 的离策略数据价值不在于”历史积累”,而在于”当前探索智能体的新鲜发现”。陈旧数据不仅无益,还可能引入分布偏移。

在内存占用上,论文的实现中缓冲区里最多同时存储约 B×k=B×3B \times k = B \times 3 条轨迹(每条轨迹约 20-30 步),加上在线批次,总体内存需求约是单纯 GRPO 的 1.2-1.4 倍,是可以接受的代价。

关键分析:奖励黑客与探索多样性

奖励黑客的实验证据

论文 Figure 3 对应的实验是整篇文章最有说服力的部分之一。他们对比了三种训练方式:

  1. 纯结果奖励(sparse outcome reward): 收敛慢,但稳定,不会崩溃;
  2. 纯稠密过程奖励(dense process reward): 初期收敛快,但在约 120 步左右出现奖励黑客崩溃——任务成功率急剧下降,而稠密奖励评分仍在上升;
  3. RSPO(奖励交换): 收敛速度介于两者之间,但没有出现崩溃,最终超过纯稀疏奖励基线。

图3:三种训练方式对比

graph TD
    A[多轮RL训练方式对比] --> B[方式一\n纯结果奖励\n稀疏奖励]
    A --> C[方式二\n纯稠密过程奖励\n全程稠密奖励]
    A --> D[方式三\nRSPO奖励交换\n探索用稠密\n对齐用结果]

    B --> B1[奖励信号极稀疏]
    B --> B2[收敛慢]
    B --> B3[不易奖励黑客\n结果稳定]

    C --> C1[奖励信号丰富]
    C --> C2[收敛快\n但约120步后崩溃]
    C --> C3[奖励黑客\n稠密奖励分数高\n真实成功率下降]

    D --> D1[稠密奖励驱动探索多样性]
    D --> D2[结果奖励保证真实对齐]
    D --> D3[兼顾收敛速度与最终性能\n无奖励黑客崩溃]

图3: 三种训练方式的特性对比。RSPO 通过奖励交换兼顾了稠密奖励的探索效率和结果奖励的真实对齐,避免了纯稠密奖励训练导致的奖励黑客崩溃。

为什么 RSPO 能避免奖励黑客

奖励黑客的根本原因是:当策略被直接优化稠密奖励时,它有强烈的动机找到稠密奖励模型的漏洞并加以利用。随着训练推进,策略越来越强,找到并利用漏洞的能力也越来越强。

RSPO 的奖励交换机制从根本上切断了这条路径:探索智能体 πB\pi_B 确实在用稠密奖励优化,但它不是最终部署的策略——它的角色是”数据收集器”。目标策略 πθ\pi_\theta 始终只在结果奖励上训练,从不接触稠密奖励的梯度信号。

这意味着即使 πB\pi_B 发展出了某种奖励黑客行为,它收集到的轨迹在加入缓冲区时会被替换成结果奖励标签。如果 πB\pi_B 的奖励黑客行为不对应真实任务成功,那么这些轨迹的结果奖励就是 0,在缓冲区中的优先级也低,对 πθ\pi_\theta 的实际影响有限。

这里有一个微妙的自洽逻辑:奖励黑客行为越严重,生成的轨迹结果奖励就越低(因为奖励黑客的轨迹往往不能真正完成任务),这些轨迹在缓冲区里的优先级就越低,对目标策略的影响就越小。换句话说,缓冲区的优先级采样策略天然具有一定的”过滤奖励黑客”的能力——这是我在读论文时没有预期到的一个优雅设计细节。

值得注意的是,这种保护并不是完美的。如果稠密奖励模型的漏洞恰好对应某种真实成功路径(比如某个特定的简单任务子集),那么 πB\pi_B 学到的奖励黑客行为可能在那个子集上确实成功,结果奖励为 1,就会进入缓冲区影响 πθ\pi_\theta。但这种情况下,“奖励黑客”也对应了真实成功,边界变得模糊,不一定是真正有害的。

WebShop 任务的特殊挑战

WebShop 的奖励结构与 ALFWorld 有所不同,值得单独分析。ALFWorld 使用二元奖励(成功/失败),而 WebShop 的奖励是连续值(0 到 1),表示所选商品与需求描述的属性匹配度。

这带来了一个有趣的挑战:在 WebShop 上,“完全失败”(奖励 0)和”接近成功”(奖励 0.8)都存在,中间还有大量”部分成功”(0.3-0.7)的轨迹。GRPO 的组内归一化在连续奖励上理论上效果更好,因为组内轨迹之间有更丰富的相对差异。

但即使如此,RSPO+PPO 在 WebShop 上从 54.4% 跳到 69.3% 的成功率提升幅度依然远大于 ALFWorld(76.6% → 83.1%)。这让我推测,WebShop 任务里存在更严重的策略局部最优问题——可能是模型学会了一套”还不错但不完美”的购物行为(比如总是选择价格最低的商品,忽略颜色或品牌要求),用稠密奖励驱动的探索能更有效地打破这种局部最优。

探索多样性的来源

这让我想到一个问题:为什么稠密奖励训练的 πB\pi_B 能比结果奖励训练的 πθ\pi_\theta 产生更多样化的轨迹?

直觉上,结果奖励训练使得策略只追求”最终成功”,容易收敛到几条固定的成功路径上。稠密奖励训练则不同——因为每步都有奖励,策略会尝试各种”局部有利”的行动序列,即使它们最终未必成功,这种局部探索的多样性积累起来,就产生了更广泛的状态覆盖。这和 GRPO 里观察到的”反复走相同状态”现象形成了对比。

局限性

作者在附录 F 中诚实地列出了以下局限性:

规模限制: 实验只在 1.5B 和 7B 参数规模的模型上进行,更大规模模型(如 70B 或更大)的行为没有验证。扩展到更大模型时,计算成本会显著增加(需要同时维护探索智能体和目标策略),性能提升是否保持也未知。值得注意的是,更大的模型通常本身就有更强的规划和探索能力,RSPO 提供的探索辅助对它们的相对收益可能更小——这是一个合理的担忧。

固定超参数: α\alpha(离策略比例)和 kk(循环步数)在整个训练过程中是固定的,没有自适应调度机制。理论上,训练早期策略还很弱时,探索价值更高,应该用更大的 α\alpha;训练后期策略已经相当好时,过多的离策略数据可能反而引入噪声,应该减小 α\alpha。自适应的 α\alpha 调度是一个自然的改进方向,但论文没有尝试。

稠密奖励模型的构建难度: 方法需要一个质量尚可的稠密奖励模型。训练这个模型需要带有过程级标注的轨迹数据,或者至少需要结果奖励数据来做弱监督(如本文的 MSE 损失)。虽然消融实验证明对噪声有一定鲁棒性,但在没有任何过程奖励数据的冷启动场景下,如何快速训练一个可用的稠密奖励模型仍是工程上的挑战。

任务类型限制: 实验只覆盖了家务模拟(ALFWorld)和购物(WebShop)两类任务,都属于”有明确终止条件和二元成功定义”的任务。对于需要开放式评估(如代码质量、写作风格)的多轮任务,结果奖励本身就难以定义,RSPO 方法的适用性需要进一步验证。

环境交互成本未讨论: 多轮任务里,每次采样轨迹都需要与环境进行多轮交互,这在真实部署场景(如真实网站操作、真实 API 调用)中成本极高。论文在模拟环境中测试,没有讨论如何将方法扩展到需要控制环境交互成本的实际场景。

批判性分析:不足与可改进之处

这一节是我个人对这篇论文技术贡献的独立审视,有些评论可能比较挑剔,但我认为这种批判性阅读对自己理解方法的边界最有价值。

1. 稠密奖励模型训练细节不够充分

论文用 Llama-3.2-3B-Instruct 加 MLP 头做过程奖励模型,训练损失是轨迹级别的 MSE(式7),但对训练数据量、数据构成、训练收敛情况的描述相当简略。一个关键问题没有被回答:训练稠密奖励模型的数据是从哪里来的?是随机策略收集的,还是预训练策略收集的,还是专家数据?

数据分布对过程奖励模型的泛化能力至关重要。如果训练数据来自随机策略,那么稠密奖励模型对高质量轨迹的评分可能不准确;如果来自专家数据,那么稠密奖励模型是否真的在帮助探索,还是只是在引导智能体模仿固定路径?这一点在消融实验里完全没有涉及。

2. 广义截断的理论保证不完整

RSPO 的广义截断(式4)在技术上把截断中心从 1 改成了 πθold/πB\pi_{\theta_\text{old}}/\pi_B,直觉上是正确的,但论文没有给出这个修改的单调改进保证。标准 PPO 截断有理论证明(在一定条件下保证期望回报单调不减),但广义截断是否有类似性质?如果 πB\pi_Bπθ\pi_\theta 差距很大,截断参数 ϵ\epsilon 是否仍然有效控制更新步长?这些问题在论文中没有得到严格回答。

3. 探索智能体 π_B 的质量随循环退化风险

每个 RSPO 大循环结束后,下一轮的 πB\pi_B 是从当前 πθ\pi_\theta 出发再训练 kk 步。这意味着 πB\pi_B 的初始化越来越强,越来越不可能探索到早期训练中出现过的失败路径。随着训练进行,缓冲区里的多样性是否会逐渐退化为”强策略的微变体”而不是真正的多样化探索?

论文中的”相同状态访问次数”指标(917→889→623)只在训练的前 145 步展示了递减趋势,没有报告更长训练周期后的情况。如果训练到 500 步,这个指标会不会再次回升?这是一个值得关注的潜在问题。

4. 与其他离策略方法的对比不充分

RSPO 的离策略混合设计和工作在 LLM RL 里的一些其他离策略方法(如 ReMax、REBEL、offline RLHF)有相似之处,但论文没有进行正面对比或讨论区别。读者很难判断 RSPO 的核心价值到底在”奖励交换”本身,还是在”任何离策略数据扩充都有帮助”。

一个更强的验证实验应该是:用相同的离策略混合比例 α\alpha,但把缓冲区里的数据换成”不经过奖励交换、直接用结果奖励收集的历史轨迹”,看看纯离策略扩充是否也能达到类似效果。如果可以,那 RSPO 的独特价值就主要在于”稠密奖励驱动的探索多样性”;如果不能,才能更有力地证明奖励交换机制本身的价值。

5. 计算成本被低估

RSPO 在训练时需要同时维护两个策略(πθ\pi_\thetaπdense\pi_\text{dense})以及一个稠密奖励模型,内存和计算需求比单纯的 GRPO 或 PPO 高出不少。论文对此几乎没有报告(没有给出训练时间、GPU 小时或 FLOPs 的对比)。在资源受限的场景下,RSPO 与直接增加采样数量(即让 GRPO 的组大小 NN 更大)相比,哪种提升性价比更高?这是一个实际应用中非常重要的问题,但论文没有回答。

6. 超参数敏感性的系统性分析不足

消融实验只针对 α\alphakk 这两个超参数各做了单变量消融,但没有做联合消融(即 α\alphakk 的最优值是否相互独立?),也没有分析在不同任务(ALFWorld vs. WebShop)上最优超参数是否一致。如果 ALFWorld 和 WebShop 的最优 α\alpha 不同,那意味着 RSPO 在新任务上需要重新做超参数搜索,增加了使用门槛。

7. 评估指标的单一性

ALFWorld 使用二元成功率(0/1),WebShop 虽然有连续分数但主要报告 SR(选到满分商品的比例),两者都是非常粗粒度的指标。这使得我们很难判断 RSPO 的改进来自哪个层面:是整体成功率提升了(更多轨迹能找到解),还是轨迹效率提升了(用更少步数完成任务),还是探索宽度提升了(能解决更多样的任务类型)?

如果能按任务子类型报告成功率(ALFWorld 有 6 种任务类型),或者报告轨迹的平均步数变化,就能更精确地定位 RSPO 究竟在哪个维度上带来了改进。这对理解方法的适用范围和局限性都很重要。

小结

上述问题并不否定 RSPO 的核心贡献——奖励交换的思路确实新颖,实验结果也令人信服。但如果要将 RSPO 推广到实际应用,这些问题(尤其是计算成本、稠密奖励模型数据来源、长训练周期的多样性退化)都需要更深入的研究。在我看来,这篇论文更像是一个有说服力的概念验证(proof of concept),而不是一个完全经过工程验证的方法。

总结

RSPO 给了我一个新的思维框架来理解多轮 LLM 智能体训练:奖励信号可以被战略性地解耦——用什么奖励来驱动探索,和用什么奖励来监督学习,这是两个可以分离的设计决策。

这种解耦思想并不局限于 LLM 智能体,在经典 RL 里也有类似的思想(如 curiosity-driven exploration)。RSPO 的独特之处在于它非常简洁地在 LLM 训练框架下实现了这种解耦:不需要修改模型架构,不需要复杂的探索奖励公式,只需要一个可以近似的过程奖励模型和一个清晰的两阶段训练循环。

从结果来看,ALFWorld 上 PPO+RSPO 达到 83.1%(vs PPO 76.6%),WebShop 上更是从 54.4% 跳到 69.3%,这种量级的提升在多轮任务上并不常见。更重要的是,这些提升来自于方法本身的设计改进,而不依赖于更大的模型或更多的算力。

对实践者的启示

如果你在做类似的多轮 LLM 智能体训练项目,我认为 RSPO 给出了几个可以立刻借鉴的工程直觉:

第一,检查你的成功率。在开始任何花哨的算法改进之前,先看看你的基础 GRPO 或 PPO 在当前任务上的每组采样成功率是多少。如果每组 N=8N=8 条轨迹里的平均成功率低于 20%,稀疏奖励很可能是主要瓶颈,这时候 RSPO 或其他基于过程奖励的方法可能有显著帮助。

第二,别急着用稠密奖励直接训练。实验结果清楚地表明,用稠密奖励直接训练会出现奖励黑客崩溃(约 120 步)。如果你有一个过程奖励模型,最好是用它驱动探索,而不是直接优化它。

第三,小比例离策略数据是安全的α=1/8\alpha = 1/8 只是 12.5% 的数据来自缓冲区,对在线训练的干扰很小,但已经足够带来显著提升。这个设置的风险/收益比相当好。

RSPO 的延伸思考

读完这篇论文,我产生了几个延伸问题,这些问题在原文中没有直接回答,但我认为对理解方法的潜力很重要:

奖励交换能否用于其他训练设置? RSPO 目前只在两阶段循环里使用奖励交换。但奖励交换的思想其实更通用——任何时候当我们有一个”信号丰富但对齐差”的奖励和一个”信号稀疏但对齐好”的奖励,都可以考虑用前者驱动数据收集、用后者训练模型。这在 tool-use、code generation、agentic reasoning 等场景里可能同样适用。

两个策略之间的差距多大合适? RSPO 依赖 πB\pi_Bπθ\pi_\theta 之间存在适度的差异——差异太小,探索价值不大;差异太大,离策略修正失效。k=3k=3 的设计在一定程度上控制了这个差异,但论文没有直接度量两个策略之间的 KL 散度随训练的变化。这是一个值得监控的中间变量。

RSPO 与 curriculum learning 的关系? RSPO 的缓冲区里优先保存高奖励轨迹,这有点像课程学习(curriculum learning)——先用简单成功案例建立基础,再逐步扩展到更难的情况。如果把缓冲区的采样策略设计成一个难度渐进的课程,也许能进一步提升学习效率。

当然,我在批判性分析中也指出了几个需要未来工作补充的空缺:稠密奖励模型训练细节、广义截断的理论保证、长训练周期的多样性保持,以及与其他离策略方法的系统性对比。这些都是值得后续研究跟进的方向。

如果你正在研究多轮 LLM 智能体训练,或者对如何在稀疏奖励环境下做高效探索感兴趣,RSPO 是一篇值得仔细阅读的工作。它的实现并不复杂,核心思想也非常直观,是一个很好的”把 RL 工程直觉落地为具体算法”的例子。

这篇笔记到此结束。如有理解有误或遗漏的细节,欢迎对照原文校正。

三句话核心要点

最后用三句话提炼一下这篇论文的精华,方便快速回顾:

  1. 问题: 多轮 LLM 智能体任务里,稀疏奖励导致探索不足、收敛慢;稠密奖励会导致奖励黑客崩溃——两者分别取时都有严重缺陷。

  2. 方法: RSPO 通过”奖励交换”把两者解耦——用稠密奖励训练探索智能体收集多样轨迹,再把轨迹上的奖励换回结果奖励喂给目标策略,同时用广义截断修正离策略偏差。

  3. 结论: 在 ALFWorld 和 WebShop 上,RSPO 在 1.5B 和 7B 两种模型规模下均显著超越了 GRPO 和 PPO 基线,最高提升达到 15 个百分点(WebShop SR,1.5B,与 PPO 基线对比),且没有出现奖励黑客崩溃。

延伸阅读推荐:

  • GRPO 原始论文(DeepSeek-Math,2024):理解 GRPO 算法的来源和数学推理场景下的效果
  • ALFWorld 环境论文(Shridhar et al., 2021):理解本文实验环境的设计
  • WebShop 论文(Yao et al., 2022):理解 WebShop 奖励结构的细节
  • HER(Hindsight Experience Replay,Andrychowicz et al., 2017):理解 RSPO 轨迹重标记思想的经典前驱工作
  • PPO 原始论文(Schulman et al., 2017):打好策略梯度算法的理论基础