--- title: "Replay Buffer 在 LLM RL 中的应用" created: 2026-05-12 updated: 2026-05-12 type: concept tags: ["reinforcement-learning", "llm-post-training", "replay-buffer"] sources: ["arxiv:2503.18929"] --- # Replay Buffer 在 LLM RL 中的应用 **Replay Buffer** 是 [[tba|TBA]] 框架的核心组件,用于存储和采样 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 包含历史上多样化的探索数据 ## 相关概念 - [[tba|TBA]] — 框架实现 - [[asynchronous-rl-llm]] — 异步 RL 范式 - [[searcher-trainer-decoupling]] — 架构模式 - [[reward-recency-sampling]] — 采样策略 - [[bartoldson-tba-2025|论文页面]]