← 返回 2026-05-14

基于噪声追踪配对的整流流离线偏好优化 Offline Preference Optimization for Rectified Flow with Noise-Tracked Pairs

Yunhong Lu, Qichao Wang, Hengyuan Cao, Xiaoyin Xu, Min Zhang 📅 2026-05-10 👍 7 2026-07-13 08:36
DPO Offline RL Preference Optimization Rectified Flow Text-to-Image

PNAPO:把 prior noise 一并存进偏好数据集,用直线插值估计轨迹,并动态调节正则化,把 T2I 偏好对齐训练成本砍到 1/12。

前置知识

Rectified Flow (整流流)

一种连续正则化的生成模型,把数据 $x_0$ 和标准高斯噪声 $x_T$ 之间通过 ODE $\frac{dx_t}{dt}=v_\theta(x_t,t)$ 直连,前向路径可写成 $x_t=(1-t)x_0+tx_T$。其关键特性是采样轨迹近似一条直线,因此可以用端点插值近似中间状态,而不像传统扩散需要跑反向 SDE。

整篇 PNAPO 的理论根基就是「直线轨迹可插值」,没有这个前提,prior noise–image 插值估计中间 latent 就毫无根据。

DPO (Direct Preference Optimization)

Rafailov 等人 2023 年提出的 RLHF 替代方案,直接把 Bradley-Terry 偏好似然作为损失函数,无需单独训练 reward model 和 PPO。损失形如 $-\log\sigma\bigl(\beta\bigl(s_\theta(x_w,c)-s_\theta(x_l,c)\bigr)\bigr)$,其中 $s_\theta$ 是隐式奖励。

PNAPO 是 diffusion/RF 版本的 DPO,所有目标函数都是从 DPO 目标出发改写,必须理解 DPO 才能看懂为何 PNAPO 把数据集从三元组扩到六元组。

Diffusion-DPO (Wallace et al., 2024)

把 DPO 推广到扩散模型的方法。它对 (prompt, winner image, loser image) 三元组采样一个独立噪声 $\epsilon\sim\mathcal{N}(0,I)$,再用前向加噪 $q(x_t|x_0)$ 估计反向过程 $p_\theta(x_t|x_0)$,构成 DPO 损失。但因为扩散反向轨迹是弯曲随机的,这种「独立前向估计」与推理时的真实反向路径有失配。

PNAPO 直接对标 Diffusion-DPO,作者论证了 Rectified Flow 场景下,Diffusion-DPO 的估计方差更大,而 PNAPO 用保留的 prior noise+直线插值能得到更紧的上界。

研究动机

现成的 T2I 偏好数据集(如 Pick-a-Pic、HPDv2、RichHF、OPDv1)几乎都只存最终 winner/loser 两张图,把生成这张图所用的 prior noise 当作无关信息丢弃了。这对扩散类模型是致命的:扩散/RF 的生成天然是「一条从 $x_T$ 到 $x_0$ 的轨迹」,不同 prior noise 走完全不同的轨迹、产出完全不同的图。一旦 prior noise 丢了,Diffusion-DPO 这类方法就必须独立采一个新噪声、用前向加噪规则估计中间 latent——而扩散反向轨迹本来就是随机弯曲的,前向加噪估计和真实反向路径严重失配,带来三个具体后果:训练不稳定、credit assignment 低效、reward 的「决策空间」被人为放大。具体到工程上,Diffusion-DPO 在 SD3-M 上要花 ~249.6 GPU-hours、FLUX 上要 ~422.4 GPU-hours,门槛极高。

本文的目标是本文提出 PNAPO(Prior Noise-Aware Preference Optimization),目标是把偏好对齐做成:1)纯离线,无需在线 RL rollout,工程简单;2)轨迹忠实,利用 Rectified Flow 的近线性轨迹,端点条件化后用插值就能精确还原中间状态;3)训练高效,通过动态正则化同时处理「样本难度不均」和「训练进度不同步」两个 DPO 长期痛点。最终在 FLUX.1-dev 和 SD3-M 上把 GPU 训练时间降到 35.2 和 20.8 小时,约为 Diffusion-DPO 的 1/12,同时在 HPSv2.1、PickScore、ImageReward、Aesthetic、CLIP 和 GenEval 六个指标上全面领先。

