RRL 入门:让大模型不再忘记好点子
我是 Alex Xiang,前百度/微博工程师,正在公众号「字与码」记录 AI 工程化的实战经验。如果这篇文章对你有帮助,欢迎搜索关注「字与码」,第一时间读到更多关于 LLM 后训练、强化学习和工程落地的内容。
**一句话结论:**RRL(Retrospective Replay-based RL)通过「价值模型识别 → 重放缓冲区 → 周期性重放」让模型记住训练早期的高质量探索尝试,解决 RL 训练越到后期越保守、越容易丢掉「好点子」的问题。
如果你最近关注 LLM 后训练,一定见过两个高频词:RLHF 和 PPO。它们把模型往人类偏好方向推,但也带来一个隐蔽的 bug:训练越到后期,模型越容易「变懒」——只愿意走安全路线,早期那些灵光一闪的好解法反而被遗忘了。
2025 年复旦的一篇 arXiv 工作(2504.14363)把这个现象拆开,提出了一种叫 RRL 的训练策略。它不换奖励函数,也不改模型结构,而是在训练循环里加了一个「好记忆回放器」。这篇文章用三张图解讲清楚它的基础概念、使用场景、现状和趋势,并给一点工程师视角的独立判断。
一、什么是 RRL?
RRL 全称 Retrospective Replay-based Reinforcement Learning,中文可译为「回顾式重放强化学习」。它不是一种新的模型架构,而是一套给在线 RL 训练「打补丁」的方法,目标只有一个:让模型在持续训练过程中,不会把早期探索出来的高质量样本弄丢。
关键前提
PPO 这类在线强化学习会一边采样、一边更新。训练早期策略还很「散」,容易冒出一些奇奇怪怪但效果很好的回答;到了后期策略收敛,这些「好点子」可能被新分布覆盖,再也采不到。RRL 就是要抢救它们。
通俗一点说:普通 RL 训练像一个人边做边学,很多初期灵光一闪的经验没有笔记,后面就忘了;RRL 则会在每个阶段把「高分经验」挑出来,写进笔记本,定期回头复习、重新验证、再拿去指导后续学习。
二、为什么需要 RRL?——好点子被遗忘
这个需求来自一个真实的现象,论文里叫它 exploration degeneration,即「探索退化」。
在 RLHF 的后半段,模型发现几条「稳定拿分」的套路后,就倾向于反复使用它们。这本来不是坏事,但如果某条早期回答虽然罕见、却真的能解决更难的问题,模型后期可能再也采样不到类似答案。下图是这个过程的直观示意:

图 1:传统在线 RL 训练中,早期高质量探索样本随策略收敛而被遗忘
具体表现通常有三种:
- **输出多样性下降:**模型开始复读相似句式,创造性回答变少。
- **长程任务卡住:**需要多步推理才能到达的「顿悟点」越来越少。
- **奖励高原:**平均奖励不再提升,却不是因为到了天花板,而是因为探索范围萎缩。
传统的解决思路包括加大 KL 散度惩罚、提高 temperature、加熵正则等。它们能缓解症状,但都没有真正「找回」那些已经被分布覆盖掉的好样本。RRL 的差异就在这里。
三、RRL 是怎么工作的?
RRL 的核心流程可以拆成四步:
-
价值模型识别(Value Model 打标签) 训练一个价值模型或利用现有奖励模型,对历史采样结果进行「事后打分」。重点不是打当前策略的答案,而是给早期样本重新评估:它们放到现在的标准下,值不值得学?
-
存入重放缓冲区(Replay Buffer) 把被价值模型判定为「高质量」的早期样本挑出来,存进一个独立缓冲区。它不是随机存,而是按价值分数或稀有度做优先级采样。
-
周期性重放(Replay) 每隔若干训练步,从缓冲区里采样一批「老好样本」,和当前在线采样数据混合,一起送入 PPO 更新。这样策略在收敛时仍能看到过去的优质探索。
-
重试与再评估(Retrospective Retry) 有些样本不是直接喂回去就完,而是让当前策略在这些老问题上「重试」一次,对比新旧答案,确保回放内容不会被过时标准污染。

图 2:RRL 四步循环——价值模型识别、入缓冲、周期重放、重试评估
所以 RRL 不是简单地把旧数据再训一遍,而是建立了一套「hindsight selection + replay」机制:先鉴别过去的好经验,再按当前标准重新利用,避免模型因为策略收敛而丢失探索红利。
四、RRL 与普通 PPO 的直观对比
如果只看奖励曲线,普通 PPO 和 RRL 在训练前半段可能差不多。差异主要出现在中后期:普通 PPO 的探索度会持续下滑,奖励进入高原;RRL 则因为周期性回放,保留了一波「高质量探索样本」,探索度和最终性能往往更高。

