Files
myWiki/concepts/replay-buffer-rl-llm.md

2.5 KiB
Raw Blame History

title, created, updated, type, tags, sources
title created updated type tags sources
Replay Buffer 在 LLM RL 中的应用 2026-05-12 2026-05-12 concept
reinforcement-learning
llm-post-training
replay-buffer
arxiv:2503.18929

Replay Buffer 在 LLM RL 中的应用

Replay Buffertba 框架的核心组件,用于存储和采样 Searcher 节点生成的所有 (query, response, reward) 轨迹,使 Trainer 可以独立于生成速度进行训练。

架构

D_local (per Searcher)          D_global (shared)
┌─────────────────┐            ┌─────────────────────┐
│ (x, y1, r1)     │ ──sync──▶  │ x1: [(y1, r1, step),│
│ (x, y2, r2)     │            │      (y2, r2, step),│
│ ...              │            │      ...]            │
└─────────────────┘            │ x2: [...]            │
                               └─────────────────────┘
                                         │
                                   Trainer 采样
                               (recency + reward)

设计要点

1. 存储内容

每条轨迹存储:(query x, response y, reward r, trainer_step) ——其中 trainer_step 记录了生成时的训练步数,用于计算 off-policyness 程度。

2. 采样策略:reward-recency-sampling

  • Recency 优先:采样最近同步步骤添加的数据(近似 on-policy
  • 奖励优先:用 softmax(reward) 或均匀分布采样(鼓励探索)

参数 m 控制 recency 优先的概率。实验表明 $m = 0.5$0.6 效果最佳。

3. Buffer 大小

增大 buffer 容量可保留更多 off-policy 数据,在 red-teaming 任务中增加 buffer 大小提升了攻击多样性(牺牲部分毒性)。

为什么 LLM RL 需要 Buffer

传统的 PPO/GRPO 训练中生成一批数据后用一次即丢弃——数据利用率极低。Buffer 使得:

  • 数据复用:同一条轨迹可被多次训练(重要性随 staleness 增加而衰减)
  • 解耦速度:搜索和训练可独立节奏(搜索快于训练时 buffer 积累;训练快于搜索时 buffer 供给稳定)
  • 探索增强Buffer 包含历史上多样化的探索数据

相关概念