跳转到内容

输入关键词开始搜索

    DiffusionNFT(前向过程在线扩散强化学习)

    概念更新 2026-08-15置信度 medium#概念#强化学习#扩散模型#进阶#易过时

    一种在 flow-matching 前向训练目标中注入在线奖励的扩散模型后训练方法:用同一条件下的正负候选构造隐式改进方向,只依赖最终干净样本,不计算采样轨迹似然。

    DiffusionNFT 全称 Diffusion Negative-aware FineTuning,由 DiffusionNFT 原论文提出。它面向扩散/流匹配生成模型的在线强化学习:模型先对同一 condition 生成多个候选,外部 reward model 给候选打分,再把相对高分与低分样本转化为 flow-matching 监督中的正、隐式负更新。

    “NFT”中的 Negative-aware 不是额外训练一个显式负样本生成器,而是围绕旧策略预测构造两条分支:高优势样本让在线策略朝正分支移动,低优势样本让它偏向隐式负分支的反方向。

    把语言模型中的 GRPO/PPO 直接搬到扩散模型并不自然:

    1. 扩散采样要经过多步 ODE/SDE,完整轨迹的 policy likelihood 难算;
    2. 把确定性 ODE 改成探索用 SDE 会绑定特定 solver 与离散步;
    3. 逆采样过程上的 RL 更新可能与模型原本的前向训练目标不一致;
    4. 若训练依赖每一步 latent、noise 和 log-prob,存储与重算成本都很高;
    5. CFG 会让“策略究竟是哪一个条件分支”更复杂。

    DiffusionNFT 将奖励更新重新写回模型熟悉的 forward/flow-matching loss,只需要最终生成样本与 reward,因此可以使用黑盒 sampler,也不必保存完整轨迹。

    给定条件 cc,旧策略 πold\pi_{\mathrm{old}} 生成 KK 个候选 xix_i,外部奖励函数给出 rir_i。用 prompt 内均值作 baseline:

    Ai=rirˉ,rˉ=1Kj=1Krj.A_i=r_i-\bar r, \qquad \bar r=\frac{1}{K}\sum_{j=1}^{K}r_j.

    这与 GRPO 的“同题组内比较”直觉相近,但后续不是对 token log-prob 做 ratio clipping。

    先裁剪优势,再映射到 [0,1][0,1]

    Ai=clip(Ai,Amax,Amax),wi=clip(Ai2Amax+12,0,1).\tilde A_i=\operatorname{clip}(A_i,-A_{\max},A_{\max}), \qquad w_i=\operatorname{clip}\left(\frac{\tilde A_i}{2A_{\max}}+\frac12,0,1\right).

    • wiw_i 接近 1:候选相对更好,应强化;
    • wiw_i 接近 0:候选相对更差,应抑制;
    • wiw_i 接近 0.5:候选接近组内平均,更新较弱。

    记在线、旧和参考策略的 velocity prediction 为 vθv_\thetavoldv_{\mathrm{old}}vrefv_{\mathrm{ref}}。SwanVoice 采用的 NFT-style 分支为:

    vi+=βNFTvθ+(1βNFT)sg(vold),v_i^+=\beta_{\mathrm{NFT}}v_\theta+(1-\beta_{\mathrm{NFT}})\operatorname{sg}(v_{\mathrm{old}}),

    vi=(1+βNFT)sg(vold)βNFTvθ.v_i^-=(1+\beta_{\mathrm{NFT}})\operatorname{sg}(v_{\mathrm{old}})-\beta_{\mathrm{NFT}}v_\theta.

    其中 sg\operatorname{sg} 表示 stop-gradient。两条 velocity 被转换成 denoised estimate;wiw_i 决定正、负分支在 masked denoising loss 中的相对权重。

    只追 reward 容易牺牲原模型的音质、多样性或条件遵循,因此额外加入冻结参考策略正则:

    L=LNFT+λrefEvθsg(vref)22.\mathcal L=\mathcal L_{\mathrm{NFT}}+ \lambda_{\mathrm{ref}}\mathbb E\left|v_\theta-\operatorname{sg}(v_{\mathrm{ref}})\right|_2^2.

    它不是严格的策略 KL,但作用类似 trust region:允许模型朝奖励方向移动,同时保留 SFT 模型已有能力。

    SwanVoice 在 3,000 条真人对话上做后训练,奖励为:

    r=12(rphone+rsim).r=\frac12\left(r_{\text{phone}}+r_{\text{sim}}\right).

    • rphoner_{\text{phone}}:音素+声调序列的指数负 WER,直接针对错读、多音字和声调错误;
    • rsimr_{\text{sim}}:生成语音与参考 prompt 在冻结 speaker encoder 中的余弦相似度;
    • 只在需要生成的 target latent 区域计算 masked denoising loss;
    • 表现力、停顿和混响没有作为显式 reward。
    • 2025:Flow-GRPO 将 flow ODE 转为等价 SDE,用轨迹级在线 RL 优化 flow-matching 模型。
    • 2025:DiffusionNFT 提出基于 forward process 的 Negative-aware FineTuning,原论文主要在图像生成上验证。
    • 2026:原论文修订版被 ICLR 2026 接收为 Oral,并报告可与任意黑盒 solver 配合。
    • 2026:SwanVoice 将 NFT-style 更新迁移到 2B 语音 flow-DiT,用音素准确率与说话人相似度奖励做长篇 TTS 后训练。
    • “DiffusionNFT 就是扩散版 GRPO”:两者都可用组内相对奖励,但 GRPO 通常优化显式 policy ratio;DiffusionNFT 把偏好写入 forward flow-matching denoising objective。
    • “不保存轨迹就没有在线 RL”:在线性来自当前策略持续采样并由 reward 更新;是否保存整条 latent trajectory 是实现选择,不是在线/离线的定义。
    • “所有高层能力都会随 reward 一起变好”:只有 reward 覆盖的属性有直接优化证据。SwanVoice 的表现力和环境一致性改善只是定性观察。
    • “参考正则完全等价于 KL”:SwanVoice 使用 velocity prediction 的 L2 regularization;它约束漂移,但不是对生成分布计算精确 KL。
    • “DiffusionNFT 必然不需要 CFG”:原论文强调训练可 CFG-free;具体下游仍可像 SwanVoice 一样在推理阶段使用 staircase CFG。
    方法 奖励进入方式 是否需可微 reward 是否依赖完整采样轨迹 典型对象
    DiffRO(可微奖励优化) 直接对可微奖励反传 语音 reward optimization
    GRPO(组相对策略优化) 组内优势 + policy ratio 语言/扩散实现不同 LLM、扩散变体
    Flow-GRPO SDE 轨迹上的在线 policy update 通常需要 Flow Matching
    DiffusionNFT forward loss 中的正/隐式负分支 扩散与 flow 模型
    DPO(直接偏好优化) 固定偏好对的离线分类目标 语言模型为主