RLHF 中 PPO、GRPO 和 DPO 的 Epoch 与 Batch 概念
在 RLHF(Reinforcement Learning with Human Feedback)中,即使是强化学习方法,也依然存在 epoch 和 batch 的概念,只不过三种算法在“数据来源”和“如何使用 epoch/batch”上存在差异。
一、通用背景
RLHF 的训练底层依然是基于 梯度下降(SGD 或 Adam) 的神经网络优化,因此需要:
- 将数据切成 mini-batch;
- 每一轮遍历所有样本称为 一个 epoch。
只不过不同算法的数据来源和 epoch 内数据是否更新不同。
二、PPO(On-policy RLHF)
数据来源
- 每轮策略 πₜ 生成一批新样本(prompt → response → reward)。
- 奖励模型(Reward Model, RM)对这些 response 打分。
Batch
- 新生成的样本被切成多个 mini-batch。
- 每个 mini-batch 计算 PPO 的 loss(clipped objective、value loss、entropy loss)。
Epoch
- 对同一批样本通常训练几轮(3–5 个 epoch)。
- 训练轮数太多会违反 on-policy 假设,因为样本分布与当前策略 πₜ₊₁ 差距太大。
数据更新
- 每轮训练完成后丢弃样本,用新策略 πₜ₊₁ 重新生成数据。
- 所以 PPO 必须 不断生成新数据。
三、DPO(Direct Preference Optimization)
数据来源
- 使用离线标注好的偏好对数据:
(prompt, response_good, response_bad)。
Batch 与 Epoch
- mini-batch 和 epoch 与普通监督学习一样:
- 每个 epoch 遍历一次整个数据集;
- 多个 epoch 反复更新模型参数。
数据更新
- 数据是固定的,不需要重新生成。
- 本质上是监督学习式的训练。
四、GRPO(Group Relative Policy Optimization)
数据来源
-
离线生成大量
(prompt, response, reward)数据。 -
每个 prompt 下生成多个候选 response,形成一个 group:
-
每个 group 内的响应共享同一个 prompt,用 reward model 打分形成相对优势:
Ai,j=Ri,j−RˉiA_{i,j} = R_{i,j} - \bar{R}_iAi,j=Ri,j−Rˉi
Batch 与 Epoch
- 每次训练从静态数据池采样若干 group,组成 mini-batch。
- Epoch 表示对整个离线数据遍历一次。
- 可以循环训练很多 epoch,无需重新生成数据。
数据更新
- 数据是固定的静态样本。
- 属于 off-policy RLHF。
五、对比总结表
| 算法 | 数据是否动态 | Epoch 含义 | Batch 含义 | 可训练 epoch 数 | 类型 |
|---|---|---|---|---|---|
| PPO | ✅ 每轮新生成 | 在当前 batch 上重复更新几次 | 当前策略生成的一批样本 | 较少(避免分布偏差) | on-policy RL |
| DPO | ❌ 固定 | 遍历固定数据集 | 普通 mini-batch | 很多 | offline preference learning |
| GRPO | ❌ 固定 | 遍历离线 group 数据 | group-based mini-batch | 很多 | off-policy RL |
六、总结
- PPO:边生成边学,每轮必须生成新数据。
- GRPO:先生成大量静态数据,再离线反复训练。
- DPO:监督学习式,训练固定偏好数据。
Epoch 和 Batch 的概念在三者中都存在,只是数据来源和使用方式不同。
6586

被折叠的 条评论
为什么被折叠?



