PAN / JIANHAO
Published on

Flow-GRPO:从采样到梯度回传的完整逻辑

Authors

这篇文章从原有研究笔记迁移。目标不是背公式,而是把“模型如何自己生成、自己打分、再自己变好”这条链路走通。

Flow-GRPO 是什么

Flow-GRPO 让 Flow Matching 生成模型通过在线强化学习持续优化。传统监督微调是在固定数据上模仿答案;它则反复采样候选结果、根据奖励比较好坏,再向更优结果靠近。

传统 SFTFlow-GRPO
对齐标准答案对齐可定义的奖励
数据集决定上限奖励函数决定优化方向
离线训练采样与训练交替进行

生成端:Flow Matching

生成从噪声 x0x_0 出发,沿着连续的速度场抵达数据样本 x1x_1。模型在任意时间 tt 预测当前位置应当朝数据方向移动的速度:

LFM=Et,x0,x1[vθ(xt,t)(x1x0)2]\mathcal{L}_{FM} = \mathbb{E}_{t, x_0, x_1}\left[\|v_\theta(x_t,t) - (x_1-x_0)\|^2\right]

它学习连续 ODE 路径,因此可以用更少步骤产生候选结果。对强化学习而言,这很重要:每轮都要重新采样一组输出,推理成本决定训练是否可行。

强化端:组内相对优势

对同一个条件输入采样 GG 个候选结果,奖励模型给出 r1,r2,,rGr_1, r_2, \ldots, r_G。GRPO 不额外训练 critic,而是在这组候选内部标准化奖励:

Ai=rimean(r)std(r)+ϵA_i = \frac{r_i - \operatorname{mean}(r)}{\operatorname{std}(r) + \epsilon}

绝对奖励尺度不再主导梯度;模型只需要知道“这张结果在同一组中相对更好还是更差”。正 advantage 的轨迹被增加概率,负 advantage 的轨迹被降低概率。

训练链路

  1. 冻结旧策略并采样:旧模型从噪声生成一组候选,并保存各时间步的 log_prob
  2. 奖励建模:依据任务信号评价候选,例如文本一致性、偏好模型或任务成功率。
  3. 计算组内 advantage:将奖励中心化、归一化,得到稳定的相对学习信号。
  4. 重放训练轨迹:当前模型在相同噪声与时间步上重新计算 log_prob,构造新旧策略比率。
  5. 优化策略与约束漂移:目标鼓励更高 advantage 的轨迹,同时用 KL 或 clip 项限制一次更新过猛。

Loss 为什么这样写

LGRPO=E[min(rtA,clip(rt,1ϵ,1+ϵ)A)]+βLKL\mathcal{L}_{GRPO} = -\mathbb{E}\left[\min\left(r_t A, \operatorname{clip}(r_t,1-\epsilon,1+\epsilon)A\right)\right] + \beta\,\mathcal{L}_{KL}

其中 rtr_t 是当前策略与旧策略在该时间步的概率比。clip 阻止模型因为少数高奖励样本突然偏离;KL 项让更新保留原模型已经具备的生成能力。

对自动驾驶的启发

端到端驾驶不存在单一正确答案:同一场景可以减速、绕行或等待。Flow / Diffusion 提供多模态轨迹生成,GRPO 则提供“在合理候选里偏向更安全、更舒适、更合规方案”的后训练机制。真正困难的地方不在于把 GRPO 套上去,而在于奖励是否表达了安全、法规、舒适性与任务效率之间的权衡。