扩散语言模型:连续、离散与块级生成
比较自回归与去噪式文本生成,区分连续嵌入扩散、掩码扩散和块级混合方案。
扩散语言模型:连续、离散与块级生成
扩散语言模型提供了一种不同于逐 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],训练模型预测原内容。下面只是简化示意,完整目标还可能有时间权重等因素:
生成时可以从掩码序列出发,反复预测和更新位置。哪些位置先确定、是否重新掩码,以及生成长度如何处理,都是具体采样方案的一部分。
LLaDA展示了从预训练到监督微调的掩码扩散语言建模路径。它不要求所有模型都从自回归权重初始化;从零训练和转换已有权重是不同路线。
块级混合:块间顺序、块内去噪
Block Diffusion将自回归和扩散结合:按顺序生成块,在块内进行扩散式生成。这让可变长度生成与块内并行之间有了折中。
| 路线 | 主要生成单位 | 阅读时关注的问题 |
|---|---|---|
| 自回归 | 下一个 token | 顺序依赖与缓存 |
| 连续扩散 | 连续序列表示 | 去噪及离散化 |
| 掩码离散扩散 | 多个未确定位置 | 采样顺序及迭代次数 |
| 块级混合 | 文本块 | 块长度与块间依赖 |
并行预测不保证更低延迟
同时预测多个位置,需要付出多轮迭代和整段计算的开销。比较生成效率时,应在相同输出长度和质量条件下测量端到端延迟,并记录迭代次数、缓存策略和计算后端。
这些路线不是按名称就能排出优劣的替代品;它们对应不同的生成约束和计算组织方式。
This post is licensed under CC BY 4.0 by the author.