SRPO:基于自我反思的逐 Token 训练信号#
TL;DR#
本页内容7 个部分
1. 终局评分与逐 token 训练信号#
模型的一次尝试最终失败,仅凭终局评分,无法判断错误来自哪些位置。若先根据这次失败生成反思,再让带有反思的教师评价学生新生成的回答,能否为其中不同 token 提供不同方向的训练信号?
GRPO 用一条回答的终局分数为所有 token 构造共享权重。终局错误评分本身不能区分各 token 对错误结果的贡献。SRPO 用终局反馈生成反思,再为学生新回答的不同位置构造训练信号。
2. 反思教师与学生的输入#
SRPO(Self-Reflective Policy Optimization)让模型先根据失败轨迹写反思,再由输入包含反思内容的教师模型评估学生生成 token 的概率。教师与学生可以使用同一模型,区别在于教师的输入额外包含反思。学生更新后,推理时仍只接收原问题。[1]
给定问题 ,先生成一次尝试并取得终局反馈,例如答错或环境失败。这里的失败尝试用于生成反思,与随后用于更新的学生回答是两次生成。把问题、轨迹和反馈交给模型,生成简短的反思补丁 ,说明应避免的错误与应采用的步骤。
随后回到任务起点。学生仅接收 ,教师接收 。两者使用相同规模的模型。
比较 token 概率时,固定学生已经生成的前缀,只改变教师接收的反思上下文。不同前缀下的学生与教师 token 概率不能直接用于该比较。
若学生生成前缀为 ,教师就在这个相同前缀上计算 。学生记为 。本轮更新前缓存教师分数并停止其梯度。[1]
反思后生成的另一条回答可以用于评估教师的任务表现,但它不直接充当 SFT 的目标文本。训练评分的对象仍是学生实际生成的 token。
3. 基于教师评分的学生策略更新#
3.1 基于教师概率的 token 评分#
用更新前的学生策略 old 生成回答 ,其中 是有效生成 token 数, 是第 个位置之前的状态。对每个有效位置,缓存:
Stop-gradient(停止梯度,记为 )表示取数值,但不沿这条路径反传。这里用 表示教师给出的 token 分数,以区别于 current/old 概率比。
若教师赋予已采样 token 的概率高于 old,;若教师概率低于 old,。[1]
手算设三个位置的 old 与教师概率如下。它们属于不同前缀,跨位置的概率之和无须等于 1。
| 位置 | old 概率 | 教师概率 | |
|---|---|---|---|
| 1 | 0.4 | 0.6 | 0.4055 |
| 2 | 0.4 | 0.2 | −0.6931 |
| 3 | 0.2 | 0.3 | 0.4055 |
终局反馈先用于生成反思,再通过教师的条件概率影响 ,不直接作为奖励项进入学生更新的 loss。因此, 是模型概率比较得到的训练信号,并非环境对每个 token 提供的真实奖励。[1]
3.2 中心化后构造 clipped 更新#
令 为裁剪宽度。先按这条回答的有效位置求均值 ,再用 中心化。
三个 token 的平均分 ,于是 。第二个 token 得到负权重,其他两个得到正权重。
设 ,经验 Actor loss 为:
这是要最小化的 loss。教师、old、 和中心化结果都固定;梯度只经过 current 概率。题目、轨迹与小批次之间的进一步聚合需另行说明。[1]
不同位置可以得到不同的 ;这些权重来自教师概率比较,并非精确的 。
再取 current/old ratio 为 ,。三个 clipped 目标约为 ,平均约 ,所以 loss 约为 。
最后一个 token 的概率比超过上裁剪界,正权重任务项已进入常数分支;第二项仍提供降低该 token 概率的梯度系数。这是一条回答内部的差异化更新,不需要先用终局任务分数为所有 token 分配相同符号的权重。
4. 反思生成、教师评分与学生更新#
- 模型生成一次尝试,取得终局反馈,再据此生成反思补丁。
- 学生仅根据原问题生成新回答;教师接收反思补丁,在相同的学生前缀下为已生成 token 评分。
- 缓存 old 与教师的 token 概率,计算对数概率差,再减去轨迹内均值,得到固定的更新权重。
- 用 current 重算概率比,执行 clipped 更新。更新后重新采样,生成新的反思与训练信号。
5. 教师信号的局限性与 KL 对应条件#
5.1 与局部 reverse KL 的联系#
在固定前缀下,若动作按 old 采样,。单个 token 的分数可以为正,但在该前缀下对全部候选 token 按 old 概率取期望,结果仍非正。
把教师固定,只看一个前缀,负 reverse KL 的梯度为 。因此在 current 等于 old、动作采样匹配且不另加数据依赖变换时,缓存的 log-ratio 可以提供相应局部梯度信号。
实际 SRPO 还包括轨迹内中心化、clipping 和多次复用。尤其 含有当前样本,也随整条轨迹变化,不满足动作独立 baseline 的简单证明。不能因此宣称完整 SRPO 始终无偏优化整条回答的 reverse KL;RLOO 与 KL Regularization 分别解释这两类条件。
5.2 额外反馈的作用与成本#
与 ERPO 调整问题正则不同,SRPO 改的是训练信号的来源与粒度。反思生成和教师评分增加了训练开销。若反思补丁把失败原因归错,教师会在错误上下文下为新回答评分;因此,细分到 token 的概率信号仍可能强化错误行为。
学生在推理时仅接收原问题。训练希望将反思提供的信息转化为参数更新,提高这一输入条件下的任务正确率;是否达到该目的,仍需实际评测。
参考资料#
- Self-Reflective Policy Optimization(2026). §3.2、算法 1:反思补丁、教师评分与学生更新。