与已有工作不同的是,作者切入角度是把「prior noise」从数据集构造阶段就纳入并保留,让数据集从 (prompt, winner, loser) 三元组升到 (prompt, winner-image, winner-noise, loser-image, loser-noise, reward-gap) 六元组。配合 Rectified Flow 的近线性轨迹,端点条件化下用 $x_t=(1-t)x_0+tx_T$ 即可近似反向中间 latent,KL 散度意义上比 Diffusion-DPO 的独立前向估计更紧。再加上 $\beta(\delta_r, n)$ 形式的动态正则化,把「reward gap 大的样本加速、训练后期拉回参考模型」两条机制合在一起,这是已有 diffusion-DPO 工作都没有同时解决的。

核心方法

PNAPO 整体思路分三步:先重新构造一个「带 prior noise」细粒度偏好数据集,再在 Rectified Flow 上把 DPO 目标用端点条件化 + 直线插值重新表达,最后引入依赖 reward gap $\delta_r$ 和训练步数 $n$ 的动态正则化系数 $\beta(\delta_r, n)$。直觉上:把生成图像时真正用到的那个 $x_T$ 留下来,比临时重新采一个独立噪声靠谱得多;RF 轨迹近线性意味着 $x_T\to x_0$ 的中间点几乎就是直线插值,可以直接代入 RF 速度场 $v_\theta$;正则化系数则根据「这一对比 winner 比 loser 好多少」和「训练到哪一步」来调节梯度幅度,既不让容易样本浪费更新,也不让训练后期把模型拉离参考太远。

核心创新有两点:1)数据集层面,把 prior noise 作为一等公民写入偏好样本,使轨迹身份 (trajectory identity) 不再丢失。2)优化层面,用 $D_{\mathrm{KL}}\bigl(q(x_{1:T-1}|x_0,x_T)\|p_\theta(x_{1:T-1}|x_0,x_T)\bigr)\le D_{\mathrm{KL}}\bigl(q(x_{1:T}|x_0)\|p_\theta(x_{1:T}|x_0)\bigr)$ 这一不等式严格证明了端点条件化估计在 KL 意义上更紧,进而推导出带 prior noise 的插值型 DPO 损失。已有的 diffusion-DPO 把 $p_\theta(x_T|x_0)$ 当作独立标准高斯,相当于把轨迹信息全丢;D3PO 用 DDIM 反向迭代估计,代价是大量前向推理。PNAPO 既保留轨迹又只做廉价插值。

方法步骤详情

**Step-1 数据准备**:从 DiffusionDB (180 万 prompt) 出发,先用 Detoxify 做 NSFW 过滤(阈值 0.1,保留 83.67%),再做 Jaccard 文本去重 + ViT-H/CLIP 语义去重(相似度阈值 0.8),最后用 KNN 聚类(K=100,每簇 200 prompt)平衡语义覆盖,得到 2 万条干净多样的 prompt。 **Step-2 生成 noise-image pair**:把 prompt 喂进待微调的 RF 模型本身 (FLUX.1-dev 或 SD3-M),Euler scheduler、CFG=1、50 步采样,对每个 prompt 从 $\mathcal{N}(0,I)$ 采一对噪声 $(x_T^w,x_T^l)$,生成两张图 $(x_0^w,x_0^l)$。和传统数据集的关键差异:把这对 prior noise 一起存下来,于是样本变成 (prompt, $x_0^w$, $x_T^w$, $x_0^l$, $x_T^l$, $\delta_r$) 六元组 $\mathcal{D}_{\mathrm{PNAPO}}$。用模型自己当基础是为了稳定偏好对齐。 **Step-3 打分**:用预训练 HPSv2.1 计算 $\delta_r=r_\theta(x_0^w)-r_\theta(x_0^l)$ 作为连续奖励差,既是伪标签也是数据清洗器。 **训练目标**:在 $\mathcal{D}_{\mathrm{PNAPO}}$ 上最小化 $L_{\mathrm{PNAPO}}(\theta)=-\mathbb{E}\log\sigma\bigl(-\beta(\delta_r,n)\bigl(s_\theta(x_0^w,x_T^w,c)-s_\theta(x_0^l,x_T^l,c)\bigr)\bigr)$,其中 $s_\theta(x_0^*,x_T^*,c)=\|(x_T^*-x_0^*)-v_\theta(x_t^*,t,c)\|_2^2-\|(x_T^*-x_0^*)-v_{\mathrm{ref}}(x_t^*,t,c)\|_2^2$,$x_t^*=(1-t)x_0^*+tx_T^*$。 **动态正则化**:$\beta(\delta_r,n)=\beta\cdot f(\delta_r)\cdot g(n)$,其中 $f(\delta_r)=2\sigma(\delta_r)-1\in[-1,1]$ 随奖励差单调逼近 1,$g(n)$ 在 $n\le n_1$ 取 1、$n\ge n_2$ 取 $1/2$,中间用余弦退火。直觉:margin 为负(winner 还不够好)时,$\delta_r$ 越大 $f$ 越大 $\beta$ 越大,梯度更激进;训练后期 $g$ 减小,把模型拉回参考防止漂移。

