Post

扩散语言模型:连续、离散与块级生成

比较自回归与去噪式文本生成,区分连续嵌入扩散、掩码扩散和块级混合方案。

扩散语言模型:连续、离散与块级生成

扩散语言模型提供了一种不同于逐 token 生成的思路:先构造被扰动的序列,再通过若干轮去噪恢复文本。本文根据个人 dLLM 笔记整理,重点区分数据空间和生成方式。

自回归模型与掩码模型

自回归语言模型使用链式分解:

\[p(x_1,\ldots,x_n)=\prod_{i=1}^{n}p(x_i\mid x_{<i})\]

典型生成过程从左到右。以 BERT 为代表的掩码模型则使用上下文恢复被遮盖的位置。掩码预测能力不自动等同于一个完整的开放文本生成过程,还需要定义采样和迭代策略。

连续扩散:在词嵌入上加噪

连续方案将 token 映射到向量,再逐步加入噪声。一个常见前向过程的形式是:

\[\mathbf{x}_t=\sqrt{\bar\alpha_t}\mathbf{x}_0+\sqrt{1-\bar\alpha_t}\boldsymbol\epsilon\]

模型学习去噪,最后将连续表示映射回离散 token。Diffusion-LM是这个方向的代表工作。理解这类方法时,要同时关注嵌入空间中的恢复质量和返回词汇表时的离散化误差。

离散扩散:直接恢复 token

掩码式离散方案把一部分 token 变成 [MASK],训练模型预测原内容。下面只是简化示意,完整目标还可能有时间权重等因素:

\[\mathcal L_{\text{masked}}=-\sum_{i\in\mathcal M}\log p_\theta(x_i\mid\widetilde{\mathbf x},t)\]

生成时可以从掩码序列出发,反复预测和更新位置。哪些位置先确定、是否重新掩码,以及生成长度如何处理,都是具体采样方案的一部分。

LLaDA展示了从预训练到监督微调的掩码扩散语言建模路径。它不要求所有模型都从自回归权重初始化;从零训练和转换已有权重是不同路线。

块级混合:块间顺序、块内去噪

Block Diffusion将自回归和扩散结合:按顺序生成块,在块内进行扩散式生成。这让可变长度生成与块内并行之间有了折中。

路线主要生成单位阅读时关注的问题
自回归下一个 token顺序依赖与缓存
连续扩散连续序列表示去噪及离散化
掩码离散扩散多个未确定位置采样顺序及迭代次数
块级混合文本块块长度与块间依赖

并行预测不保证更低延迟

同时预测多个位置,需要付出多轮迭代和整段计算的开销。比较生成效率时,应在相同输出长度和质量条件下测量端到端延迟,并记录迭代次数、缓存策略和计算后端。

这些路线不是按名称就能排出优劣的替代品;它们对应不同的生成约束和计算组织方式。

This post is licensed under CC BY 4.0 by the author.