DARE:扩散大语言模型对齐与强化执行器 DARE: Diffusion Large Language Models Alignment and Reinforcement Executor
统一扩散大语言模型后训练与评估的开源框架,支持多种模型家族和RL算法
前置知识
扩散语言模型 (dLLMs)
扩散语言模型采用迭代去噪而非自回归生成的方式。对于掩码扩散,通过逐步恢复被 掩盖的 token 来生成文本,使用负证据下界 (NELBO) 损失:$\mathcal{L}_\theta = -\frac{1}{L}\sum_{\ell=1}^L \mathbb{I}[x_\ell^t = \text{}] \log p_\theta(x_\ell^0|x^t)$。对于块扩散,序列被分成连续的块,块内使用扩散生成,块间使用自回归。
本文的核心研究对象,理解其与前向/反向过程、ELBO 损失的关系是掌握 DARE 框架设计的基础
强化学习对齐 (RL Alignment)
通过奖励信号优化语言模型的策略,使其生成更符合人类偏好的输出。典型的 PPO 风格流程包括:rollout 生成、奖励计算、优势估计、策略更新。dLLMs 的特殊性在于需要处理去噪轨迹而非单条解码路径,以及 ELBO 风格的似然代理。
DARE 集成了多种 dLLM 特定的 RL 算法,理解 RL 流程是理解框架抽象和算法差异的关键
注意力后端优化
针对不同计算模式优化的注意力实现。eager 是基础实现,sdpa (scaled dot product attention) 是 PyTorch 内置优化,FlashAttention 通过减少内存访问加速。varlen 版本支持变长序列,避免 padding 计算。Fast-dLLM 专门优化 dLLM 的去噪过程。
DARE 的核心系统优化,理解训练和 rollout 的不同瓶颈是理解其解耦设计的前提
研究动机
当前扩散大语言模型的开源生态高度碎片化。大多数基于 dLLM 的强化学习方法都作为特定论文的代码仓库发布,每个都有自己独特的模型分支、rollout 实现、奖励接口和评估脚本。这种碎片化造成了三个严重问题:首先,它减慢了研究迭代速度,因为整合新模型或目标需要重新实现周围的基础设施;其次,它使跨论文比较不可靠,因为算法差异与执行和评估差异纠缠在一起;第三,它提高了研究人员的工程门槛。这个系统缺口不仅不能通过直接重用 LLM RL 框架来解决,反而变得更加重要。大多数 LLM 后训练流水线假设从左到右生成、单条解码轨迹上的序列对数概率,以及为自回归服务构建的 rollout 引擎,而 dLLMs 需要扩散感知的前向和反向过程、去噪状态似然代理,以及模型家族特定的 rollout 后端。
本文的目标是本文的目标是构建一个统一的框架,将扩散大语言模型的后训练和评估整合到一个开源栈下,涵盖掩码扩散和块扩散语言模型家族。DARE 旨在将监督微调、参数高效微调、偏好优化和多种 dLLM 特定的强化学习算法集成到共享的执行流水线中,同时提供广泛的算法覆盖、可复现的基准评估和实用的加速优化。
与已有工作不同的是,本文的独特切入点是从系统层面解决 dLLM 后训练的碎片化问题,而不是提出新的优化目标。DARE 将算法比较的单位从'论文加定制代码库'变为'共享执行器中的算法',通过将算法特定逻辑与共享工作流隔离,使比较更加公平。更重要的是,DARE 明确区分了训练和 rollout 的优化路径,针对 MDLMs(双向注意力)和 BDLMs(半自回归)引入不同的执行约束,这是之前框架未曾探索的设计空间。
核心方法
DARE 的整体设计思路是作为开放 dLLM 模型、分布式训练后端和标准化基准栈之间的可重用执行层。框架遵循三个原则:在一个接口下同时支持掩码扩散和块扩散模型,将算法特定逻辑与共享工作流隔离,将评估作为框架的一部分而非下游的附加项。实现上,DARE 建立在 verl(用于分布式训练)和 OpenCompass(用于评估)之上,添加了 dLLM 特定的 actor、rollout、奖励和模型包装器。关键设计选择是保持外层执行骨架共享,并将定制限制在真正模型或算法特定的部分,这显著降低了集成新兴 dLLM 范式或算法的工程成本。
DARE 的核心创新是将 dLLM 后训练流程抽象为 worker、dataflow 和 workflow 三个层次。Workers 捕捉后训练中的主要功能角色,包括 rollout、actor、奖励模型或验证器,以及可选的参考策略和评论家。Dataflow 描述提示、响应、奖励信号、扰动轨迹和对数概率信号在这些 workers 之间的流动。Workflow 描述外层优化循环本身,包括 rollout(反向过程)、奖励计算、需要时的前向过程、对数概率重计算、RL 目标估计和 actor 更新。这个抽象使得不同模型、算法和任务在高层看起来非常相似,同一个执行器可以承载多个 dLLM 家族,因为改变的主要是一小部分模型感知或算法感知的挂钩点,而不是外层训练结构。
方法步骤详情
DARE 的方法步骤从用户角度可以分为:(1) 选择模型家族,支持 LLaDA、Dream 等掩码扩散模型和 SDAR、LLaDA2.x 等块扩散模型;(2) 选择后训练方法,包括 SFT/PEFT 或 RL 算法(VRPO、D1、Coupled-GRPO、MDPO、CJ-GRPO、SPG、BGPO、EBPO);(3) 配置执行环境,框架自动选择合适的训练和 rollout 注意力后端(如 MDLMs 使用 Fast-dLLM + FlashAttention 进行 rollout,使用 varlen FlashAttention 进行训练);(4) 执行训练,共享的 PPO 风格数据流包括 rollout 生成、奖励计算、旧策略和可选参考策略对数概率重计算、优势或回报估计、actor 或评论家更新;(5) 使用集成的 OpenCompass 评估平台进行基准测试,覆盖 MMLU、GSM8K、MATH、HumanEval 等多种评估任务。算法差异通过挂钩点实现,指定前向腐蚀过程、轨迹构建规则、优化中使用的似然估计器或边界,以及最终的策略损失。
技术新颖性
DARE 的技术新颖性体现在多个层面。首先,它首次提出了针对 dLLMs 的统一后训练框架,将之前分散在多个独立代码库中的算法(如 D1、Coupled-GRPO、MDPO、CJ-GRPO、SPG、BGPO、EBPO)整合到一个共享执行器中。其次,DARE 明确识别并优化了训练和 rollout 的不同瓶颈,对于 MDLMs 将训练和 rollout 的注意力后端解耦,rollout 使用 Fast-dLLM 获得 KV-cache 重复使用和部分固定状态上的重复去噪,actor 更新使用 packed 序列和 varlen 后端减少 padding 开销,实现了约 4× 的 RL 流水线加速。对于 BDLMs,使用 LMDeploy 或 SGLang 加速 rollout,训练使用块感知注意力和模型特定的融合算子(如 SDAR 的 logits-free 融合线性交叉熵),实现了超过 14× 的加速。第三,DARE 将评估作为框架的一部分,扩展 OpenCompass 以支持 dLLM 感知的评估后端,避免了后训练代码和基准代码独立演进的常见情况。
实验结果
DARE 的实验结果揭示了几个关键发现。首先,没有一个单一算法在所有任务中都具有统一的主导性能。对于 LLaDA-8B-Instruct,CJ-GRPO 在 GSM8K 上达到最佳成绩 85.6%(基线 76.5%),Coupled-GRPO 在 MATH 上表现最好 41.0%(基线 34.6%),VRPO 在 HumanEval (52.4%) 和 MBPP (42.8%) 上最强,Coupled-GRPO 在 Countdown 上达到 77.9%(基线 16.8%),BGPO 在 Sudoku 上达到 42.6%(基线 26.2%)。对于 Dream-7B-Instruct,CJ-GRPO 在 GSM8K 和 MATH 上表现最佳,Coupled-GRPO 在 HumanEval (61.6%) 和 MBPP (60.3%) 上领先。其次,算法鲁棒性可能在不同模型家族间有显著差异,例如 SPG 在 Dream 的数学和代码任务上表现弱得多,在 GSM8K 上只有 59.4%(而 LLaDA 上达到 83.5%)。第三,训练曲线揭示了稳定性模式:d1 和 Coupled-GRPO 以及 CJ-GRPO 通常表现出更稳定的奖励曲线,而 ELBO 基于的方法可能更脆弱。当样本预算有限时,基于扩散导向的 Monte Carlo 代理估计的 ELBO 方差较大,导致优化曲线可能不稳定。LLaDA 上 Countdown 任务的 BGPO、LLaDA 上 Countdown 任务的 D1/SPG/BGPO、Dream 数学和代码任务上的 SPG 都出现了明显的晚期崩溃或奖励曲线大幅下降而非平滑收敛的现象。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 数学推理 (GSM8K) | 准确率 | 85.6% (LLaDA + CJ-GRPO) | 76.5% (LLaDA baseline) | +9.1% |
| 数学 (MATH) | 准确率 | 41.0% (LLaDA + Coupled-GRPO) | 34.6% (LLaDA baseline) | +6.4% |
| 代码生成 (HumanEval) | 通过率 | 52.4% (LLaDA + VRPO) | 46.9% (LLaDA baseline) | +5.5% |
| 代码生成 (MBPP) | 通过率 | 42.8% (LLaDA + VRPO) | 37.9% (LLaDA baseline) | +4.9% |
| 规划 (Countdown) | 准确率 | 77.9% (LLaDA + Coupled-GRPO) | 16.8% (LLaDA baseline) | +61.1% |
| 规划 (Sudoku) | 准确率 | 42.6% (LLaDA + BGPO) | 26.2% (LLaDA baseline) | +16.4% |
| 训练加速 (MDLM) | 端到端速度提升 | 约 4× | eager 执行 | 300% |
| 训练加速 (BDLM) | 端到端速度提升 | 超过 14× | 基础执行 | >1300% |
局限与改进
作者承认的局限性包括:模型侧需要集成扩散(视觉、多模态)语言模型;算法侧需要继续吸收新的估计器、控制策略和稳定性技术;系统侧需要更全面的效率消融和部署导向的评估后端。此外,从实验结果可以看出,ELBO 基于的方法对估计器噪声更敏感,因此更依赖于充足的 Monte Carlo 样本数量或更紧的目标代理边界,这限制了它们在计算受限场景下的实用性。框架目前主要关注数学、代码和规划任务,在其他类型任务(如开放域对话、创意写作)上的表现尚未充分探索。虽然框架支持多种模型家族,但对于每个家族的支持深度可能不同,某些模型家族可能只有有限的算法覆盖。
独立分析的弱点
DARE 的独立分析弱点包括:(1) 算法选择依赖手动调参,虽然框架统一了超参数,但不同算法在不同任务上的最优超参数可能不同,缺乏自动超参数搜索机制;(2) 评估覆盖度有限,虽然集成了多种基准,但缺少对生成质量、一致性、安全性等方面的系统评估;(3) 对新模型家族的集成仍需工程工作,框架虽然降低了集成成本,但添加全新的模型家族仍需实现模型特定的包装器和注意力后端;(4) 内存优化细节未充分讨论,大规模训练时的内存占用和分布式训练策略需要更详细的说明;(5) 奖励模型的标准化不足,虽然支持自定义奖励接口,但缺少标准化的奖励模型库和奖励信号质量评估。改进方向包括:引入自动超参数优化、扩展评估维度、提供模型家族模板、添加内存分析工具、构建奖励模型基准库。
未来方向
作者提出的未来研究方向包括:在模型侧,需要集成扩散(视觉、多模态)语言模型;在算法侧,执行器应继续吸收新的估计器、控制策略和稳定性技术;在系统侧,更全面的效率消融和部署导向的评估后端将进一步强化框架。基于论文成果,未来可延伸的方向包括:(1) 开发更稳定和高效的 ELBO 目标基于的 RL 算法,以解决 Monte Carlo 样本受限时的不稳定性问题;(2) 研究变量长度生成策略与 RL 的深度集成,以解锁 MDLMs 的探索限制;(3) 探索跨模型家族的算法迁移和泛化,理解算法鲁棒性在不同架构间的变化模式;(4) 扩展到更多任务类型,如开放域对话、创意写作、多轮对话等;(5) 开发在线学习和持续学习能力,使框架能够支持模型在生产环境中的持续改进;(6) 构建更丰富的生态系统,包括预训练模型、奖励模型、评估基准的标准化接口和版本管理。
复现评估
DARE 的复现性评估显示:框架已开源(代码 https://github.com/yjyddq/DARE2026),建立在 verl 和 OpenCompass 等成熟开源项目之上,降低了复现门槛。论文提供了详细的实现细节,包括统一的超参数设置(rollout 组大小 8、块长度 32、默认禁用 KL 正则化、Monte Carlo 采样数量 16)、任务特定配置(数学任务使用 max response length=512、diffusion steps=256、训练 1 epoch;规划任务使用 max response length=256、diffusion steps=128、训练 1 epoch)。基线性能在表 2 中报告,包括 LLaDA-8B-Instruct、Dream-7B-Instruct、SDAR-8B-Chat、SDAR-30B-A3B、LLaDA2.0-mini、LLaDA2.1-mini 在 MMLU、MMLU-Pro、HellaSwag、ARC-C、GPQA、GSM8K、MATH、AIME24/25、Olympiad、HumanEval、MBPP 等基准上的成绩。算法比较结果在表 3-5 中详细展示。算力需求方面,论文未明确说明具体的硬件配置,但从使用分布式训练和优化注意力后端来看,需要多 GPU 环境。复现难度中等,主要挑战在于获取预训练的 dLLM 模型和设置分布式训练环境。
论文图表
表 3 展示了在 DARE 框架下的数学任务结果。分为两个子表:(a) LLaDA-8B-Instruct 在 GSM8K 和 MATH 上的算法比较,基线分别为 76.5% 和 34.6%,CJ-GRPO 在 GSM8K 上最佳(85.6%),Coupled-GRPO 在 MATH 上最佳(41.0%);(b) Dream-7B-Instruct 在 GSM8K 和 MATH 上的算法比较,基线分别为 77.2% 和 39.6%,CJ-GRPO 在两个任务上都最佳。加粗数字表示最佳结果,下划线表示次佳。比较的算法包括 d1、Coupled-GRPO、VRPO、CJ-GRPO、SPG、BGPO。
这个表格对理解论文很重要,因为它展示了数学任务上的详细算法比较结果,揭示了算法性能的任务依赖性和模型依赖性。它提供了具体的提升数字(如 LLaDA GSM8K 上 CJ-GRPO 提升 +9.1%),是验证框架实用性和算法选择价值的关键证据。
表 4 展示了在 DARE 框架下的代码任务结果。分为两个子表:(a) LLaDA-8B-Instruct 在 HumanEval 和 MBPP 上的算法比较,基线分别为 46.9% 和 37.9%,VRPO 在两个任务上都最佳(52.4% 和 42.8%);(b) Dream-7B-Instruct 在 HumanEval 和 MBPP 上的算法比较,基线分别为 57.9% 和 56.2%,Coupled-GRPO 在两个任务上都最佳(61.6% 和 60.3%)。值得注意的是 SPG 在 Dream 的 HumanEval 上表现非常弱(17.7%),展示了算法鲁棒性的模型依赖性。
这个表格对理解论文很重要,因为它展示了代码任务上的算法比较,补充了数学任务的结果,全面覆盖了论文关注的三个任务类型(数学、代码、规划)。它还揭示了算法在不同模型上的鲁棒性差异(如 SPG 在 Dream 上的崩溃),是理解算法选择复杂性的关键数据。