← 返回 PaperDaily 大模型与智能体

伯克利最新研究:扩散模型RL后训练总翻车?DiPOD一招“双重漂移”告别失效,稳如老狗

继2026年6月聊过自蒸馏扩散语言模型后,伯克利等机构再放大招!本文精准诊断出扩散模型RL后训练的“双重漂移”顽疾,并提出DiPOD框架巧妙根治。不仅理论扎实,在数独任务上首次实现零样本饱和,机器人控制训练也更稳了。

伯克利最新研究:扩散模型RL后训练总翻车?DiPOD一招“双重漂移”告别失效,稳如老狗
🐉 龙哥读论文知识星球来了!
公众号每日8篇拆解不够看?星球无上限更AI领域论文、资讯、招聘、招博、开源代码,一站式干货,每日2分钟刷完即赚! 👇扫码加入「龙哥读论文」知识星球,前沿干货、实用资源一站式拿捏~ xingqiu_header

龙哥推荐理由:
继2026年6月聊过自蒸馏扩散语言模型后,伯克利等机构再放大招!本文精准诊断出扩散模型RL后训练的“双重漂移”顽疾,并提出DiPOD框架巧妙根治。不仅理论扎实,在数独任务上首次实现零样本饱和,机器人控制训练也更稳了。


原论文信息如下:
论文标题:
Diffusion Policy Optimization without Drifting Apart
发表日期:
2026年06月
发表单位:
University of California, Berkeley (伯克利加州大学)
原文链接:
https://arxiv.org/pdf/2606.13795v1.pdf
开源代码链接:
https://github.com/Astro-Eric/DiPOD-release

1. 扩散模型RL后训练为何不稳定?揭秘“双重漂移”罪魁祸首

扩散模型在图像、视频、语言和机器人控制等领域大放异彩,但用强化学习(RL)对它们进行后训练却是一个老大难问题。传统的策略梯度方法依赖一个关键项——log-likelihood(对数似然),即动作在给定观察下的概率对数。然而对于扩散模型,这个量是难以直接计算的。于是研究者们引入了各种代理(proxy),最常用的是变分下界(ELBO)和变分上界(EUBO)。类似的方法包括FPO(Finite-difference Policy Optimization)和SPG(Surrogate Policy Gradient),它们用ELBO或EUBO来近似真实的log-likelihood,从而进行梯度更新。
但是,伯克利等机构的研究人员发现了一个关键问题:这种代理方法在训练过程中会逐渐跑偏,产生所谓的“双重漂移”(Double-Drift)现象。第一重漂移:随着RL更新,ELBO与真实log-likelihood之间的差距(即变分差距)逐渐变大;第二重漂移:一旦代理与真实值偏离,用代理计算的策略梯度方向也会偏离真实的策略梯度方向。这就好比原本你按着导航开车,结果导航地图慢慢过时了,它给你指的路越来越不靠谱,最后把你带沟里去了。
我们来看两个代表性方法的问题:

FPO(McAllister et al., 2025)直接使用ELBO的梯度来近似策略梯度。但ELBO的变化≠log-likelihood的变化:ELBO可能升高而log-likelihood反而下降(如果变分差距缩小得更多)。这在负优势样本上尤其危险:模型可以通过“作弊”——增大变分差距(破坏扩散模型结构)来降低ELBO,从而看似惩罚了坏动作,实际却破坏了模型的生成质量。

SPG(Wang et al., 2025)聪明地结合了ELBO和EUBO:对正优势样本用ELBO,对负优势样本用EUBO,保证目标函数是真实目标的上下界组合。虽然从目标函数角度看更安全,但梯度层面仍然不能保证一致性——只要变分差距不为零,代理梯度依然可能偏离真实梯度。

