← 返回 2026-03-02

dLLM:简洁的扩散语言建模框架 dLLM: Simple Diffusion Language Modeling

Zhanhui Zhou, Lingjie Chen, Hanghang Tong, Dawn Song 📅 2026-02-26 👍 154 2026-07-13 08:35
块扩散 开源框架 扩散语言模型 掩码扩散 模型转换 离散扩散 高效推理

统一扩散语言模型训练、推理与评估的开源框架,并提供从BERT/AR模型转换为DLM的实用配方

前置知识

离散扩散模型(Discrete Diffusion Models)

离散扩散模型是将连续域的扩散过程(如DDPM)推广到离散状态空间的一类生成模型。其核心思想是定义一个前向过程 $q(x_t|x_0)$,逐步向数据添加噪声(如随机掩码),将干净数据 $x_0$ 在时间 $t: 0 \to 1$ 内转变为无信息状态 $x_1$;然后学习一个反向过程 $p_\theta(x_s|x_t)$(其中 $s < t$)来逐步去噪恢复原始数据。与连续扩散不同,离散扩散的状态空间是有限词汇表 $\mathcal{V}$ 上的离散值,这使得它天然适合处理文本等离散序列数据。典型的前向过程包括吸收态掩码(absorbing-state masking)和均匀态转移(uniform-state transition)两种形式。

本文的核心主题就是离散扩散语言模型的统一框架,理解离散扩散的基本原理是理解dLLM中训练目标(MDLM、BD3LM)和推理算法的基础。

掩码扩散语言模型(MDLM / Masked Diffusion LM)

MDLM是一种简化的离散扩散模型,其前向过程采用吸收态掩码策略:每个token $x_i^0$ 以概率 $t$ 被独立替换为特殊掩码标记 $m$,即 $q(x_i^t|x_i^0) = (1-t)\mathbb{I}(x_i^t = x_i^0) + t\mathbb{I}(x_i^t = m)$。训练时,模型 $p_\theta(x_0|x_t)$ 需要在给定掩码输入的条件下预测被掩码位置的原始token。训练损失为带时间重加权的负对数似然:$\mathcal{L}_{\text{MDLM}} = \mathbb{E}_{t \sim U(0,1), x_0}\left[\frac{1}{t} \sum_{i \in \mathcal{M}_t} -\log p_\theta(x_i^0|x_t)\right]$,其中 $\mathcal{M}_t$ 是被掩码的索引集合,$1/t$ 因子平衡不同噪声水平的贡献。

MDLM是本文框架中最核心的训练目标之一,LLaDA和Dream等主流DLM都基于此目标训练。理解MDLM的掩码机制和损失函数是理解论文中Trainer模块和SFT配方的前提。

块扩散语言模型(BD3LM / Block Diffusion LM)

BD3LM将自回归生成与扩散生成相结合:将序列 $x$ 划分为 $K$ 个非重叠块 $B_1, \ldots, B_K$,块间采用自回归方式生成,块内采用扩散方式并行生成。对于第 $k$ 个块 $B_k$,生成过程以先前块的干净历史 $x_{<B_k}$ 为条件,块内的扩散损失为 $\mathcal{L}_{\text{BD3LM}} = \sum_{k=1}^{K} \mathbb{E}_{t \sim U(0,1), x_0}\left[\frac{1}{t} \sum_{i \in \text{mask}(B_k, t)} -\log p_\theta(x_i^0 | x_t^{B_k}, x_{<B_k})\right]$。这种因子分解允许模型在生成当前块时复用先前块的KV缓存,同时在块内实现并行解码,兼具自回归的条件建模能力和扩散的并行生成效率。

BD3LM是dLLM框架支持的另一核心训练目标,它代表了自回归与扩散的混合范式。理解块扩散的块划分和KV缓存复用机制是理解论文中BD3LMTrainer和高效推理策略的关键。

Fast-dLLM高效推理

Fast-dLLM是针对MDLM的高效解码算法,通过两项关键技术加速推理:(1)块内近似KV缓存(Cache),在每个解码块内复用键值缓存减少重复计算;(2)基于置信度的并行token更新(Parallel),在每一步同时更新多个token而非逐一解码。这两种技术可单独使用或组合使用,实现显著的推理加速。

