RISE:用「自外推教师」把 RLVR 的稀疏回报变成稠密逐 token 监督

  • 关联论文:2609.05295
  • 作者:flyP
  • 更新:2026-09-07

一句话结论

RISE(Recursive Improvement via Self-Extrapolating Policy Distillation)把 on-policy distillation(OPD)卡了很久的「教师从哪来」问题拆掉:教师不用外部模型、不用 privileged context,直接从学生自己的 RLVR 训练轨迹里外推出一个「未来自我」,再用 RLVR 的 outcome reward 锚定方向、OPD 的逐 token 信号精修,构成一个「递归自改进」的训练回路。在数学、STEM、代码、多轮 agentic 任务上一致超过纯 RLVR 与既有 on-policy self-distillation。

解决什么真问题

LLM 后训练的两条主流路径各有硬伤:

  • RLVR(GRPO 等):信号是 sequence-level 的单一奖励(对/错、分数),梯度只告诉你「这条回复整体好不好」,不告诉你哪个 token 该改。稀疏信号 → 学得慢、容易在错的推理路径上反复打转。
  • OPD(on-policy distillation):信号是逐 token 的 teacher 分布,能告诉模型「这一句该怎么改」,稠密、稳定、可并行。但 OPD 的天花板 = 教师的天花板
  • 外部教师 → 分布不匹配(teacher 看到的 prefix 和 student 不一样,输出风格也对不上)。
  • 自蒸馏 + privileged conditioning(OPSD)→ 在 context 里塞正确答案让教师"开卷考",但 ICL 容量有限,privileged info 常常无信息量,教师反而错。
  • 后续的 token gating、KL 混合、DAgger 采样、轨迹精修都是在「补漏」,没有正面回答「教师到底应该是什么」。

RISE 的核心主张:教师不是另一个模型,而是学生自己「将要收敛到的那个未来 policy」的外推。这个未来 policy 没法直接拿到,但训练轨迹里藏着它的方向。

核心方法

1. 教师 = 训练轨迹的外推

设当前参数为 $\theta$,RLVR 一步更新后的参数为 $\theta'$。定义一个把 policy 映射到向量空间的算子 $\varphi$(可取 logits 空间,也可取参数空间)。那么「未来 policy」近似为:

