强化学习与扩散模型
在不远的过去,强化学习被各种唱衰,环境难以模拟、算法难以泛化、激励难以设计、应用场景有限等等。很多人认为强化学习很酷,但就是“没用”。但随着LLM的兴起,RL可以帮助LLM实现对齐人类偏好、提升生成质量、低成本Post Train,RL瞬间成为了一种杀手级应用。最近一段时间,无论是LLM、Diffusion、具身智能,都开始搞RL了。
RL这种范式,在Diffusion训练上可能极具潜力,我最近打算使用RL训练Diffusion,以提升美学质量和图文对齐程度,于是从头开始学习RL
强化学习
强化学习(reinforcement learning,RL)讨论的是智能体(agent)如何在环境中最大化奖励。智能体一直在与环境交互,智能体会评估当前状态,输出动作,获得奖励。
-
状态(State):在生成模型中可以定义为中间图像、latent
-
动作(Action):在生成模型中可以定义为预测噪声/方向
-
策略(Policy):扩散模型的参数
- on-policy:边做边学(学下棋时每一步都有老师来评价你下的好不好)
- off-policy:看别人怎么玩(学下棋时看别人的棋谱)
-
环境(Environment)
-
奖励(Reward)
- model free:没有显式的状态转移概率和奖励函数
- model base:有显示的可学习的状态转移函数和奖励模型(Reward model)
传统RL算法
Q-Learning
一种off-policy方法
Q表格是一张已经训练好的表格,行是状态数,列表示在该状态下该动作的平均总奖励,形如
| 动作1 | 动作2 | |
|---|---|---|
| 状态1 | 0 | -90 |
| 状态2 | 0 | 10 |
表格型方法:通过查Q表格,我们就可以判断某个状态应该使用什么动作。训练的过程就是将一张空的Q表格填满,用蒙特卡洛采样的方式更新Q表格
DQN
Deep Q-Network
Q-Learning的深度学习版本,用神经网络去模拟Q表格
策略梯度
Policy Gradient
策略(policy)是智能体的决策规则,是智能体在状态 $s$ 下采取行动 $a$ 的概率,由参数 $\theta$ 控制
$$
\pi_\theta(a|s)
$$
策略是参数化的 $\pi_\theta$,将长期奖励目标视为 $\theta$ 的函数,用梯度上升的方法优化它
直观含义是:
- 如果一个动作回报高,则增加这个动作的概率
- 如果一个动作回报低,则降低这个动作的概率
根据学习策略和环境策略,可以分为
- 同策略(on-policy):学习的策略和与环境交互的策略是同一个,如PPO
- 异策略(off-policy):学习的策略和与环境交互的策略可以不同,如Q-Learning、DQN
以学下棋为例,如果一个人每下一步棋,就有老师给他打分,这个棋局是自己下出来的,就是同策略。而如果是观察他人下棋,老师告诉你哪一步是好棋/坏棋,这就是异策略
PPO
近端策略优化(proximal policy optimization,PPO),目标是做保守的策略更新,用替换目标(surrogate objective)衡量新策略相对旧策略的改进,并用clipping或KL惩罚来防止更新幅度过大,兼顾学习速度和稳定性
以学下棋为例:
采样:下棋
打分:老师评价下的好不好
比较新旧策略:学生修改下法,并评估新旧策略变化 $r = \frac{\pi_{new}}{\pi_{old}}$
clipping:从“当头炮”改为“马先跳”,概率改动太大,舍弃这次
优势函数:老师不仅告诉学生这一步走的好/坏,还要告诉这步棋比平均水准高多少
更新策略:根据优势函数和概率比 $r$ ,微调自己的策略
GRPO
组相对策略优化(Group Relative Policy Optimization,GRPO),最早源自DeepSeek,用组内相对分数来构造优势,省去价值网络
以学下棋为例:
对于一个局面,列举了多种下法,如走炮、跳马、拱卒
老师评价相对分数,如走炮最好,然后是跳马,最差是拱卒
构建相对优势(走炮不需要知道自己具体多少分,只需要知道比平均值高,是正的,而拱卒的优势是负的)
用概率比 $r = \frac{\pi_{new}}{\pi_{old}}$ 更新策略
Reward Model
Reward Model根据输入输出类别,可以分为
- pointwise:输入一张图,输出标量分数
- pairwise:输入一组图片,输出相对分数
根据模型架构,可以分为
- CLIP + MLP:CLIP将文本prompt和图像提取feature,用MLP打分
- VLM + MLP:VLM将文本prompt和图像提取feature,用MLP打分
- 生成式VLM:VLM输入两张图像和prompt,生成yes/no和详细原因
| 工作 | 模型架构 | 开源数据集 | 数据量 |
|---|---|---|---|
| HPSv2 | CLIP + MLP | ymhao/HPDv2 | 798k对 |
| PickScore | CLIP + MLP | yuvalkirstain/PickaPic-rankings | 150k对 |
| ImageReward | BLIP + MLP | zai-org/ImageRewardDB | 137k对 |
| HPSv3 | VLM + MLP | MizzenAI/HPDv3 | 1M 对 |
| UnifiedReward | VLM | CodeGoat24/EvalMuse,CodeGoat24/HPD,CodeGoat24/OIP | 35k对 |
| UnifiedReward CoT | VLM | CodeGoat24/ImageGen-CoT-Reward-5K | 5k对 |
| RewardDance | VLM |
动机
训练Diffusion时,目标常常是MSE(噪声重建损失)和最大似然(log-likehood),但是这些训练目标并不一定符合人类审美
- 将人类偏好转化为可优化的信号
- 提供可用于RL的Reward
- 解决不可微指标的问题(如语义一致性、美学质量、肢体合理性)
理论上收集满足人类偏好的数据进行SFT,也可以用于优化模型,但是大规模收集人类反馈的成本过高。在有限量的偏好数据中训练Reward Model,在用RM做视觉模型的对齐,效率更高
挑战
- 奖励稀疏
- 模式坍塌
- Reward Hacking:Diffusion模型学会了最大化奖励函数,但没能真的学会你想要的能力,而是利用奖励函数的漏洞来作弊,取巧没学到真东西
一个经典的Reward Hacking,如果我想要模型生成一个梵高风格的画,结果一些模型生成了带有”梵高“签名的普通作品,这些普通作品可能会得到更高的Reward分数,导致模型没能成功学会生成梵高风格的画,而是学会生成梵高签名
HPSv2
《Human Preference Score v2: A Solid Benchmark for Evaluating Human Preferences of Text-to-Image Synthesis》2023.9
PickScore
《Pick-a-Pic: An Open Dataset of User Preferences for Text-to-Image Generation》2023.11
ImageReward
《ImageReward: Learning and Evaluating Human Preferences for Text-to-Image Generation》2023.12
动机
扩散模型在保真度和多样性上取得非常好的成绩,但是与人类偏好还是有差异
- 文本图像对齐:无法准确捕捉提示词中的数量、属性、空间关系(生成错误数量多猫、错误位置的猫)
- 人体结构畸形:肢体扭曲、多余、融合、残缺(多/少手指)
- 审美偏差:生成结果偏离主流人类审美(如诡异的光影、畸形的脸、廉价的卡通感、AI感)
- 毒性和偏见(如NSFW)
作者希望将RLHF(reinforcement learning from human feedback)的范式引入到视觉生成模型领域
创新点
- 基于BLIP的Reward模型
- 搭建一套偏好数据标注、处理流程
- ReFL训练Diffusion
数据
-
从DiffusionDB中挑选真实用户prompt,基于图算法和大模型判断prompt相似度,保证了prompt的多样性
-
人工标注了137k pair数据
标注流程:
- 提示词标注
- 将prompt进行预分类,如人物肖像类、风景类、动物类、静物 / 食品类、抽象艺术类
- 问题识别,剔除模糊不清、含有有害内容的数据
- 文本图像评分
- Alignment 对齐度
- Fidelity 逼真度
- Harmlessness 无害性
- 图像排序
Reward模型架构
基于BLIP,将图片和文本提取feature,用cross attention合并,用MLP输出分数
HPSv3
《HPSv3: Towards Wide-Spectrum Human Preference Score》2025.8
Reward模型架构
VLM提取文本和图像feature,MLP打分
Loss设计
Loss设计为二选一的偏好建模,希望可以把偏好的样本分数提高,次偏样本分数压低
作者提供了两个殊途同归的Loss,最小化KL散度和最大化BT似然
KL-divergence
相对熵/KL散度,用于衡量两个概率分布之间差距的度量
Bradley–Terry
Bradley–Terry 模型是一种用于建模成对比较偏好概率的经典统计模型
它假设每个样本 $i$ 有一个潜在的“实力”或“得分” $s_i$,然后用 softmax 形式建模偏好概率:
$$
P(i \succ j) = \frac{\exp(s_i)}{\exp(s_i) + \exp(s_j)}=\mathrm{sigmoid}(s_i-s_j)
$$
$$
\mathcal{L}{BT} = - \log P\theta(i \succ j)
$$
UnifiedReward
《Unified Reward Model for Multimodal Understanding and Generation》2025.3
动机
- 过去的RM往往是单一维度
- 视频和图像生成是有联系的,视频RM和图像RM应该可以统一
创新点
支持图像生成、图像理解、视频生成、视频理解的多模态RM
Prompt
Pairwise Image Gen
You are given a text caption and two generated images based on that caption. Your task is to evaluate and compare these images based on two key criteria: |
OneReward
《OneReward: Unified Mask-Guided Image Generation via Multi-Task Human Preference Learning》2025.8
UnifiedReward Think
《Unified Multimodal Chain-of-Thought Reward Model through Reinforcement Fine-Tuning》2025.8
Prompt
Q:
Which of the following images is better? Text Caption: [{caption}] |
A:
<think> |
Reward Dance
《RewardDance: Reward Scaling in Visual Generation》2025.9
动机:构建一个统一的、可缩放的的RM
创新点:
-
训练一个VLM,输入两张图片和prompt,输出yes/no,判断第一张图是否更好
- 作者还验证了RM和RLFT的scaling up,在不同参数量的InternVL上做实验,参数量越大效果越好
-
奖励分数设置为VLM预测yes的概率
-
相较于CLIP等模型,VLM更容易进行scale up,可以使用1B~26B的模型
-
可以引入CoT,除了简单的yes/no,还可以额外生成reason,以提高RM的可解释性
RM构建
CoT 数据构建
system_prompt = '''You will act as a professional image quality evaluator. |
RM测评
- In-Domain:从数据集中挑选2500对,这部分数据不会送进训练
- Out-Of-Domain:从开源测评集中挑选4000对
RLFT测评
RL方法
ImageReward
《ImageReward: Learning and Evaluating Human Preferences for Text-to-Image Generation》2023.12
ReFL
0 --> t --> 0
- 按正常流程生成loss、更新LDM模型参数
- 随机挑选中后期的timestep(30~40)
- 0到 $t$ 不反传梯度,只前向生成,从图像开始得到一个中间噪声
- 在第 $t$ 步,开启梯度,从 $x_t$ 开始不断反向去噪得到潜变量 $x_0$,并解码出图像 $z_i$
- 将prompt和 $z_i$ 输入到reward模型中,得到reward分数
- 根据reward分数更新LDM模型参数
$$
\hat{x}_0 = \frac{x_t - \sqrt{1 - \bar{\alpha}t},\hat{\epsilon}\theta(x_t, y)}{\sqrt{\bar{\alpha}_t}}
$$
Flow-GRPO
《Flow-GRPO: Training Flow Matching Models via Online RL》2025.7
动机
- 基于FlowMatching的图像生成模型(如Flux、SD3.5)占据主导地位,但仍在在复杂组合场景(如精确物体计数、空间关系和属性绑定)以及文本渲染上表现很差。
- online RL 在LLM上取得了巨大成功
- online RL 无法直接用于FlowMatching模型
创新点
将FlowMatching的ODE转为等价的SDE,引入随机性,以支持RL探索
测评集
- GenEval(组合图像生成)
- OCR(文字渲染)
- PickScore(人类偏好对齐)
- DrawBench、DeQA、ImageReward(美学)
- CLIP
Pref-GRPO
《Pref-GRPO: Pairwise Preference Reward-Based GRPO for Stable Text-to-Image Reinforcement Learning》2025.8
DiffusionNFT
《DiffusionNFT: Online Diffusion Reinforcement with Forward Process》
GRPO RL的问题
过去的GRPO风格的diffusion RL存在很多问题
前向不一致
forward inconsistency
扩散模型有前向扩散和反向生成两个过程,而GRPO只关注反向采样过程,使用了和前向过程不一样的噪声调度、时间分布、损失函数,训练的模型轨迹不再是原来前向扩散的逆过程
当前向不一致发生后,模型的每个反向过程更像是独立的高斯采样,而非真正的去噪声,最终退化为高斯噪声串接(cascaded Gaussians)。
求解器限制
Solver restriction
扩散模型的Loss(score function、去噪函数)和采样器是强绑定的,如果更换采样器,理论一致性就会破坏,造成数据偏移、输出失真
更高阶的求解器或者ODE求解器往往在采样效率和轨迹预测上有优势,但是由于求解器限制我们不能直接替换这些求解器
CFG
使用CFG的模型在训练和推理时需要两次前向计算(有条件和无条件),导致计算和内存开销翻倍
$$
\epsilon_\text{CFG} = \epsilon_\text{uncond} + w \cdot (\epsilon_\text{cond} - \epsilon_\text{uncond})
$$
目前的GRPO RL依赖于CFG,为了提升效率需要移除这部分
动机
提出一种新的RL范式,不在反向过程,而是直接在前向扩散过程上执行策略优化,以克服GRPO的种种问题