DLM推理速度是实际部署的主要瓶颈,Fast-dLLM是本文框架的重要组成部分。论文展示了在保持性能的前提下实现2-12倍推理加速的实验结果,这对DLM的实际应用至关重要。

HuggingFace生态系统与Trainer接口

本文框架构建在HuggingFace的技术栈之上:使用transformers库的Trainer作为基础训练器,accelerate库支持分布式训练(如FSDP和DeepSpeed ZeRO-2),peft库实现参数高效微调(如LoRA)。dLLM的自定义Trainer(如MDLMTrainer)是对HuggingFace Trainer的轻量包装,保持接口兼容性的同时添加了DLM特有的训练逻辑。这种设计使得用户可以利用熟悉的HuggingFace工具链,降低了学习门槛。

dLLM的技术路线深度依赖HuggingFace生态,理解这一设计选择有助于理解框架的可扩展性和易用性目标,也是复现和使用dLLM的必要知识。

研究动机

扩散语言模型(DLMs)领域发展迅速,涌现出大量开源模型如LLaDA、Dream、DiffuLLaMA、RND1等,这些模型共享许多相似的设计选择,包括掩码扩散训练目标、类似的推理流程和评估方式。然而,这些共性组件分散在各自独立的研究代码库中,缺乏透明的实现,导致三个严重问题:第一,复现困难——不同论文使用不同的训练框架、数据处理方式和超参数配置,其他研究者很难准确复现论文报告的结果;第二,比较不公平——各模型使用不同的评估工具和推理超参数(论文Figure 5显示,即使单个推理参数的变化也能导致性能显著波动),难以进行公平对比;第三,扩展困难——缺乏统一的模块化接口,研究者在尝试新方法时需要从头搭建训练、推理和评估流水线,重复劳动严重。例如,Fast-dLLM等高效推理工具独立于训练和评估开发,接口不一致,难以与不同模型无缝集成。

本文的目标是本文的目标是构建一个统一的开源框架dLLM,标准化扩散语言模型开发的三个核心环节——训练、推理和评估,使研究者能够通过简洁、模块化的接口完成从模型训练到评估的全流程。具体而言,框架需要实现四个目标:(1)提供统一的训练器接口,支持MDLM和BD3LM等主流扩散目标的预训练和微调;(2)提供即插即用的推理抽象,支持标准推理和Fast-dLLM等高效推理算法的无缝切换;(3)提供可复现的评估流水线,忠实匹配各模型官方报告的评估配置和结果;(4)提供从现有模型(BERT编码器和自回归LM)转换为DLM的最小配方,降低DLM开发的门槛。

与已有工作不同的是,本文的独特切入角度是「统一与标准化」而非提出新的扩散理论或架构创新。与此前工作不同,dLLM不聚焦于单一模型或单一算法,而是将散布在各处的DLM开发经验凝练为一套标准化框架。其核心价值在于:(1)将训练逻辑与模型架构解耦,使新目标和新架构可以用最小改动集成;(2)将推理算法与模型实现解耦,使不同采样器可以即插即用;(3)通过精心匹配各模型的官方评估配置(包括预处理、解码设置和后处理),实现跨模型的公平可比较评估。此外,论文还提供了从BERT和AR模型转换为DLM的实用配方——这在先前工作中已有探索(如DiffuLLaMA、RND1),但缺乏统一、透明、可复现的实现。

核心方法

dLLM框架的设计思路可以概括为「分层抽象,模块解耦」。整体技术路线围绕三个核心抽象构建:Trainer(训练器)、Sampler(采样器)和Evaluation(评估)。在训练层,框架提供MDLMTrainer和BD3LMTrainer两个核心模块,分别对应掩码扩散和块扩散两种主流训练目标,通过继承HuggingFace Trainer获得分布式训练、梯度累积、检查点管理等能力,同时封装DLM特有的时间采样、掩码生成和损失计算逻辑。在推理层,框架引入Sampler(model).sample()的轻量抽象,将推理算法与模型实现解耦——标准MDLMSampler和加速版MDLMFastdLLMSampler可以互换使用,无需修改底层模型。在评估层,框架扩展lm-evaluation-harness,为每个模型-任务对精心匹配官方的预处理、解码设置和后处理流程。此外,框架还提供终端可视化工具,展示DLM从掩码到解码的完整过程,辅助调试和可解释性分析。

