A Survey on Diffusion Language Models | alphaXiv
[TOC]
Intro
- 连续性DLMs(早期)
- 离散型DLMs(近年的关注量增加)
- 多模态DLMs(近期逐渐出现)
对于主流的AR(AutoRegressive)语言模型,生成过程是一个token一个token进行生成,速度慢
Diffusion可以同时生成多个标记或完整序列,这有望实现更高的推理吞吐量
有一个非常模糊或被“噪声”污染的图片,扩散模型就是学习如何一步一步地把它变得清晰。在语言模型中,这个“图片”就是文本,噪声就是被随机替换或掩盖的词语。
理论上的优势:
- 并行生成: 传统的语言模型(如 GPT 系列)是一个词接一个词地生成,这很慢。DLMs 可以一次性处理很多词,大大加快了生成速度。
- 捕获双向上下文: 传统模型的输出通常只看已经生成的词来预测下一个词(单向)。DLMs 可以同时考虑前面和后面的词,更好地理解整个句子的含义。
- 迭代优化:通过多步去噪,在迭代中修改认知。
- 细粒度控制: DLMs 允许更精确地控制生成文本的风格、主题等属性。
- 跨模态统一建模:天然支持文本与视觉的统一
分类
Continuous DLMS
- 思想来源: 最初受到图像生成领域扩散模型成功的启发。
- 工作方式: 将token映射到连续的向量空间,在这个连续空间中进行“去噪”过程,逐步从噪声中恢复出词语的嵌入表示
Discrete DLMs
- 思想来源: 直接在词语(token)的层面定义扩散过程,避免了转换为连续空间的步骤。
- 工作方式: 它们直接在词汇表(所有可能的词语集合)上操作。通过“破坏”文本序列(例如,用特殊的 [MASK] 标记替换一些词),然后逐步学习如何“去噪”,恢复原始的词语。
发展
- Dream、DiffuLLaMA利用已经训练好的自回归模型(例如 LLMs)的权重作为 DLMs 的初始值,可以显著加速训练并提升性能。
- LLaDA-8B:证明 DLMs 可以完全独立地训练,并达到与自回归模型相当的性能。
- 扩散多模态大型语言模型 (dMLLMs):将扩散框架扩展到多模态数据,实现跨模态的理解和生成。
工业界:
- Mercury Series
- Google Diffusion
训练与推理
流程上似乎与LLM没什么不同
扩散语言模型的范式
现代语言模型基础
Masked Language Model
最典型的是BERT模型,以纯encoder的Transformer作为基础
- 对输入token的子集进行掩码,训练模型重建掩码
$\mathbb{E}_{x \sim \mathcal{D}}$表示从数据$\mathcal{D}$中抽取任意数据$\mathcal{x}$的期望
$\mathbb{E}_{M \sim \text{Mask}(x)} $表示通过掩码操作$\text{Mask}(x)$得到一个掩码的集合$M$
对于$M$中的每一个掩码位置$i$,基于未被掩码的其他token集合$x_{\setminus M}$,以$x_i$作为i位置$i$复原结果的概率
- 预测A的下一句是否是B(训练句子之间的语序,Next Sentence Predicition)
- $\mathbb{E}_{(A, B, y) \sim \mathcal{D}}$从数据中抽取一个样本,$A,B$表示两个句子,$y$表示$A$是否在$B$前
BERT的本质是在做填空,因此天然不擅长生成任务
Autoregressive Language Models
$$ P(x) = \prod_{i=1}^{n} P_{\theta}(x_i \mid x_1, x_2, \dots, x_{i-1}) $$本质上在做词语接龙
$$ \mathcal{L}_{\text{AR}} = \mathbb{E}_{x \sim \mathcal{D}} \left[ -\sum_{i=1}^{n} \log P_{\theta}(x_i \mid x_1, \dots, x_{i-1}) \right] $$顺序生成天然符合文本生成任务,数据可以直接采样使用
受限于Next Token Prediction,速度较慢无法并行
近期出现了Multi Token Prediction
Other Paradigms
-
Seq2Seq:一些DLMs如DiffuSeq和SeqDiffuSeq将Decoder置换为非自回归的扩散解码器
-
Permutation Language Models:打乱文本序列,从左到右顺序预测
- 双向预测:可以看到被打乱后的上下文
- 主要解决了BERT无法生成、自回归模型只能看上文
- 实际使用仍然是自回归方式正常预测(只不过训练的更玄学一点)
- 从置换集合$\mathcal{Z}_T$中采样任一置换序列$\mathbf{z} $,依次进行自回归生成