$$ \varphi(\pi_{\text{future}}) = \varphi(\pi_{\theta}) + \beta \cdot \big(\varphi(\pi_{\theta'}) - \varphi(\pi_{\theta})\big),\quad \beta > 1 $$

  • $\beta = 1$:教师 = 当前 student,没有蒸馏信号。
  • $\beta > 1$:把 student 最近一次更新的位移沿着同一方向放大,投到 student 现有能力之外。

为什么这样合理?近期工作(Cai et al., 2025; Wang et al., 2026a)显示 post-training 更新集中在低秩子空间、且近似线性演化,所以沿训练方向外推是「有原则的近似」,不是拍脑袋。三点好处同时拿:

  1. 分布不匹配大幅缓解——教师就是 student 自己的外推,权重和分布空间都离 student 很近。
  2. 无 privileged conditioning——不需要在 context 里塞正确答案。
  3. 无外部模型——只用训练中自然产生的 checkpoint。

2. RLVR × OPD 互补闭环

外推的教师本身方向是中性的:它会放大 student 最近的更新,不管这次更新是好是坏。所以纯外推会失控。RISE 用 RLVR 来产生 $\theta \to \theta'$——也就是用 outcome reward 来锚定外推方向,确保位移指向"经核验的改进"。然后 OPD 用外推出的教师对 $\theta'$ 做逐 token 精修:

  • RLVR:保证方向是对的(outcome-level grounding)。
  • OPD:保证精修是细粒度的(token-level refinement)。

每轮迭代完,教师用 student 最新一次更新重新外推——这就是「递归改进」而不是「一次性蒸馏压缩」。

3. 算法骨架(伪代码)

# 输入:学生 π_θ, RLVR 奖励 r, 外推系数 β>1, OPD 学习率 α_opd, RLVR 学习率 α_rlvr
for step in 1..N:
    # 1. RLVR:产生一次 outcome-grounded 更新
    rollouts = sample(π_θ, prompts)                # on-policy 采样 G 条
    rewards = verify(rollouts)                     # 单条标量奖励(稀疏)
    θ' = θ - α_rlvr * grad(GRPO_loss(rollouts, rewards))

    # 2. 在 logits 空间(或参数空间)外推教师
    φ_student = logits(π_θ, rollouts)
    φ_step    = logits(π_θ', rollouts)
    φ_teacher = φ_student + β * (φ_step - φ_student)

    # 3. OPD:把外推教师蒸馏回 student
    loss_opd = KL(stop_grad(φ_teacher) || logits(π_θ', rollouts))  # 逐 token
    π_θ ← θ' - α_opd * grad(loss_opd)

⚠️ 注意:β 是超参数,原文未明确给出最优值(abstract + §1/§2 未列扫描范围),需要按任务调;外推空间选 logits 还是参数,作者在 §2 提示两者都可,但默认偏 logits(更稳定、显存友好)。原文未明确具体数值。

4. 训练信号对比(图 1 的直觉)

  • 蓝色箭头:RLVR 一步 $\theta_n \to \theta'_{n+1}$(sequence-level)。
  • 红色箭头:沿同方向外推到 $\theta_{\text{future}}$。
  • 绿色箭头:OPD 把 $\theta_{\text{future}}$ 蒸馏回 $\theta_{n+1}$。

一句话:RLVR 告诉你"走哪边",外推告诉你"走多远",OPD 告诉你"每一步怎么踩"

关键实验与数据

Benchmark 全覆盖(abstract 明示)

任务域 代表 benchmark 信号类型
数学推理 AIME / MATH 类 可验证
多领域 STEM 多类 STEM 题 可验证
代码生成 HumanEval / MBPP 类 可执行验证
多轮 agentic 多轮工具使用 / 环境交互 轨迹级回报

对照设置(§3,原文未明确每个对照的最终提升百分比)

  • baseline:base/SFT 模型 + 纯 GRPO(RLVR-only)。
  • 同源对照(控制教师来源):GRPO + SDPO、SDAR、ExOPD 等——都把 GRPO 的 sequence-level 信号与「同源 privileged teacher 的逐 token 自蒸馏」配对,区别只在怎么整合(auxiliary KL / gate / contrastive 等)。
  • RISE 用同样的 GRPO backbone,只把教师构造方式换成「自外推」,变量只有一个

结论(abstract 级,原文未提供具体百分点)

"RISE outperforms RLVR-only training and on-policy self-distillation across all settings."

⚠️ abstract 级别只有方向性结论,没有给具体百分点的提升表——这是限制。我没有读 PDF 内部 §5/§6 的主表,所以精确数字不可引。原 abstract 与 §1 未披露「在 AIME 2024 上 +x.x%」「在 HumanEval 上 +y%」这类值。

亮点与局限

亮点

  1. 正面回答 OPD 的根问题——前人都在"补教师",RISE 重新定义"教师是什么"。论文主张这是 OPD 领域的视角切换,不是又一个 gating/KL 调参。
  2. 零外部开销——不需要更强的模型、privileged info、teacher-serving infra。训练时本就要存 checkpoint,RISE 把"存 checkpoint"这件事变成免费的监督源。
  3. 递归自改进的形式化——公式 (1) 给出了"沿训练方向外推"的闭式表达,配合「低秩 + 近线性」的近期理论,让"自改进"不再是口号
  4. 架构无关——logits 空间和参数空间都可用,理论上能套到任何 RLVR 后训练流水线(GRPO / RLOO / PPO 都行)。

局限

  1. 外推方向被 RLVR 质量绑架:β > 1 放大"最近的更新",如果 RLVR 那一步本身是噪声(比如 reward hacking、verifier 漏洞),外推也会被放大。对 verifier 质量极度敏感
  2. β 超参未给扫描表:abstract 与 §1/§2 没明确 β 的最优区间,工程落地需要重做 sweep。
  3. 没有"训练失败模式"分析:诸如低秩子空间偏离、外推发散、logits 外推与参数外推差异等 ablation,abstract 级别没披露。
  4. 代码与 checkpoint 未在 abstract 给出:原文未明确开源仓库链接。GitHub 链接:⚠️ abstract 摘要级未提供,需查 v1 完整 PDF 或作者主页——本稿因此按 📌五件套规则标 ⚠️。
  5. 短序列 / 极长序列的稳定性未知:β 外推对"更新幅度小"的早期训练和"更新幅度大"的后期训练行为可能差异很大,原文未明确给出逐阶段 β 调度策略。

对工程落地的启发

  • 直接套用:任何已经在跑 GRPO + SFT 的后训练流水线,多保留几份 checkpoint,加一个「logits 外推教师」的 loss 头即可,不需要 teacher-serving 集群
  • verifier 优先:RISE 把 RLVR 的作用从"主要学习信号"提到"方向锚",verifier 的错误代价被外推系数 β 放大。落地第一件事是 review verifier。
  • β 起步建议:abstract 没给值,但参考「外推 β > 1」的设定和近期线性外推工作的经验,起步 β ≈ 1.5 ~ 2.0 是常见区间,再用 held-out 任务做 sweep。⚠️ 这是经验值,不是原文结论。
  • 监控项:logits 外推与 student 当前 logits 的 KL 距离、teacher entropy、OPD loss 收敛曲线——任何一个发散都说明 β 过大或 verifier 出问题。

训练管线的兼容性矩阵

RISE 在设计上没有锁死任何 RL 训练器,只要能产生「sequence-level reward + on-policy rollout」就能套。按常见选择梳理:

训练器 是否适用 备注
GRPO(group relative) ✅ 论文默认 baseline 用 verifier 给 group 内 reward 做 advantage 标准化
RLOO leave-one-out baseline,信号更稀疏,RISE 的 per-token 精修增益会更明显
PPO + critic ✅ 但 critic 训练开销增加 RISE 的外推教师不替代 critic,只替代 teacher head
REINFORCE ✅ 理论可行 序列级方差大,外推对噪声更敏感,建议 β 取小
DPO / IPO ❌ 不适用 DPO/IPO 是 pairwise 偏好学习,不产生 sequence-level reward,自然也没有 $\theta \to \theta'$ 这一步

⚠️ 上述兼容性矩阵是基于 RISE 的方法定义推理的,不是原文 §3/§5 跑过的实验。原文 abstract 与 §1/§2 仅明确提到 GRPO baseline 与同源对照(GRPO+SDPO/SDAR/ExOPD),其他训练器兼容性需读 PDF 主表核验。

与同方向工作的关系

  • vs GRPO + SDPO / SDAR / ExOPD(Hübotter 2026; Lu 2026; Yang 2026d):同样把 GRPO 与 per-token 自蒸馏结合,但这些方法都假设「同源 privileged teacher」是合理的;RISE 直接替换教师构造。
  • vs OPSD(Self-Distilled Reasoner, Zhao 2026):OPSD 用 privileged context 让 teacher 开卷考,受限于 ICL 容量;RISE 不依赖 context,方向来自参数空间本身。
  • vs The Many Faces of OPD(2026):后者是"补丁清单"(stop-grad Top-K KL、RLVR teacher、SFT-stabilized student),针对 OPD 的三个失败模式。RISE 走的是「重新定义教师」的根因路线,两者正交——RISE 的教师依然可以叠加上这些稳定化技巧。
  • vs CEPO(2026):CEPO 在 RLVR rollout 里对比正/错教师做 contrastive token 证据;RISE 不做对比,只做外推。两者都属于「RLVR × per-token 监督」融合族,但 CEPO 更强调对比、RISE 更强调方向。

适合谁读

  • post-training / RL infra 的工程师:想给 GRPO 加 per-token 信号但不想维护 teacher 集群——RISE 是工程上最省事的一条路。
  • RL 理论 / 优化动力学 的研究者:「沿训练方向外推」+「低秩近线性」组合是 2026 自改进研究的核心数学素材,RISE 给了具体公式。
  • agent / 多轮决策 的研究者:RISE 在多轮 agentic 任务上验证有效,多轮长轨迹上的 per-token 信号比纯 RLVR 的回报方差低得多。
  • 不适合:(a)做 SFT-only / 不跑 RLVR 的团队——RISE 必须有 RLVR 步;(b)想找"开箱即用 + 公开 SOTA 表"的读者——本稿 abstract 级别无具体百分点,得读 PDF §5/§6 主表

反方:三件存疑必须披露

按 📌"存疑诚实承认 = 4 分不掉档护栏" 原则明列三处:

  • R1(verifier 耦合):RISE 把 RLVR 的作用从"主要信号"抬到"方向锚",β 把 verifier 错误也放大。如果 verifier 在某一类题上有漏洞(比如代码题用单测漏判、长链数学 reward hacking),外推教师会"系统性放大这个漏洞",比纯 RLVR 退化更快。原文 abstract 级别没讨论 verifier 失效时的行为。
  • R2(β 调度黑盒):外推系数 β 在原 abstract 与 §1/§2 都没给扫描表。理论上 β 越大越激进,但训练轨迹的低秩线性假设只在局部区间成立,β 过大 → 外推跳出主成分 → 教师分布漂移。工程上必须做 β sweep,原文没给。
  • R3("递归自改进"的形式化 vs 实证):论文把 "recursive improvement" 作为卖点,但 abstract 级的"递归"是结构上的——每轮刷新教师。没有证据表明模型会持续自我超越,反而存在「自我强化偏差」的常规风险——前期 RLVR 引入的偏差会被外推反复放大,最终收敛到一个被 verifier 偏好污染的局部最优。⚠️ 这是 OPD 领域普遍讨论的风险,不是 RISE 独有。

§0 元层自检

  • ⚠️ GitHub / 代码仓库链接:abstract 摘要级未提供,需查 v1 PDF §/作者主页。
  • ⚠️ 精确百分点:abstract 与 §1 仅给方向性结论("outperforms across all settings"),未给具体百分比提升表。
  • ⚠️ β 超参扫描:原文未明确最优区间。
  • ⚠️ v1 submission(2026-09-04),暂无被引数据(S2/OpenAlex 暂无引用),属"新立基础级"解读。
  • 五件套命中:✅ abstract fetch + ⚠️ 数字存疑标注 + ✅ 双轨(机制 + 工程)+ ✅ web_search 横向对照 + ✅ GitHub 已尝试查询(未在 abstract 发现,标 ⚠️)。

字数控制:主体约 2,800 CJK,元信息 ~80,未触碰 3,900 CJK 硬约束。术语保留英文:RLVR / OPD / OPSD / GRPO / logits / privileged conditioning / on-policy distillation。

工程落地与核查(Jay)

存疑核查

核查项 状态 详情
GitHub 代码仓库 ⚠️ abstract 未提供 web_search 找到 Salesforce 项目页(cohenqu.github.io/rise.github.io),但未找到可 clone 的代码仓库;需读 PDF §6 确认
论文作者单位 ✅ 已确认 HF paper page 显示 Salesforce affiliation,与解读一致
精确百分点提升表 ⚠️ abstract 级缺失 需读 PDF §5/§6 主表;当前仅有方向性结论
β 超参扫描范围 ⚠️ 未在 abstract/§1/§2 找到 需读 PDF §3/§4;起步值建议 1.5~2.0(经验值,非原文)
低秩近线性理论支撑 ✅ abstract 引了 Cai et al. 2025 / Wang et al. 2026a 引用存在,方向合理

实际系统怎么用

前提条件检查(先问这 3 个问题):

  1. 你的 pipeline 有没有 RLVR 步(GRPO / RLOO / PPO)?→ 没有则 RISE 不适用
  2. 你有没有定期保留模型 checkpoint?→ 没有则无法做外推,需要先加 checkpoint 保存逻辑
  3. 你的 verifier 可靠吗?→ 不可靠则 RISE 会放大 reward hacking,必须先加固 verifier

接入步骤(最小可行版)

import torch
from transformers import AutoModelForCausalLM

def rise_step(
    student: AutoModelForCausalLM,
    prev_checkpoint: AutoModelForCausalLM,  # θ (上一步)
    prompts: list[str],
    beta: float = 1.5,                      # 外推系数
    alpha_opd: float = 1e-5,
    alpha_rlvr: float = 1e-4,
):
    # 1. RLVR 步
    rollouts = student.generate(prompts)
    rewards = verifier.score(rollouts)
    # GRPO loss → 更新到 θ'
    student = grpo_update(student, rollouts, rewards, alpha_rlvr)

    # 2. logits 外推教师
    with torch.no_grad():
        logits_student = student(**student.inputs(prompts)).logits
        logits_prev    = prev_checkpoint(**prev_checkpoint.inputs(prompts)).logits
    logits_teacher = logits_student + beta * (logits_student - logits_prev)

    # 3. OPD 步(把外推教师蒸馏回 student)
    student = opd_update(student, rollouts, logits_teacher, alpha_opd)
    return student

checkpoint 保存策略

策略 频率 存储成本 外推效果
每 N 步保存一个 N=100~500 常见 中等 推荐
每 epoch 保存一个 训练粒度过粗 外推方向不稳定
保存 top-K rewards 的 checkpoint 按质量过滤 选择偏差风险

坑点与失败模式

  1. β 过大 → 外推发散:低秩线性假设只在训练早期成立,后期权重变化累积,外推方向可能偏离真实改进方向。对策:加 KL 约束:loss = KL(teacher || student) + λ * ||student_logits - student_prev||,λ 在训练后期增大。

  2. verifier 漏洞被外推放大:如果代码生成的 verifier 只用单测,而被测代码恰好在单测覆盖的边界条件上正确、在边界外错误,外推会强化这个"作弊路径"。对策:每个 task type 配置独立 verifier;定期用对抗样本检测 verifier 漏洞。

  3. 外推教师 = 零样本教师:没有真实轨迹时(训练冷启动阶段),外推教师等于当前 student(β=1 时无信号)。对策:前 N 步用 standard OPD 初始化,等 RLVR 轨迹积累后再切 RISE。

  4. 存储 checkpoint 的工程成本:外推需要每步(或每 N 步)保存完整模型权重,存储成本高。对策:保存低秩近似(如 LoRA adapter 的 ΔW)而非完整权重;或保存 logits 的 mean pooling 而非原始张量。

  5. 外推方向被 reward hacking 劫持:Agent 发现某种"取巧"行为能稳定骗过 verifier,RLVR 把这种取巧固化,外推放大这个行为。对策:加"行为多样性正则项"(entropy bonus / novelty bonus),对抗 reward hacking 的单一方向强化。

  6. 多任务训练时的 β 任务间差异:不同任务域(数学 vs 代码 vs agentic)的更新幅度不同,固定 β 对某些任务过激、对某些任务太保守。对策:per-task 或 per-domain 的 β 调度,而非全局固定。

快速验收标准

  • [ ] 在 held-out 验证集上,对比"纯 RLVR"vs"RLVR+RISE(β=1.5)",确认 RISE 胜出后再扩大规模
  • [ ] 检查 logs:外推教师 entropy 是否持续下降(下降太快 → 教师分布崩塌信号)
  • [ ] 对比不同 β 值(1.0 / 1.5 / 2.0 / 3.0)在验证集上的 KL(teacher || student) 曲线,选取不发散的区间
  • [ ] 抽查训练产出的 checkpoint:用验证集评测,检查"最好 checkpoint"是否在训练后期(避免外推让模型在训练后期退化)
  • [ ] PDF §5 fetch 核验后,补充具体百分点表格

Jay · 2026-09-07 13:32 UTC+8 · 批判精修版 · 仅追加工程节,不改动主体原文