dLLM的核心创新不在于提出新的扩散理论,而在于工程设计层面的「统一抽象」和「模块解耦」。与已有方法的本质区别体现在三个方面:第一,训练层的解耦设计——将扩散建模逻辑(时间采样、噪声调度、损失计算)与模型架构(Transformer层、注意力机制)分离,使得从MDLM切换到BD3LM只需更换一行Trainer代码(Figure 1b),从预训练切换到SFT只需添加数据collator包装器(Figure 1c),从AR模型转换为DLM只需添加两个参数标志(Figure 1d)。这种设计使得框架可以自然扩展到新的扩散目标,如EditFlow。第二,推理层的即插即用设计——通过统一的Sampler抽象,Fast-dLLM的KV缓存和并行解码优化可以作为标准采样器的drop-in替代,无需修改模型代码。第三,评估层的忠实复现设计——不是简单统一评估工具,而是为每个模型-任务对精确匹配官方配置,这在DLM评估高度敏感于推理超参数的背景下尤为重要(Figure 5展示了超参数敏感性)。

方法步骤详情

dLLM的方法可分为以下几个完整步骤:(1)**训练阶段**:用户选择MDLMTrainer或BD3LMTrainer,传入模型、tokenizer、数据集和训练参数。对于MDLM,训练器在每个batch中采样时间 $t \sim U(0,1)$,按概率 $t$ 对token进行掩码,计算损失 $\mathcal{L}_{\text{MDLM}} = \frac{1}{t}\sum_{i \in \mathcal{M}_t} -\log p_\theta(x_i^0|x_t)$;对于BD3LM,序列被划分为块,块间自回归、块内扩散。训练支持SFT微调(如用NoAttentionMaskWrapper保持padding EOS可见、设置label_pad_token_id=eos_token_id)和AR-to-DLM转换(如right_shift_logits复用下一token预测、PrependBOSWrapper添加BOS标记)。(2)**推理阶段**:用户选择采样器(标准或Fast-dLLM),调用sampler.sample(inputs)进行生成。Fast-dLLM采样器使用块内近似KV缓存和基于置信度的并行token更新加速解码。(3)**评估阶段**:框架通过扩展lm-evaluation-harness,为每个模型-任务对配置正确的预处理(如chat template应用)、解码参数(如max new tokens、temperature、CFG)和后处理,执行标准化评估并输出结果。(4)**可视化阶段**:TerminalVisualizer展示解码过程中token从掩码状态逐步确定的演变过程,包括解码顺序和中间状态。

技术新颖性

dLLM的技术新颖性主要体现在工程整合和设计理念层面,而非理论创新。具体而言:(1)**统一训练抽象**:此前的DLM研究各自使用不同的训练代码,dLLM首次将MDLM和BD3LM两种主流训练目标统一到同一Trainer接口下,并通过模块化包装器(如NoAttentionMaskWrapper、PrependBOSWrapper)支持预训练、SFT和模型转换等不同场景,这种「微调式」的定制方式避免了代码重复。(2)**推理-模型解耦**:此前Fast-dLLM等高效推理工具与特定模型紧密耦合,dLLM通过Sampler抽象实现了推理算法的即插即用,这在DLM领域是首次系统性地实现。(3)**忠实评估复现**:论文首次系统性地揭示了DLM评估对推理超参数的高度敏感性(Figure 5),并为每个模型-任务对提供了精确匹配官方配置的评估流程,填补了公平比较的空白。(4)**实用配方**:提供了从BERT和AR模型转换为DLM的端到端配方,包括ModernBERT-Chat和Qwen3-A2D系列模型的训练细节和检查点,这为社区提供了可直接使用的基线。

统一训练器接口支持多种用途
Figure 1: 统一训练器接口支持多种用途
推理流水线:采样器即插即用切换
Figure 2: 推理流水线:采样器即插即用切换
SFT训练曲线
Figure 6: SFT训练曲线
ModernBERT-Chat训练曲线
Figure 7: ModernBERT-Chat训练曲线
Qwen-A2D训练曲线
Figure 8: Qwen-A2D训练曲线

实验结果