技术新颖性

技术新颖性体现在三处:1)数据 schema 升级到六元组,使得 trajectory identity 不再被丢弃,这是和所有 diffusion-DPO 数据集的根本区别;2)严格证明了端点条件化估计的 KL 上界更紧(式 12),并由此导出基于插值的 score 函数 $s_\theta$——这个 $s_\theta$ 用 $x_T-x_0$ 作「速度目标」、$x_t$ 作「查询点」,是 RF 专享的写法;3)把 reward-gap-aware 动态正则化从算法层面嵌入损失,让 PNAPO 同时获得「按样本难度缩放梯度」和「按训练进度缩放正则化」两项功能,相比固定 $\beta$ 在 FLUX 上 PickScore 从 22.97 提升到 23.19,HPSv2.1 从 30.84 提升到 31.71(表 4/5)。

Comparison of PNAPO versus DPO baselines. PNAPO employs prior noise with $x_T$-$x_0$ interpolation, surpassing D3PO by avoiding iterative reverse processes. Dynamic regularization leverages $\delta_r$ reward gaps and training step $n$.
Figure 3: Comparison of PNAPO versus DPO baselines. PNAPO employs prior noise with $x_T$-$x_0$ interpolation, surpassing D3PO by avoiding iterative reverse processes. Dynamic regularization leverages $\delta_r$ reward gaps and training step $n$.
Qualitative ablation comparison of our proposed improvements.
Figure 5: Qualitative ablation comparison of our proposed improvements.
Preference Dataset samples generated by FLUX.
Figure 6: Preference Dataset samples generated by FLUX.
Preference Dataset samples generated by FLUX.
Figure 7: Preference Dataset samples generated by FLUX.

实验结果

**主表 2**:在 HPDv2 (3200 prompt) 和 OPDv1 (7459 prompt) 两个测试集、五种 reward model 上,PNAPO-FLUX 在 PickScore 达到 23.19(FLUX 基线 22.95,DPO-FLUX 22.97)、HPSv2.1 达到 31.71(基线 30.50,DPO-FLUX 30.84)、ImageReward 1.217(基线 1.175)、Aesthetic 6.475(基线 6.299)、CLIP 34.71(基线 34.05)。PNAPO-SD3-M 类似全面领先,HPSv2.1 从 30.75 提升到 31.62,ImageReward 从 1.306 提升到 1.387。**win-rate**:在 OPDv1 上 PNAPO-FLUX 对 DPO-FLUX 的 HPSv2.1 win rate 84.6%,对 IPO-FLUX 81.1%,对 SFT 90.9%,对 FLUX 基线 84.7%。 **GenEval 表 3**:PNAPO-SD3-M overall 0.73(SD3-M 0.68,DPO 0.69,CaPO 0.71),相对提升 +7.4%;PNAPO-FLUX overall 0.69(FLUX 0.65,DPO 0.66),相对提升 +6.2%;细分到 Count(计数)维度提升最大:SD3-M 0.56→0.71,FLUX 0.72→0.76。 **算力表 1**:PNAPO-FLUX 仅需 35.2 H800 GPU-hours,Diffusion-DPO 需要 422.4,节省 12 倍;PNAPO-SD3-M 20.8 vs Diffusion-DPO 249.6,同样约 12 倍。FLUX 用 LoRA (rank=32),SD3-M 用全参数微调。 **消融表 4**:单加 prior noise(去掉动态正则化)PickScore 23.06、HPSv2.1 31.08;单加动态正则化(去掉 prior noise)PickScore 23.00、HPSv2.1 30.96;两者结合(完整 PNAPO)PickScore 23.19、HPSv2.1 31.71;DPO 基线 PickScore 22.97、HPSv2.1 30.84。证明两个创新点都能独立贡献。 **正则化消融表 5**:固定 $\beta$ PickScore 23.06;$\beta\cdot f(\delta_r)$ 23.16;$\beta\cdot g(n)$ 23.09;完整 $\beta(\delta_r,n)$ 23.19。 **超参表 7**:$(n_1,n_2)=(1000,2000)$ 最优,PickScore 23.19;调到 $(500,2000)$ 退到 23.01,证明训练进度调度需要适度退火而非激进提前。 **用户研究图 4**:10 名参与者、每人对 20 对随机抽样的图做总偏好、视觉吸引、文本对齐三项评估。PNAPO-FLUX 对 FLUX 基线在整体偏好上 56%、视觉吸引 72%、文本对齐 52% 胜出。 **附加表 8**:在 Diffusion-DB 自建测试集(3000 prompt)上 PNAPO-FLUX 几乎所有 reward 中位数/均值都拿第一,HPSv2.1 median 34.327 vs FLUX 33.716、Aesthetic 6.473 vs 6.286。