下图展示了真实实验中FPO的奖励曲线是如何先升后崩的——这正是双重漂移的恶果:
图1:DiPOD示意图。蓝色箭头表示DiPOD交替执行自蒸馏(保持ELBO紧贴)和策略梯度更新(保证回报提升),从而避免陷入漂移
图1:DiPOD框架示意图。与传统的代理方法(红色曲线,奖励先升后崩)不同,DiPOD通过自蒸馏(蓝色弯箭头)将模型拉回到“ELBO紧贴”状态,然后再执行策略梯度更新(蓝色直箭头),确保每次更新都是可靠的。
这就像开车时发现导航不准了,先停下来更新地图,然后再继续导航。DiPOD的思路正是如此——在梯度更新之间穿插“自蒸馏”步骤,让代理始终保持紧贴状态。
核心公式关系如下(ELBO与log-likelihood的差距非负):
公式:ELBO_θ(a_t|o_t) = log π_θ(a_t|o_t) - D_θ^L(o_t,a_t)
其中D^L是非负的变分差距。当模型完美训练时,D^L=0,ELBO紧贴log-likelihood。但RL更新会让D^L重新变大。

2. 防止漂移!DiPOD框架:在梯度更新中穿插自蒸馏

既然双重漂移的根源是代理与真实值的差距变大,那么最直接的解决思路就是:让代理始终保持在紧贴状态。DiPOD(Diffusion Policy Optimization without Drifting Apart)正是基于这一思想设计的框架。
DiPOD的核心操作是自蒸馏(Self-Distillation)。自蒸馏的目标是:在保持策略输出分布不变的前提下,最小化ELBO与log-likelihood之间的变分差距。具体来说,先固定一个参考策略π_ref(通常是当前策略的快照),然后最大化π_ref产生的轨迹上的ELBO。由于π_ref的分布固定,这个优化过程不会改变策略的实际输出分布,只会让扩散模型的内部表示更完美——类似于把地图数据更新到最新,但导航线路不变。
理想情况下,DiPOD交替执行以下两个步骤(见Algorithm 1):

步骤A(自蒸馏):在参考策略π_ref的rollout数据上最大化ELBO,使得变分差距D^L趋近于0。

步骤B(策略梯度更新):使用一个充分的(adequate)梯度估计器(即当ELBO紧贴时,估计器等于真实梯度估计器)进行策略更新,提升期望回报。

然后更新π_ref为当前策略,重复上述过程。这样每次策略更新时,代理梯度都紧贴真实梯度,从而避免了漂移。
为什么自蒸馏能保持策略分布不变?因为ELBO最大化只会让模型的后验逼近真实后验,而根据变分推理的性质,当ELBO达到最大值时,模型的前向生成分布与参考策略的生成分布完全一致——即输出分布不变。所以自蒸馏步骤是有益的“无损”操作。
下图(Figure 1)用参数空间的等高线直观展示了这一过程:蓝色梯度箭头保证局部策略提升,蓝色弯箭头(自蒸馏)把参数拉回到ELBO紧贴的等高线上,而不会改变期望回报。
图1(重复放置以贴近此处文本): DiPOD交替自蒸馏与策略梯度更新
图1(重复,方便阅读):DiPOD通过自蒸馏(蓝色弯箭头)保持ELBO紧贴,然后执行政策梯度更新(蓝色直箭头),确保每次更新都是可靠的。

3. 简单实用!一个ELBO正则项即可实现DiPOD核心思想