图 3:Vanilla PPO 与 RRL 的探索度与奖励曲线对比
论文的实验显示,在数学推理、代码生成等需要长程探索的任务上,RRL 相比标准 PPO 能带来几个百分点的最终性能提升。更关键的是,它的输出多样性指标下降得更慢——这意味着模型没有为了奖励而放弃探索。
五、RRL 适合哪些使用场景?
RRL 不是银弹,它在以下四类任务里最有价值:
场景一 · 长程推理与多步求解
数学证明、复杂代码、符号运算这类任务,往往需要模型经历多次「试错」才能抵达正确解。RRL 可以保留中间出现过的关键思路。
**案例:**训练代码模型时,一次早期生成的递归写法虽然很少出现,但比常规循环更高效。RRL 会在后期把它重新拉回训练分布,提升长程代码能力。
场景二 · 奖励稀疏且反馈延迟
如果只有最终答案对/错才算奖励,中间步骤没有明确信号,普通 PPO 很容易错过那些「方向正确但结果没蒙对」的尝试。
**案例:**在定理证明或逻辑谜题中,一条中间推导接近正确但最终一步算错的链,仍值得被价值模型识别并重放。
场景三 · 需要保持创造力的开放式生成
写诗、写文案、头脑风暴等任务,模型奖励高原往往伴随着输出趋同。RRL 能保留早期多样化的高质量样本。
**案例:**营销文案生成里,早期一批「角度刁钻但转化率高」的标题可能在后期消失,RRL 可以把它重新激活。
场景四 · 数据稀缺的小模型后训练
小模型参数容量有限,后训练数据又少时,每一次高质量探索都很珍贵。RRL 的回收机制能让有限数据被反复利用。
**案例:**在端侧 3B/7B 模型的垂直领域对齐中,RRL 相比标准 RLHF 更容易挖掘出少量样本里的隐藏价值。
相对的,RRL 在奖励信号密集、任务本身很窄、或在线采样成本极低的场景里,收益会被工程复杂度吃掉,不一定值得优先上。
六、现状与趋势
截至 2026 年中,RRL 仍处于「学术验证 → 工程落地」的过渡阶段。当前值得关注的几个方向:
- **与 GRPO / 组奖励结合:**DeepSeek-R1 把 GRPO 带火后,研究者开始把 RRL 的回顾机制嫁接到 group-relative 奖励上,降低对单独价值模型的依赖。
- **与课程学习(Curriculum Learning)联动:**按难度把早期样本分层回放,让模型既复习旧经验,又逐步挑战更难问题。
- **动态缓冲区管理:**如何决定哪些样本值得长期保留、哪些该淘汰,正在成为工程优化的关键,常见做法是按优势值、稀有度和时效性做加权。
- **多轮对话场景:**把 RRL 从单轮文本生成扩展到多轮对话、工具调用和代码 Agent,是接下来一年的应用热点。
一句话判断趋势:RRL 不会取代 PPO/GRPO,而会成为「在线 RL 训练的标准插件」——就像优化器里加 scheduler 一样自然。
七、工程师视角:RRL 的边界与工程化难点
看论文和真正把它塞进训练管线,是两件事。从工程落地的角度,我觉得 RRL 有几点必须提前想清楚:
- **价值模型本身的 bias 会传给回放样本。**如果你的奖励/价值模型已经偏好某种固定风格,RRL 会把这种偏好放大,反而加速收敛到单一模式。价值模型必须和策略同步更新,否则回放的是「过时标准」。我的判断是:RRL 的增益高度依赖于价值模型的质量,这部分基建比回放本身更关键。
- **缓冲区会吃掉显存和 IO 带宽。**当样本是长序列(代码、长思维链)时,维护一个大容量优先级缓冲区的成本不容忽视。实际做的时候,大概率需要按稀有度做稀疏存储、异步重放。
- **不是所有早期样本都值得救。**训练初期的噪声极大,不加筛选地回放等于往模型里倒垃圾。RRL 的精髓是「回顾式筛选」,而不是「无脑回放」。如果缺少可靠的价值信号,RRL 可能不如直接提高 temperature。
我的判断是:RRL 是方向正确的小补丁,不是颠覆式创新。未来真正决定它能否普及的,是框架级支持(比如 TRL、veRL 里能不能一键开)和它与长上下文、工具调用训练的结合效果。
八、总结
RRL 的核心价值,是把在线 RL 训练中容易被遗忘的高质量探索样本「抢救回来」:
- **解决什么问题:**RL 训练后期探索退化、好点子被分布覆盖。
- **怎么解决:**价值模型识别 → 重放缓冲区 → 周期性重放 → 重试再评估。
- **适合谁:**长程推理、奖励稀疏、创造性生成、小模型后训练。
- **趋势:**会成为在线 RL 训练的标准增强模块,与 GRPO、课程学习、工具调用训练结合。
如果你在跑 RLHF 或 GRPO 训练,发现模型越到后期越死板,输出开始「复读」,那 RRL 的思路值得你认真看看。它不复杂,却可能是让模型重新「开窍」的关键一步。
微信公众号
欢迎关注「字与码」
如果这篇文章对你有用,也欢迎在微信里继续关注后续更新。
X / Twitter
关注 @ax2_zicode
更即时的技术观察、新文章提醒和一些短想法会发在 X 上。