Computational cost comparison. We report the NVIDIA H800 GPU hours required for training our PNAPO and the Diffusion-DPO on SD3-M and FLUX.
Table 1: Computational cost comparison. We report the NVIDIA H800 GPU hours required for training our PNAPO and the Diffusion-DPO on SD3-M and FLUX.
Quantitative Comparison. We utilize HPDv2 and OPDv1 prompt datasets to generate images with both SD3-M and FLUX. Each reward model is evaluated, presenting median reward score (Score) alongside win-rate (WR) against baselines.
Table 2: Quantitative Comparison. We utilize HPDv2 and OPDv1 prompt datasets to generate images with both SD3-M and FLUX. Each reward model is evaluated, presenting median reward score (Score) alongside win-rate (WR) against baselines.
GenEval Evaluation. PNAPO-SD3-M and PNAPO-FLUX on the T2I benchmark GenEval.
Table 3: GenEval Evaluation. PNAPO-SD3-M and PNAPO-FLUX on the T2I benchmark GenEval.
Ablation study for our improvements.
Table 4: Ablation study for our improvements.
Ablation study on regularization.
Table 5: Ablation study on regularization.
Ablation study on reward models.
Table 6: Ablation study on reward models.
Ablation study on hyperparameters.
Table 7: Ablation study on hyperparameters.
Prior Noise Matters. Compared to FLUX, our PNAPO-FLUX generates images with superior text-image alignment, enhanced visual aesthetics and realism, particularly in resolving FLUX's characteristic background blurring issues.
Figure 2: Prior Noise Matters. Compared to FLUX, our PNAPO-FLUX generates images with superior text-image alignment, enhanced visual aesthetics and realism, particularly in resolving FLUX's characteristic background blurring issues.
User Study and Qualitative Comparison. Top: human evaluations show PNAPO-FLUX significantly outperforming DPO-FLUX and base FLUX. Bottom: qualitative comparisons between PNAPO and Diffusion-DPO on FLUX and SD3-M.
Figure 4: User Study and Qualitative Comparison. Top: human evaluations show PNAPO-FLUX significantly outperforming DPO-FLUX and base FLUX. Bottom: qualitative comparisons between PNAPO and Diffusion-DPO on FLUX and SD3-M.
查看结构化数据
任务指标本文基线提升
HPDv2 PickScore PickScore median 23.19 22.95 (FLUX base), 22.97 (DPO-FLUX) +0.24 over FLUX, +0.22 over DPO-FLUX
HPDv2 HPSv2.1 HPSv2.1 median 31.71 30.50 (FLUX), 30.84 (DPO-FLUX) +1.21 over FLUX, +0.87 over DPO-FLUX
OPDv1 HPSv2.1 HPSv2.1 median 32.10 30.74 (FLUX), 30.79 (DPO-FLUX) +1.36 over FLUX, +1.31 over DPO-FLUX
OPDv1 Aesthetic Aesthetic median 6.692 6.550 (FLUX), 6.548 (DPO-FLUX) +0.142 over FLUX, +0.144 over DPO-FLUX
GenEval (SD3-M backbone) Overall 0.73 0.68 (SD3-M), 0.71 (CaPO) +7.4% relative over SD3-M, +2.8% absolute over CaPO
GenEval (FLUX backbone) Overall 0.69 0.65 (FLUX), 0.66 (DPO-FLUX) +6.2% relative over FLUX, +4.5% absolute over DPO-FLUX
FLUX 训练算力 H800 GPU-hours 35.2 422.4 (Diffusion-DPO) 12x reduction
SD3-M 训练算力 H800 GPU-hours 20.8 249.6 (Diffusion-DPO) 12x reduction
用户研究 Overall preference 56% 44% (FLUX) 10名评估者 × 20对随机抽样

局限与改进

