---
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|论文页面]]
