on policy / off policy RL的过程
off policy RL过程第一阶段:数据准备(离线生成,仅此一次)在这个阶段,参考策略,(即你训好的SFT模型)被冻结(参数不动):输入:准备大量高质量的 Prompt。生成(也被叫做采样,rollout):加载参考策略,,针对这 些Prompt,每一条生成 k 条回复(Response)。注:生成 1 条是基础(如离线 PPO/DPO),生成 k 条(如 是为了做组内相对比较(如 GRPO)。计算并存储(关键!):把生成出来的 回复文本、以及该回复在 参考策略 下的生成概率(log-prob),连同 Prompt 一起,全部存入硬盘,形成一个静态的 JSONL 数据集。计算奖励:如果已经有 Ground Truth(标准答案),直接算分(0/1);如果有 Reward Model,则加载 RM 给这批回复打分。奖励值(Reward)也一并存入数据集。第二阶段:训练循环(更新 Actor 模型现在,你从硬盘里加载刚才存好的那 10 万条静态数据,开始训练新的 Actor。注意,在整个训练过程中,不再产生任何新的回复!训练循环的每一步(Batch 迭代)是这样的:从硬盘采样:随机取出一个 Batch(比如 128 条)的固定数据(包含 Prompt、旧回复、旧概率logπref、奖励 R)。前向传播计算当前概率:把 Batch 里的 Prompt + Response 喂给当前正在训练的 πθ,算出当前模型生成这条回复的概率 logπθ。这步的必要性:当你开始训练 π θ 时,θ 在每一轮迭代都在变(梯度下降)。为了知道“此时此刻”的 π θ 有多大概率生成这句话,你必须用最新的 θ 重新算一遍。计算重要性采样(IS)权重: