离散扩散语言模型诞生的根本动因是:连续扩散模型在图像领域大获成功,但语言/符号空间天然离散,如何将"加噪→去噪"范式迁移到离散令牌空间,同时保留扩散模型并行生成、可控采样的优势,成为生成建模的核心挑战。
Sohl-Dickstein等人2015年在NeurIPS提出扩散概率模型,Ho等人2020年的DDPM将其工程化落地,确立了"前向加高斯噪声→反向去噪"的基本范式。但这一框架依赖连续空间的重参数化技巧,对离散符号(词表token)无法直接套用,因为离散空间没有梯度可传播。
Austin等人在NeurIPS 2021发表D3PM(Discrete Denoising Diffusion Probabilistic Models),系统性地将前向过程推广到离散马尔可夫链。核心贡献是提出三类转移矩阵:均匀噪声(Uniform)、吸收态掩码(Absorbing/MASK)和词嵌入相似度引导的转移。其中吸收态扩散最为关键——前向过程逐步将token替换为[MASK],反向过程学习从[MASK]恢复原始token,这与BERT的MLM目标产生了深刻联系,但D3PM在理论上给出了完整的变分下界推导。
Lou等人在NeurIPS 2023提出SEDD(Score Entropy Discrete Diffusion),将离散扩散推进到连续时间框架。他们定义了离散空间的"score"概念——不再是梯度,而是转移率比值 $s_\theta(x,t) \approx p_t(y)/p_t(x)$,并推导出Score Entropy损失,使训练目标更加稳定且理论严格。这一工作首次让离散扩散在语言建模困惑度上接近GPT-2水平。
MD-LM(Masked Diffusion Language Model,Sahoo等人ICML 2024)和MDLM进一步简化训练目标,证明吸收态扩散在连续时间下等价于一个加权的交叉熵损失,极大降低了实现复杂度。同年,LLaDA(Large Language Diffusion with mAsking)将掩码扩散扩展到70亿参数规模,在指令跟随任务上首次与自回归LLM正面竞争,证明离散扩散可以作为LLM的替代范式。
LLaDA 2.0-Uni等工作将离散扩散骨干与视觉编码器、MoE架构结合,实现多模态理解与生成的统一。离散扩散从语言建模的"学术实验"演变为工业级多模态系统的核心组件。
设词表大小为 $V$,序列长度为 $L$,前向过程定义为离散马尔可夫链,转移概率由矩阵 $Q_t \in \mathbb{R}^{V \times V}$ 描述。 吸收态前向过程(最常用): $$q(x_t | x_{t-1}) = x_{t-1} Q_t, \quad Q_t = (1-\beta_t)I + \beta_t \mathbf{1} e_{\text{mask}}^\top$$ 其中 $\beta_t$ 是时刻 $t$ 的噪声率,$e_{\text{mask}}$ 是[MASK] token的one-hot向量。这意味着每步以概率 $\beta_t$ 将当前token替换为[MASK],以概率 $1-\beta_t$ 保持不变。 边际分布(跳步采样的关键): $$q(x_t | x_0) = x_0 \bar{Q}_t, \quad \bar{Q}_t = \prod_{s=1}^{t} Q_s$$ 对吸收态,$\bar{Q}_t$ 有闭合形式:token $x_0$ 在时刻 $t$ 仍为原始值的概率为 $\bar{\alpha}_t = \prod_{s=1}^t (1-\beta_s)$,被掩码的概率为 $1 - \bar{\alpha}_t$。 训练目标(变分下界): $$\mathcal{L} = \mathbb{E}_{t, x_0, x_t} \left[ \sum_{i=1}^{L} \mathbf{1}[x_t^i = \text{mask}] \cdot \log p_\theta(x_0^i | x_t) \right] \cdot w(t)$$ 其中 $w(t)$ 是时间步权重,$p_\theta(x_0^i | x_t)$ 是模型对被掩码位置的预测分布。这个目标的深刻之处在于:它在形式上与BERT的MLM完全一致,但通过连续时间积分赋予了严格的生成模型解释——模型不只是"填空",而是在学习真实数据分布的反向转移核。 连续时间极限下的Score Entropy(SEDD): $$\mathcal{L}_{\text{SE}} = \mathbb{E}_{t, x_t} \left[ \sum_{y \neq x_t} R_t(x_t, y) \left( s_\theta(x_t, y, t) - \frac{p_t(y)}{p_t(x_t)} \log s_\theta(x_t, y, t) \right) \right]$$ 其中 $R_t$ 是转移速率矩阵,$s_\theta$ 是参数化的离散score函数,该损失对score比值的估计比直接回归更稳定。
离散扩散语言模型的整体逻辑是:将序列生成问题转化为"从全掩码序列出发,经过T步迭代去噪,逐步揭示每个位置的真实token"的过程,每步去噪可以并行处理所有位置,从而突破自回归的串行瓶颈。
在训练时,对真实序列 $x_0$ 采样时间步 $t \sim \text{Uniform}(0, T)$,利用闭合形式边际分布 $q(x_t|x_0)$ 直接生成 $x_t$,无需逐步模拟马尔可夫链。对吸收态扩散,这意味着以概率 $1-\bar{\alpha}_t$ 独立地将每个位置替换为[MASK]。为什么选吸收态而非均匀噪声:吸收态保留了"已知位置"的信息,模型可以利用上下文中未被掩码的token来预测被掩码的位置,这与语言的自然结构高度契合;均匀噪声会将token替换为随机词,引入语义混乱,训练信号更嘈杂。
模型 $p_\theta(x_0 | x_t)$ 通常用双向Transformer实现(区别于自回归的因果Transformer),输入带[MASK]的序列 $x_t$,对每个被掩码位置输出词表上的概率分布。关键设计选择:使用双向注意力而非因果注意力,因为离散扩散的去噪是非自回归的,每个位置的预测可以依赖序列中所有其他位置(包括右侧上下文),这是相比自回归模型的核心优势,也是其能够进行双向推理的根本原因。时间步 $t$ 通过正弦编码注入,让模型感知当前噪声水平。
推理时从 $x_T$(全[MASK]序列)出发,执行 $T$ 步去噪。每步利用贝叶斯公式计算后验: $$q(x_{t-1} | x_t, x_0) \propto q(x_t | x_{t-1}) q(x_{t-1} | x_0)$$ 对吸收态扩散,这个后验有解析形式:若 $x_t^i \neq \text{mask}$,则 $x_{t-1}^i = x_t^i$(已揭示的token保持不变);若 $x_t^i = \text{mask}$,则以概率 $\frac{\bar{\alpha}_{t-1} - \bar{\alpha}_t}{1 - \bar{\alpha}_t}$ 从模型预测中采样一个具体token,以概率 $\frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t}$ 保持[MASK]。为什么这样设计:这确保了已经"揭示"的token不会被重新掩码,生成过程单调地从噪声走向清晰,避免了不一致性。
离散扩散天然支持将 $T$(通常1000)步压缩到少数步(如10-50步),通过跳步采样(DDIM类比)实现。更重要的是,每一步去噪对所有[MASK]位置完全并行计算,GPU利用率远高于自回归的逐token生成。实践中,LLaDA等工作发现仅需128步即可达到高质量生成,而每步的计算量与一次完整的双向Transformer前向传播相当。对于长序列(如256k token的Qwen3.5-Omni场景),并行解码的延迟优势尤为显著。
对于条件生成(如指令跟随),将条件 $c$(prompt)的token固定不加噪,只对响应部分执行扩散过程。这等价于在反向过程中对prompt位置施加硬约束,模型在去噪时可以全程看到完整prompt,实现自然的条件生成,无需额外的classifier guidance机制。
python # 简化的离散扩散推理伪代码 def generate(model, prompt_ids, gen_len, T=128): # 初始化:prompt固定,生成部分全掩码 x = torch.cat([prompt_ids, torch.full((gen_len,), MASK_ID)]) alphas = cosine_schedule(T) # ᾱ_t 序列 for t in range(T, 0, -1): # 模型预测 p(x0 | xt),双向注意力 logits = model(x, t) # [L, V] x0_pred = sample_from_logits(logits) # 只处理被掩码的位置 mask_pos = (x == MASK_ID) alpha_prev = alphas[t-1] alpha_curr = alphas[t] # 以概率 (ᾱ_{t-1} - ᾱ_t)/(1 - ᾱ_t) 揭示token unmask_prob = (alpha_prev - alpha_curr) / (1 - alpha_curr) unmask = torch.bernoulli(unmask_prob * mask_pos.float()) x[unmask.bool()] = x0_pred[unmask.bool()] return x[len(prompt_ids):]离散扩散语言模型在学界已成为自回归范式的有力挑战者。LLaDA在Llama-3-8B规模上首次证明扩散LLM可以在指令跟随基准上与同参数自回归模型竞争。工业界,LLaDA 2.0-Uni将其扩展到多模态统一生成,Mercury(Inception Labs)将离散扩散部署为商业代码生成服务,声称比GPT-4o快10倍。其并行解码特性对长序列生成(如视频脚本、代码文件)尤为关键,是未来超长上下文生成系统的重要候选架构。
当前核心开放问题:①离散扩散在推理密集型任务(数学、代码)上仍弱于自回归,如何引入Chain-of-Thought等推理机制;②采样步数与质量的Pareto前沿尚未充分探索,类DDIM的确定性采样理论尚不完善;③如何与RLHF/DPO等对齐方法结合;④多模态统一(连续视觉+离散语言)的联合扩散框架设计。