理想的自蒸馏需要每次迭代都收敛,这在实践中效率低下。DiPOD提出了一种非常优雅的近似:在每个batch的梯度更新中,直接加一个ELBO最大化正则项。也就是说,原本用代理梯度g_θ更新参数,现在改为:
θ ← θ + η·(1/m)∑[g_θ(o^i,a^i) + β·∇_θ ELBO_θ(a^i|o^i)]
其中β是一个控制正则强度的超参数。这个额外项实质上是利用当前batch的on-policy数据做了一个小自蒸馏步骤——它鼓励模型在保持rollout分布不变的条件下缩小变分差距。由于自蒸馏和策略梯度共享同一批样本,计算开销几乎可以忽略。
下面是DiPOD的完整实用算法(Algorithm 2):
    算法2: DiPOD(实用实现)
    输入: 充分梯度估计器g, 扩散策略π_θ, β, 学习率η, batch大小m
    输出: 优化后策略π_θ
    
    1. 初始化策略π_θ
    2. while 未收敛 do:
    3.   采样一批rollout B = {(o^i, a^i)}_{i=1..m}
    4.   θ ← θ + η·(1/m)∑_{i=1..m}[g_θ(o^i,a^i) + β·∇_θ ELBO_θ(a^i|o^i)]
    5. return π_θ
    请注意:这个实现与现有VI-based扩散RL算法(如FPO、SPG)只有一行代码的区别——在梯度上多加了一项。因此它可以作为一个“drop-in”插件,轻松集成到任何现成的diffusion RL训练流程中。在实验中,简单设置β=0.05就能获得显著提升,不需要精细调参。

    4. 效果拔群!扩散语言模型和连续控制任务上的显著提升

    DiPOD首先在一个Two-Token toy实验中验证了其对变分差距的控制能力。如图2所示,FPO和SPG的变分差距在训练中不断增长,而DiPOD(无论是加在FPO还是SPG上)都成功地将差距压制在极低水平。
    图2:Two-Token实验中变分差距D^L的变化曲线
    图2:在Two-Token任务中,FPO和SPG的变分差距随训练急剧增大,而DiPOD(FPO+DiPOD和SPG+DiPOD)始终将差距控制在接近零的水平。
    在更实际的扩散语言模型(dLLM)后训练任务上,DiPOD基于LLaDA-8B-Instruct模型,在GSM8K、MATH500、Countdown和Sudoku四个推理基准上进行了评估。结果如表1所示(蓝色数字表示相比基线提升):
    表1:扩散语言模型推理任务上的准确率对比
    表1:蓝色数字表示DiPOD相对于对应基线的提升。在Sudoku零样本设置中,DiPOD首次实现了100%的准确率(饱和)。Countdown任务上的提升尤其显著(+4.1% vs SPG)。评价协议遵循SPG(Wang et al., 2025)。
    图3展示了奖励曲线,DiPOD显著稳定了训练过程:
    图3:推理任务上的奖励动态曲线
    图3:在Countdown和Sudoku任务上,FPO和SPG的奖励曲线剧烈波动甚至崩溃,而DiPOD(红色和绿色曲线)始终保持稳定上升并达到更高水平。
    连续控制领域,DiPOD被应用于Unitree G1人形机器人的运动跟踪任务(来自FPO++)。任务需要机器人跟踪LAFAN数据集中的参考运动。图4展示了两个典型运动(舞蹈和跑步)的奖励与回合长度曲线:
    图4:人形机器人运动跟踪任务的奖励和回合长度曲线
    图4:在人形机器人运动跟踪中,DiPOD(FPO+++DiPOD)相比FPO++获得了更高的最终奖励和更长的存活回合长度,且训练过程更稳定。
    图6和7给出了全部6个运动的平均曲线,DiPOD在大多数任务上都优于基线:
    图6:人形机器人所有6个LAFAN运动跟踪任务的奖励曲线
    图6:全部6个运动跟踪任务的奖励曲线均值,DiPOD(橙色)在多数任务上表现更优。
    图7:人形机器人所有6个LAFAN运动跟踪任务的回合长度曲线
    图7:回合长度曲线显示DiPOD能有效延长机器人完成任务的时间,避免过早崩溃。
    论文还进行了β的消融实验(Table 3),结果表明β=0.05附近效果最好。
    表3:β消融实验
    表3:在Countdown上对β进行消融,β=0.05取得最好的最终准确率。

    5. 理论保证!证明DiPOD能收敛到近似最优解

    DiPOD不光效果好,还有坚实的理论背书。论文给出了定理3.1(非正式版本),大意如下:
    假设每个自蒸馏步骤都能在参考分布上达到ε-最优的ELBO值。那么选择足够小的学习率η,可以保证每次DiPOD策略更新都能提升期望回报,除非当前策略梯度已经小于O(√ε)。如果过程在某个自蒸馏后停止,则最终策略的梯度范数≤O(√ε),且变分差距≤ε。
    这意味着DiPOD能够收敛到一个近似的一阶安定点(first-order stationary point),同时保证扩散模型的变分差距非常小。理论证明依赖于一个关键引理:当变分差距很小时,代理梯度与真实梯度之间的偏差也被控制住。公式表达如下:
    转发文章 微博 X LinkedIn Facebook
    龙哥读论文 · PaperDaily

    本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。