论文的核心发现可从三个维度总结:(1)**框架有效性**:dLLM成功复现了LLaDA和Dream等主流DLM的官方评估结果(Tables 4-5在附录中对比),证明了统一评估流水线的忠实性。框架支持从预训练到SFT到模型转换的全流程,代码改动极小(如Figure 1所示)。(2)**推理加速效果**:Fast-dLLM集成实现了显著的推理加速。以LLaDA-Instruct在GSM8K上为例,基线准确率约0.82,使用Cache & Parallel组合后在8倍速下仍保持约0.80的准确率(Figure 4a)。Dream-Base在MBPP上,基线约0.48,12倍速下仍保持约0.50(Figure 4b)。但加速效果对max new tokens敏感——256和512的设定下表现差异明显。(3)**SFT微调效果**:对LLaDA和Dream的Instruct版本进行MDLM SFT后,在数学推理任务上获得一致提升。LLaDA-Instruct在GSM8K上从79.91提升到80.59,在MATH500上从34.80提升到35.40,在Countdown上从19.92提升到26.95(Table 1)。Dream-Instruct在GSM8K上从64.44提升到70.43,在Sudoku上从6.93提升到19.68。但Base版本模型在分布外任务上出现退化,如LLaDA-Base在HumanEval上从25.00下降到18.90。(4)**模型转换效果**:ModernBERT-large-chat在BBH上达到25.6、MATH上达到3.6,超越GPT-2-medium(Table 2)。Qwen3-0.6B-bd3lm-v0.1在HumanEval上达到46.3、MBPP上达到38.2,超越原始Qwen3-0.6B-Base(Table 3),表明AR-to-DLM转换是实用且高效的路径。

MDLM SFT评估结果
Table 1: MDLM SFT评估结果
ModernBERT-Chat评估结果
Table 2: ModernBERT-Chat评估结果
Qwen-A2D评估结果
Table 3: Qwen-A2D评估结果
Fast-dLLM评估结果(max new tokens @ 256和512)
Figure 4: Fast-dLLM评估结果(max new tokens @ 256和512)
推理超参数敏感性分析
Figure 5: 推理超参数敏感性分析
查看结构化数据
任务指标本文基线提升
GSM8K(数学推理) 准确率(%) LLaDA-Instruct+SFT: 80.59; Dream-Instruct+SFT: 70.43 LLaDA-Instruct: 79.91; Dream-Instruct: 64.44 LLaDA: +0.68; Dream: +5.99
MATH500(数学) 准确率(%) LLaDA-Instruct+SFT: 35.40; Dream-Instruct+SFT: 32.80 LLaDA-Instruct: 34.80; Dream-Instruct: 28.20 LLaDA: +0.60; Dream: +4.60
HumanEval(代码生成) Pass@1(%) Qwen3-0.6B-bd3lm: 46.3; Qwen3-0.6B-mdlm: 30.5 Qwen3-0.6B-Base: 32.3 BD3LM: +14.0; MDLM: -1.8
MBPP(代码生成) Pass@1(%) Qwen3-0.6B-bd3lm: 38.2; Qwen3-0.6B-mdlm: 29.2 Qwen3-0.6B-Base: 36.6 BD3LM: +1.6; MDLM: -7.4
BBH(推理) 准确率(%) ModernBERT-large-chat: 25.6 Qwen1.5-0.5B-Chat: 18.2; GPT-2-medium: 17.8 超越Qwen1.5-Chat: +7.4; 超越GPT-2-medium: +7.8
Sudoku(规划) 准确率(%) Dream-Instruct+SFT: 19.68 Dream-Instruct: 6.93 +12.75(+184%)

局限与改进

论文的局限性可从以下角度分析:(1)**模型规模限制**:论文主要在小规模模型上进行从头训练和转换实验(ModernBERT-base/large、Qwen3-0.6B),这些模型与主流的7B-8B DLM(如LLaDA-8B、Dream-7B)在绝对性能上仍有显著差距。例如,ModernBERT-large-chat在MMLU上仅29.6,远低于同规模decoder-only模型。(2)**转换模型的知识退化**:Table 3显示,Qwen3-0.6B-mdlm在MMLU上从原始Base的52.8下降到40.0,在MMLU-Pro上从24.7下降到17.3,表明AR-to-DLM转换过程中存在知识丢失。(3)**SFT的分布外退化**:Base模型SFT后在分布外任务上出现性能退化(如LLaDA-Base在HumanEval上从25.00下降到18.90),说明当前SFT配方可能过拟合训练数据分布。(4)**评估范围**:论文主要在标准benchmark上评估,未涉及长文本生成、多轮对话、工具使用等实际应用场景。(5)**框架扩展性未验证**:论文提到计划集成RL算法和更多模型,但当前版本仅支持MDLM和BD3LM两种训练目标,EditFlow仅有参考实现。(6)**算力门槛**:虽然论文强调「accessible compute」,但完整的模型转换实验仍需64×A100 GPU,这对大多数研究者而言仍不轻松。