作者在附录 D.2 明确承认两点:1)只能优化「用自己生成的 noise-image pair」,所以 FLUX 生成的数据不能拿来微调 SD3-M,反之亦然——因为不同模型的 prior noise 分布不同。这等于把 PNAPO 限定为「on-distribution self-improvement」,对跨模型迁移是封闭的。2)Diffusion-DB 的 prompt 缺乏连贯性,会限制高质量生成的天花板,作者打算用 MLLM 做 prompt 改写。我自己的观察还有:3)实验只覆盖 FLUX 和 SD3-M 两个 RF 模型,没有在 SD3.5-L、Wuerstchen、Stable Cascade 等其他 RF/flow-matching 架构上验证泛化性;4)虽然 GenEval 上的提升在 Count、Two-object 等维度很显著(SD3-M 0.56→0.71),但 Position 维度几乎不动(0.32→0.32),说明 PNAPO 在空间关系理解上的贡献有限;5)reward 模型完全依赖 HPSv2.1,而表 6 显示换成 Aesthetic 反而美学指标高(6.509)但 PickScore 下降,存在 reward hacking 风险;6)β_FLUX=2000、β_SD3-M=5000 这种超参是手工调的,没有自动搜索,跨模型迁移需要重新调。

独立分析的弱点

**弱点 1:跨模型不可迁移**。如附录 D.2 所述,FLUX 生成的 noise-image pair 不能用于 SD3-M 微调,反之亦然。这意味着每次换基础模型都要重新跑 Step-2 生成数据,浪费算力。改进方向:可以借鉴 distribution matching 的思路,先把不同模型的噪声分布用一个 normalizing flow 或 adversarial 对齐模块映射到统一空间,再共享数据。 **弱点 2:Position / spatial reasoning 改进有限**。表 3 中 PNAPO-SD3-M 的 Position 从 0.32 到 0.32 没动,FLUX 从 0.20→0.24 也只动 0.04。说明现有数据集中「空间关系偏好」样本不够。改进方向:在 prompt 筛选阶段加入空间关系关键词的过采样,或在 reward model 里混合一个专门的空间打分器。 **弱点 3:reward model 选择敏感**。表 6 显示 HPSv2.1 训练后 PickScore 23.19,Aesthetic 训练后 PickScore 23.10、但 Aesthetic 6.509 比 HPSv2.1 的 6.475 还高——典型的 reward hacking 征兆。改进方向:引入多奖励 ensemble 或对抗性 reward shaping,避免单一 reward 主导优化方向。 **弱点 4:固定超参 $(n_1, n_2)$ 不能自适应**。表 7 显示 $(500,2000)$ vs $(1000,2000)$ vs $(1000,3000)$ 之间 PickScore 波动 0.18,说明这个调度很脆。改进方向:让 $n_1,n_2$ 随 loss 曲率或 reward 饱和度自动调节,类似 cosine warmup with restarts。

未来方向

作者明确提到的方向:1)扩展到 online 范式,把 PNAPO 当作 offline initializer 再接在线 RL 微调;2)用 MLLM 做 prompt 对齐和改写,把低质 prompt 重写后再喂给 pipeline;3)把动态参数 $(n_1,n_2,\beta)$ 做成自适应而非人工设定。基于本文成果可延伸的方向还包括:4)把「prior noise tracking」思想推广到视频 RF 模型(Step-Video-T2V、Wan 等),那里轨迹长度更长、reward 更稀疏,可能收益更大;5)把 RF 直线特性作为归纳偏置,结合 RLHF 做 on-policy 校正,看能否进一步提升 alignment;6)扩展到 discrete diffusion / masked generative models(BORSO 等已迈出第一步),研究 trajectory identity 概念在离散状态空间下的等价物;7)作为安全对齐工具,把 reward gap 大且方向相反(人类偏好 vs HPSv2.1)的样本用于 red-teaming。

复现评估

**开源情况**:论文未给出代码链接,但附录 E.1 详细列出了全部超参:8×H800 GPU、AdamW、lr=1e-6、500-step linear warmup、CFG=1、50 sampling steps、FLUX LoRA rank 32、SD3-M 全参数微调、gradient accumulation 8。**数据**:从 DiffusionDB (180万 prompt) 经 Detoxify (阈值 0.1) + Jaccard (0.8) + CLIP cosine (0.8) + KNN (K=100, 200/簇) 处理后保留 20k prompt,每 prompt 采一对噪声生成两张图。**算力门槛**:FLUX LoRA 35.2 GPU-hours ≈ 不到 5 块 H800 跑一天,比 Diffusion-DPO 的 422.4 GPU-hours 友好得多;SD3-M 全参数 20.8 GPU-hours 更轻量。**复现难度**:中等偏易。RF 公式和 DPO 损失都是经典组件,插值估计的代码量不大;数据集构造需要写完整的 prompt 清洗 + 配对生成 pipeline,但因为只跑一次(offline),整体可以接受。最大的不确定性是 HPSv2.1 评分在不同实现下的微小差异,以及 KNN 聚类随机种子对 prompt 覆盖的影响。建议复现时先在小规模 2000 prompt 上做 sanity check,再扩展到 20k。