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

61 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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