独立分析的弱点

论文存在以下值得改进的弱点:(1)**AR-to-DLM转换的知识保留问题**:Table 3中Qwen3-0.6B-mdlm在MMLU、MMLU-Pro等知识密集型任务上大幅退化(MMLU从52.8到40.0),论文提到未使用logits右移技巧因为它「导致性能退化」,但未深入分析退化原因。改进方向:可探索知识蒸馏或渐进式转换策略,在转换过程中保留原始AR模型的知识。(2)**Base模型SFT的不稳定性**:Table 1显示LLaDA-Base SFT后在Countdown(10.16→8.98)和Sudoku(0.34→0.00)上退化,Dream-Base在Countdown上也退化(10.55→8.59)。改进方向:可探索课程学习或多任务训练,避免SFT过拟合特定数据分布。(3)**推理加速的质量-速度权衡分析不足**:Figure 4展示了不同加速倍数下的准确率变化,但缺乏对生成文本质量(如流畅性、一致性)的分析。改进方向:加入人工评估或自动质量指标(如困惑度、重复率)。(4)**小模型配方的实际价值有限**:ModernBERT-chat和Qwen3-0.6B-DLM的绝对性能较低,实际应用场景有限。改进方向:在更大规模模型上验证配方的有效性。(5)**缺乏与商业DLM的对比**:论文提到Mercury等商业DLM,但未进行对比实验。改进方向:在可控条件下与商业系统进行推理速度和质量对比。

未来方向

论文和实验结果指向多个有价值的未来研究方向:(1)**RL算法集成**:论文明确提到计划集成RL算法用于DLM训练。随着DRL(扩散强化学习)方法的成熟,将GRPO、DPO等对齐算法适配到DLM的离散扩散框架中是一个重要方向,特别是利用DLM的并行解码特性可能带来与AR模型不同的RL训练效率优势。(2)**更大规模的模型转换**:当前实验在0.6B规模,将AR-to-DLM转换配方扩展到7B-70B规模、验证知识保留和推理加速效果是关键下一步。论文提到LLaDA2.0已扩展到100B,统一框架可加速此类规模化探索。(3)**混合AR-DLM架构**:BD3LM已展示了块间AR+块内扩散的混合思路,未来可探索更灵活的混合策略,如在不同层或不同任务上动态选择AR或扩散解码。(4)**DLM专用的高效推理硬件**:当前Fast-dLLM在通用GPU上实现加速,但DLM的并行解码特性可能更适合定制化硬件架构。(5)**多模态DLM**:将统一框架扩展到图像、音频等多模态扩散生成,构建通用的离散扩散框架。

复现评估

论文在可复现性方面做出了显著努力:(1)**代码开源**:框架代码已在GitHub开源(https://github.com/ZHZisZZ/dllm),包含完整的训练、推理和评估代码。(2)**模型权重开源**:所有训练的检查点(ModernBERT-base/large-chat、Qwen3-0.6B-mdlm/bd3lm)已在HuggingFace开源(dllm-hub),可直接下载使用。(3)**训练配方透明**:论文详细列出了每个实验的训练超参数(学习率、batch size、epoch数、LoRA配置等)和硬件配置(8×A100或64×A100),复现门槛明确。(4)**评估配置匹配**:框架为每个模型-任务对精心匹配官方评估配置,这大大降低了结果复现的难度。(5)**潜在复现挑战**:完整的大规模模型转换实验需要64×A100 GPU(约80GB显存),这对多数研究者仍有门槛;小规模复现(如ModernBERT-chat在8×A100上)更为可行。此外,评估流程依赖lm-evaluation-harness,需要熟悉该框架的配置方式。总体而言,论文的复现性在开源AI研究中属于上乘水平。